Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-04-12

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 hercynium joined #perl6
00:07 meppl joined #perl6
00:08 frzntoz joined #perl6
00:09 yinyin joined #perl6
00:15 alester joined #perl6
00:21 snarkyboojum joined #perl6
00:31 dalek rakudo: 8b256a9 | (Solomon Foster)++ | src/core/operators.pm:
00:31 dalek rakudo: Fix series operator bug in the initial elements of a series.
00:31 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8b256a97a46de2772f743d377fd9491839296fc2
00:40 snarkyboojum colomon o/
00:40 colomon \o
00:48 lue anyone know of a nice list of P6 operators?
00:49 gfldex joined #perl6
00:50 lue rakudo: my @a=1,2,3,4; say [\+] @a
00:50 p6eval rakudo ae2e81: OUTPUT«13610␤»
00:54 colomon lue: there was a really cool periodic table of operators that someone made, but it's hopelessly out of date now.
00:55 lue I know, and I know it's out of date. There needs to be a list!
00:55 lue Don't ask me to make it because _the spec isn't clear at all_ :)
00:57 colomon you don't want to look at the spec, you want to look at STD.pm.  grep infix, prefix, postfix...
00:58 lue ah. I'm writing a Kate syntax highlight file, and defining the operators _alone_ ought to be a complete nightmare :)
00:58 colomon yes, this is why it was suggested you just figure out a way to tap into STD.pm
01:00 colomon I mean, Rakudo doesn't get the operators right yet....
01:00 lue I'm not sure the syntax definition would allow that :/
01:02 lue My best route (short of entering them in manually) would be to write a script that "crawls" STD.pm, extracts, and automagically formats it to something I can paste into the XML...
01:03 sorear lue: basically every string is a valid operator
01:03 sorear Perl 6 cannot be parsed with XML
01:04 sorear > sub infix:<d>(Int $d, Int $s) { my $r = 0; for 1 .. $d { $r += $s.rand.floor }; $r }; say 2d6
01:04 sorear rakudo: sub infix:<d>(Int $d, Int $s) { my $r = 0; for 1 .. $d { $r += $s.rand.floor }; $r }; say 2d6
01:04 p6eval rakudo ae2e81: OUTPUT«Confused at line 11, near "say 2d6"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
01:04 sorear rakudo: sub infix:<d>(Int $d, Int $s) { my $r = 0; for 1 .. $d { $r += $s.rand.floor }; $r }; say 2 d 6
01:04 p6eval rakudo ae2e81: OUTPUT«2␤»
01:04 sorear rakudo: sub infix:<d>(Int $d, Int $s) { my $r = 0; for 1 .. $d { $r += $s.rand.floor }; $r }; say 2 d 6
01:04 p6eval rakudo ae2e81: OUTPUT«3␤»
01:04 lue no, a P6 script that crawls STD.pm for inclusion into a syntax highlighting file.
01:05 sorear I challenge your syntax highlighting file to parse that
01:06 lue what, the alphanumeric operator? That's what *Regular Expressions* are for!
01:06 sorear the context sensitivity
01:06 sorear perl 6 cannot be parsed with regular expressions
01:07 sorear or even with a context free grammar
01:07 lue I'm not quite sure why you're telling me P6 is special and cannot be "parsed" by syntax highlighting.
01:08 sorear I'm not
01:08 sorear I'm telling you kate sucks and can't parse arbitrary context sensitive languages
01:08 snarkyboojum rakudo: .say for 0,1, *+* ... 100
01:08 p6eval rakudo ae2e81: OUTPUT«1␤1␤1␤2␤3␤5␤8␤13␤21␤34␤55␤89␤»
01:08 diakopter < lue> no, a P6 script that crawls STD.pm for inclusion into a syntax highlighting file.
01:08 sorear perl 6 and ocaml allow unrestricted definition of alphabetic infix operators
01:08 diakopter ^^^ but that's what STD.pm does
01:08 snarkyboojum hasn't updated quite yet I guess
01:09 colomon snarkyboojum: nope, 8b256a97a46de2772f743d377fd9491839296fc2 is latest.  :)
01:09 sorear snarkyboojum: what's it supposed to say?
01:09 snarkyboojum colomon: works on my local machine, so colomon++ :)
01:09 snarkyboojum sorear: start with 0
01:09 colomon 0 1 1 2 3 5....
01:09 diakopter lue: P6 *is* special, and cannot be [correctly] parsed by anything short of something identical to STD.pm
01:11 diakopter STD.pm is not just a declarative grammar; it has many procedural/stateful elements
01:11 lue well, in the kate highlighting definition, there is a "dynamic" option, which does some remembering-related things, let me dbl-check
01:12 sorear BEGIN { *foo = rand(2) ? sub($) {} : sub(@) { } }; foo / 2;  # this file is a syntax error in perl 5 50% of the time
01:12 diakopter heh
01:12 lue "dynamic — if true, the context remembers strings/placeholders saved by dynamic rules. This is needed for HERE documents for example."
01:13 diakopter ok. now multiply that stateful memory by about a googol-fold, and you've reached the complexity of Perl 6 grammars
01:13 lue O.o
01:13 lue it can't be that bad... can it?
01:14 diakopter yeah
01:14 diakopter because it's not upwardly bounded
01:14 diakopter any grammar can install itself at parsetime
01:14 diakopter and that grammar can make it even more infinitely complex..
01:15 lue it feels like I'm trying to picture aleph/beth numbers higher that 0, but much worse :)
01:15 sorear Devel::Declare is a standard feature in perl 6
01:15 * lue thinks this can possibly be worse than looking into the Untempered Schism
01:16 solu joined #perl6
01:17 lue well, I don't like not having P6 highlighting,  the closest to P6 being (of course) Perl.
01:17 * sorear tosses ε₀ at lue
01:17 snarkyboojum lue: I have P6 highlighting in vim
01:17 snarkyboojum :)
01:19 lue but I hate vim :(    (er, s/hate/dislike/)
01:19 solu is there a good windows IDE/Compiler for Perl 6? I'm using Padre, but it isn't working well....
01:19 solu And parrot wasn't working for me either, unfortunately
01:21 lue why is parrot not working?
01:22 diakopter solu: afaik, Padre is the only one (and it uses Parrot)
01:22 solu I can get it to install (I guess that's the problem -- I'm used to the Microsoft hand-holding of "here's the installer. use that and you'll have a working program)
01:22 solu Okay, thanks, diakopter -- it's manageable, I guess.  I can deal.
01:23 * snarkyboojum hasn't managed to get Padre going on OS X yet.. looking forward to trying it some time though
01:24 * lue has over the years come to dislike IDEs for reasons too long/forgotten to get into right now :)
01:24 solu hmm, well, thanks all.
01:31 p6eval joined #perl6
01:33 diakopter perlesque: System::Console.WriteLine(43110);
01:33 p6eval perlesque: OUTPUT«43110␤»
01:34 diakopter perlesque: Blargh.WriteLine(43110);
01:34 p6eval perlesque: OUTPUT«␤Unhandled Exception: System.Exception: Typename Blargh doesn't exist!␤at Sprixel.Grammar.ResolveType (string) <0x001f3>␤at (wrapper dynamic-method) Sprixel.Grammar. (Sprixel.Matcher,Sprixel.UTF32String,int,uint,Sprixel.State) <0x0f5ba>␤at (wrapper delegate-invoke)
01:34 p6eval ..Sprixel.Func`6<S…
01:34 lue rakudo: System::Console.WriteLine(43110);
01:34 p6eval rakudo 8b256a: OUTPUT«Can not find sub System::Console␤current instr.: 'perl6;Perl6Exception;throw' pc 14818 (src/builtins/Seq.pir:41)␤»
01:34 diakopter lue: I don't think Rakudo will know about the .NET types
01:35 lue ah, that's what it is :)
01:36 diakopter perlesque: my int $a = 7; $a += -442; System::Console.WriteLine($a); sub foo() { $a *= 5 }; foo(); foo(); System::Console.WriteLine($a);
01:36 p6eval perlesque: OUTPUT«-435␤-10875␤»
01:37 lue .oO(Microsoft Visual Perl 6 .NET *shudder*)
01:37 diakopter >:}
01:38 diakopter it only knows about ints
01:41 diakopter just a reminder: perlesque isn't intended to be Perl 6
01:41 diakopter it's just a small subset to be used as a target/assembly language for other implementations
01:41 lue .oO(Microsoft Visual Python .NET)
01:41 diakopter that already exists
01:41 lue diakopter: ok
01:41 lue It does? /o\
01:42 diakopter well, IronPython
01:47 diakopter std:  my int $a = 7; $a += -442; ::System::Console.WriteLine($a); sub foo() { $a *= 5 }; foo(); foo(); ::System::Console.WriteLine($a);
01:47 p6eval std 30362: OUTPUT«ok 00:01 110m␤»
01:47 diakopter afk&
01:54 snarkyboojum joined #perl6
01:55 agentzh joined #perl6
01:56 Psyche^ joined #perl6
02:08 jaldhar_ joined #perl6
02:24 eternaleye joined #perl6
02:26 petdance joined #perl6
02:28 lue afk
03:39 petdance joined #perl6
03:41 petdance_ joined #perl6
03:42 cotto cj, ping
04:19 am0c joined #perl6
04:53 am0c joined #perl6
05:08 kaare joined #perl6
05:15 diakopter perlesque: System::Console.WriteLine(33 % 2)
05:15 p6eval perlesque: OUTPUT«1␤»
05:15 diakopter perlesque: System::Console.WriteLine(33 / 2)
05:15 p6eval perlesque: OUTPUT«16␤»
05:15 diakopter perlesque: System::Console.WriteLine(33 << 1)
05:15 p6eval perlesque: OUTPUT«66␤»
05:15 diakopter perlesque: System::Console.WriteLine(33 >> 1)
05:15 p6eval perlesque: OUTPUT«16␤»
05:15 diakopter perlesque: System::Console.WriteLine(33 << 4)
05:15 p6eval perlesque: OUTPUT«528␤»
05:15 diakopter perlesque: System::Console.WriteLine(33 << 8)
05:15 p6eval perlesque: OUTPUT«8448␤»
05:15 sorear perlesque: System::Console.WriteLine(System::Console.WHAT.perl)
05:15 p6eval perlesque: OUTPUT«parsefail␤»
05:16 diakopter it only knows ints
05:16 diakopter no other expressions
05:16 diakopter it will never have a "WHAT" method
05:16 diakopter it's not supposed to be Perl 6
05:17 diakopter System::Console.WriteLine(33 << 90)
05:17 diakopter perlesque: System::Console.WriteLine(33 << 90)
05:17 p6eval perlesque: OUTPUT«-2080374784␤»
05:17 diakopter perlesque: System::Console.WriteLine(33 << -43)
05:17 p6eval perlesque: OUTPUT«69206016␤»
05:18 diakopter perlesque: System::Console.WriteLine(33 <<= -43)
05:18 p6eval perlesque: OUTPUT«␤Unhandled Exception: System.InvalidOperationException: Operand of type 'TriAxis.RunSharp.Operands.IntLiteral' cannot be written␤at TriAxis.RunSharp.Operand.EmitSet (TriAxis.RunSharp.CodeGen,TriAxis.RunSharp.Operand,bool) <0x0009a>␤at TriAxis.RunSharp.Operands.Assignment.EmitGet
05:18 p6eval ..(T…
05:18 diakopter perlesque: 2 == 5
05:18 p6eval perlesque: OUTPUT«parsefail␤»
05:18 diakopter perlesque: 2 = 5
05:18 p6eval perlesque: OUTPUT«␤Unhandled Exception: System.InvalidOperationException: Operand of type 'TriAxis.RunSharp.Operands.IntLiteral' cannot be written␤at TriAxis.RunSharp.Operand.EmitSet (TriAxis.RunSharp.CodeGen,TriAxis.RunSharp.Operand,bool) <0x0009a>␤at TriAxis.RunSharp.Operands.Assignment.EmitGet
05:18 p6eval ..(T…
05:19 diakopter perlesque: my int $a = 31; $a <<= $a; System::Console.WriteLine($a)
05:19 p6eval perlesque: OUTPUT«-2147483648␤»
05:19 diakopter perlesque: my int $a = 31; $a >>= ($a <<= 4); System::Console.WriteLine($a)
05:19 p6eval perlesque: OUTPUT«0␤»
05:20 diakopter perlesque: my int $a = 31; $a <<= ($a <= 4); System::Console.WriteLine($a)
05:20 p6eval perlesque: OUTPUT«parsefail␤»
05:20 diakopter perlesque: my int $a = 31; $a <<= ($a <<= 4); System::Console.WriteLine($a)
05:20 p6eval perlesque: OUTPUT«32505856␤»
05:22 rv2733 joined #perl6
05:22 sorear no 'say' ?
05:23 rv2733 left #perl6
05:23 rv2733 joined #perl6
05:24 jonasbn joined #perl6
05:25 hejki w25
05:25 hejki ..
05:25 yinyin left #perl6
05:26 sorear you should try to limit yourself to 20 channels
05:26 diakopter heh
05:26 diakopter :)
05:31 hejki ye.. i should
05:31 diakopter perlesque: System::Console.WriteLine(4 > 2);
05:31 p6eval perlesque: OUTPUT«True␤»
05:32 IllvilJa joined #perl6
05:38 cotto @seen cj
05:43 pugssvn r30363 | diakopter++ | [evalbot] add perlesque p6eval target.  NOT a Perl 6 implementation.  Let me say that again: ditto.
05:54 diakopter perlesque: my int $a = 1; my int $b = 5; my bool $c = $a == ($b / $b); System::Console.WriteLine($c);
05:54 p6eval perlesque: OUTPUT«True␤»
05:55 lue goodnight moon
05:56 diakopter goodnight stars
06:07 uniejo joined #perl6
06:16 dalek rakudo: 0334df6 | plobsing++ | src/binder/bind.c:
06:16 dalek rakudo: use STRINGNULL tests where appropriate in bind.c
06:16 dalek rakudo: Parrot has a symbol STRINGNULL used as a null string value, much like
06:16 dalek rakudo: PMCNULL for pmcs. In the past it didn't get a lot of use, most null
06:16 dalek rakudo: strings simply being set to NULL. I have recently created a branch in
06:16 dalek rakudo: parrot to use STRINGNULL more extensively. My changes cause problems
06:16 dalek rakudo: in C code that erroneously assumes null parrot strings are NULL, such
06:16 dalek rakudo: as rakudo's binder.c.
06:16 dalek rakudo: Closes RT #74272.
06:16 dalek rakudo: Signed-Off-By: Moritz Lenz <moritz@faui2k3.org>
06:16 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0334df67e4e041c0e1fe6941ae5d85b95e0a8af1
06:27 snarkyboojum joined #perl6
06:32 drbean joined #perl6
06:50 ceco joined #perl6
07:11 szabgabx joined #perl6
07:15 iblechbot joined #perl6
07:28 fridim joined #perl6
07:46 yinyin joined #perl6
07:46 payload joined #perl6
08:19 lollan joined #perl6
08:19 lollan ns identify amadou
08:20 lollan joined #perl6
08:39 masak joined #perl6
08:39 Trashlord joined #perl6
08:40 masak oh hai, #perl6
08:40 moritz_ \o/ it's masak
08:41 dakkar joined #perl6
08:41 Trashlord my brother's in the military, heh
08:41 Trashlord and he's feeling terrible there
08:41 Trashlord that's all, thanks for hearing
08:44 masak` joined #perl6
08:45 Trashlord hey masak`
08:46 masak` oh hai.
08:46 * masak` is on a bus
08:46 Trashlord LOL, awesome
08:46 masak` everything here is awesome, except perhaps the wifi.
08:46 Trashlord looks like
08:46 Trashlord it
08:46 masak` oh well, at least it carries bits... occasionally.
08:47 masak someone want to help me with figuring out a workaround?
08:48 masak I have a method in a class, and I want to be able to pull out a reference to it and put it in a variable.
08:48 jnthn &ClassName::method
08:48 jnthn Or use .^methods or .can (though latter may be a bit broken)
08:48 jnthn Note the first of these relies on method being our-scoped.
08:48 masak jnthn!
08:48 jnthn masak!
08:49 masak yep, figgered it out here now too :)
08:49 masak rakudo: class A { our method foo { say "OH HAI" } }; my $bar = &A::foo; $bar(A.new)
08:49 masak that works.
08:49 p6eval rakudo 0334df: OUTPUT«OH HAI␤»
08:49 jnthn Right.
08:49 masak .can is like totally b0rk.
08:49 jnthn Without the "our" it is has-scoped
08:49 jnthn And won't work
08:49 * masak still doesn't grok teh has-scoped
08:49 jnthn masak: Means it only goes into the method table, nowhere else.
08:49 masak huh. strange name for that.
08:49 masak has-scoped sounds like per-instance to me.
08:50 jnthn Well, it is only accessible through an instance in a sense.
08:50 masak sure, but it's the same one for all of them.
08:51 masak jnthn: no Russia? :/
08:51 masak` joined #perl6
08:51 jnthn masak: I will travel there tomorrow.
08:52 jnthn 3 day event, so I can still be useful even if I have to go a little later than hoped.
08:52 masak` oh good.
08:53 jnthn I've somewhat improved since yesterday, though I'm glad I put off flying until tomorrow.
08:53 moritz_ sick?
08:53 jnthn moritz_: Yeah, I seem to have caught...something...
08:53 moritz_ :(
08:53 moritz_ then get well soon!
08:54 jnthn moritz_: Woke up yesterday feeling awful, tried to go to the airport anyway, and almost collapsed at one point while on the way. Then realized that I really wasn't in shape for it.
08:54 jnthn Spent just about the whole yesterday asleep.
08:54 jnthn After getting back.
08:55 jnthn Still a bit mystified at what exactly I've managed to catch.
08:57 masak`` joined #perl6
08:57 masak sorry about my multiplicity...
08:58 jnthn It's kinda appropriate for a bus. You wait ages for one and then a bunch come at once. ;-)
08:58 masak :D
08:58 masak take all(@buses);
09:02 jnthn Time for another nap. Back later.
09:02 masak nap well, jnthn-san!
09:03 moritz_ jona-san :-)
09:03 * masak scratches his head as to why the optable parser in GGE fails all tests under Rakudo master
09:07 moritz_ is the default 'new' method in classes a multi method?
09:07 clintongormley joined #perl6
09:07 moritz_ rakudo: class A { has $.a; multi method new ($){  } }; say A.new(:a<b>).a
09:07 p6eval rakudo 0334df: OUTPUT«Any()␤»
09:08 moritz_ that bit me while writing Date.pm
09:08 moritz_ not sure if it's allowed by spec or not
09:08 masak er.
09:09 masak you're returning nothing from the method?
09:09 masak shouldn't you be getting Nil back?
09:09 moritz_ I'm not calling that method
09:09 masak ah, true.
09:09 moritz_ I think it's a bug
09:09 masak so do I.
09:09 moritz_ because either it finds the default method, then the initialization should work
09:10 moritz_ or it doesn't find the method, then it should die horribly
09:10 masak aye.
09:10 masak seems kinda weird...
09:10 moritz_ rakudo: class A { has $.a }; say A.new(:a<b>).a
09:10 masak rakudo: class A { has $.a; multi method new ($){ say "OH HAI" } }; say A.new(:a<b>)
09:10 p6eval rakudo 0334df: OUTPUT«b␤»
09:10 p6eval rakudo 0334df: OUTPUT«A()<0x5ebcbe8>␤»
09:11 moritz_ erm?
09:11 moritz_ ah, that's the A object
09:11 masak mm.
09:12 moritz_ anyway, the presence of multi with different arity shouldn't kill initialization - unless it hides the default .new, in which case dispatch should fail
09:12 * moritz_ repeats himself
09:12 moritz_ bad moritz_, no cookie
09:15 m6locks yes, i've had that same (bug) thing come up
09:16 drbean joined #perl6
09:21 moritz_ masak: did you submit? or shall I?
09:23 masak moritz_: please do.
09:23 masak rakudo: my @a = "!", a => "1", b => "2", c => "3"; my ($name, %opts) = @a; say %opts.perl
09:23 p6eval rakudo 0334df: OUTPUT«{"a" => "1"}␤»
09:23 * masak submits rakudobug
09:23 moritz_ huh?
09:24 masak I'd expect all pairs to go in %opts.
09:24 masak they did in alpha.
09:24 masak alpha: my @a = "!", a => "1", b => "2", c => "3"; my ($name, %opts) = @a; say %opts.perl
09:24 p6eval alpha 30e0ed:  ( no output )
09:25 masak huh.
09:25 masak I've traced the bug in GGE down to this.
09:25 masak probably workaroundable.
09:26 * moritz_ submitted the new() bug
09:26 masak rakudo: my @a = "!", a => "1", b => "2", c => "3"; my %opts = @a[1..@a-1]; say %opts.perl
09:26 p6eval rakudo 0334df: OUTPUT«{"a" => "1", "b" => "2", "c" => "3"}␤»
09:26 masak yup :)
09:31 masak interestingly, what emerges when I worked around that bug is not a plain of passing tests, but an interesting landscape of passing and failing ones.
09:31 * masak dives in
09:31 cognominal joined #perl6
09:31 moritz_ probably one or two more bugs
09:33 masak hopeably.
09:34 kensanata joined #perl6
09:38 masak joined #perl6
09:39 envi^home joined #perl6
09:39 masak where I could use 'true' before, now I can't.
09:39 masak 'so' doesn't work either.
09:39 masak rakudo: class A { method true() { "OH HAI" } }; say ?A.new
09:39 p6eval rakudo 0334df: OUTPUT«1␤»
09:39 masak rakudo: class A { method so() { "OH HAI" } }; say ?A.new
09:39 p6eval rakudo 0334df: OUTPUT«1␤»
09:39 masak Bool works.
09:39 masak rakudo: class A { method Bool() { "OH HAI" } }; say ?A.new
09:39 p6eval rakudo 0334df: OUTPUT«OH HAI␤»
09:42 mathw o/ masak
09:43 masak \o
10:01 masak std: my $a; my $b; say "$a:$b"
10:01 p6eval std 30363: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $a:$b is not predeclared at /tmp/zPk8fIH6vN line 1:␤------> [32mmy $a; my $b; say "$a:$b[33m⏏[31m"[0m␤Check failed␤FAILED 00:01 109m␤»
10:02 moritz_ that looks rather bogus
10:02 moritz_ rakudo: my $a; my $b; say "$a:$b"
10:02 masak I'm glad I'm not alone thinking that.
10:02 p6eval rakudo 0334df: OUTPUT«Symbol '$a:$b' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
10:02 moritz_ uhm.
10:02 masak :)
10:03 masak that's how I discovered it.
10:04 masak` joined #perl6
10:05 * masak` subsequently gets bitten by the <-[t]> bug
10:05 masak` :(
10:05 moritz_ that's an ugly one
10:05 moritz_ workaroundable with look-aheads
10:06 sorear what does $a:$b mean?
10:06 masak` rakudo: say "foo" ~~ /\T+/
10:06 p6eval rakudo 0334df: OUTPUT«foo␤»
10:06 masak` that works too :)
10:06 moritz_ masak`: except in the general case of composed character classes :/
10:07 * masak` gets bitten by the lack of .trans
10:07 masak` hm.
10:07 masak` right.
10:07 moritz_ somebody worked on a patch for that, forgot who...
10:07 masak` here it should actually have been \T from the start :)
10:16 masak` joined #perl6
10:16 masak rakudo: "foo" ~~ /(oo)/; say $0.subst(/o/, "O", :g)
10:16 p6eval rakudo 0334df: OUTPUT«Method 'subst' not found for invocant of class 'Regex;Match'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
10:16 masak` I'd argue that the above should work.
10:17 masak` did the cool branch merge already?
10:18 mikehh joined #perl6
10:18 masak` joined #perl6
10:19 mathw having connection problems?
10:19 masak` I'm not, but the bus is.
10:19 masak` :)
10:26 masak hm. getting worryingly roadsick. shutting down for a while.
10:29 cotto_work joined #perl6
10:34 cotto_work joined #perl6
10:53 Sunil joined #perl6
10:54 Sunil left #perl6
11:01 quester_ joined #perl6
11:01 pugssvn r30364 | mberends++ | [Temporal.pod] remove invalid markup that may have blocked updating of the HTML version online, and minor cosmetic changes.
11:01 dalek rakudo: fd40e2a | (Martin Berends)++ | src/core/Temporal.pm:
11:01 dalek rakudo: [core/Temporal.pm] explicitly create a DefaultFormatter where implicitly was not doing  it
11:01 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/fd40e2a17e9dacce15f4785f70992723907deda8
11:01 mberends joined #perl6
11:05 jaldhar_ joined #perl6
11:09 jaldhar_ joined #perl6
11:12 moritz_ how well does Temporal/DateTime work in Rakudo these days?
11:14 mberends not very well, still struggling with simple stringification
11:14 phenny mberends: 10 Apr 22:26Z <moritz_> tell mberends yes, Date::Simple is my main source of inspiration
11:14 moritz_ then I need to ask more specifically...
11:14 moritz_ for my Date module I want to write the Date.today() constructor
11:14 mberends right
11:15 moritz_ can I construct a DateTime object with the current date, and extract YMD information?
11:15 mberends I think that works with the rather long winded from_epoch(time) constructor
11:16 moritz_ rakudo: say DateTime.from_epoch(time)
11:16 p6eval rakudo 0334df: OUTPUT«Could not find sub &DateTime␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
11:16 moritz_ not in Makefile.in by default?
11:17 mberends Temporal.pm is not yet in ... no
11:17 moritz_ any objections to adding it?
11:17 mberends it's still not complete enough
11:17 moritz_ neither is anything else in Rakudo :-)
11:17 mberends I'm working on it right now :)
11:20 mberends if 'my $d=DateTime.from_epoch(time);say $d.ymd' is enough for you, it's fine to enable it in Makefile.in
11:20 mberends that works locally, so also do .year .month and .day
11:21 moritz_ that's enough for me
11:21 mberends :-) ok, I have the change ready to commit
11:23 pugssvn r30365 | moritz++ | [util/smartlinks.pl] do not try to read pugs_version.h, which is gone with the wind
11:24 dalek rakudo: 077325a | (Martin Berends)++ | build/Makefile.in:
11:24 dalek rakudo: [build/Makefile.in] add Temporal.pm back in following recent spec changes
11:24 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/077325a597be80186933a84127b6c4e75a896a88
11:25 mberends the tests need some more checking before going in, because they are out of sync with the spec
11:26 moritz_ mberends++
11:26 mberends the new spec will require lots of new tests, nice LHF fruit work
11:26 mberends F fruit? ah well..
11:27 moritz_ LHH - low hanging hacking :-)
11:27 mberends HDD - hubris driven development :-)
11:27 moritz_ I've tried to find out why S32/Temporal.html is not being updated
11:28 moritz_ so far my diagnosis revealed that it dies during processing S26
11:28 mberends there was an invalid T< > in the markup, gone now
11:28 moritz_ since it tries to do that with whatever tool was available for parsing the previous S26 version
11:28 moritz_ and then dies horribly, and doesn't update any synospis > 26
11:29 mberends ugh
11:29 mberends perldoc Temporal.pod showed the bad markup
11:29 moritz_ but Text::SmartLinks is not so small, and requires more in-depth reading :/
11:30 colomon moritz_++ # for investigating the spec html issues.
11:36 pugssvn r30366 | moritz++ | [update-syn] try to build S32/*.pod files. Also remove smoke result cross linking
11:39 rjorge joined #perl6
11:40 Dot joined #perl6
11:41 gabiruh joined #perl6
11:45 charsbar_ joined #perl6
11:53 quester_ left #perl6
11:56 takadonet joined #perl6
11:56 takadonet morning all
11:57 mberends \o takadonet
12:01 moritz_ that didn't work out :(
12:05 pugssvn r30367 | moritz++ | [update-syn] another stab at S32/*.html generation
12:07 moritz_ didn't work either :(
12:09 pmurias joined #perl6
12:13 pugssvn r30368 | moritz++ | yet another attempt to build S32/*.html files
12:13 colomon joined #perl6
12:16 * moritz_ declares victory
12:16 takadonet ??
12:16 takadonet colomon:welcome back
12:16 mberends \o/ pray tell what the problem was
12:16 colomon o/
12:17 moritz_ mberends: szabgab refactored Text::SmartLink into a module of its own, and replaced the previous huge smartlinks.pl with a wrapper that calls that module
12:17 mberends aha!
12:17 moritz_ that wrapper hardcoded the directory to the synopsis
12:18 moritz_ and even explicitly calling the wrapper with --pod-dir=... would not override that
12:18 moritz_ now I've changed the wrapper to call the "real" smartlinks.pl twice
12:19 moritz_ once for S01, S02 etc., and once for S32/
12:19 moritz_ it's ugly as hell, but it does work
12:19 colomon \o/
12:20 Dot left #perl6
12:29 cj colomon: hmm?
12:30 cj cotto: (I mean) hmm?
12:30 moritz_ Juerd++ # setting up a stable feather
12:34 dalek rakudo: 862d42c | (Martin Berends)++ | src/core/Temporal.pm:
12:34 dalek rakudo: [core/Temporal.pm] update the now() constructor with timezone and DefaultFormatter
12:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/862d42c7531be544498418f8aeac7d9dc4be42cd
12:35 SmokeMachine joined #perl6
12:45 moritz_ Date.today() implemented
12:45 moritz_ mberends++
12:46 mberends rakudo: say DateTime.now.ymd
12:46 p6eval rakudo 077325: OUTPUT«No candidates found to invoke␤current instr.: 'perl6;DateTime;now' pc 499947 (src/gen/core.pir:77056)␤»
12:46 moritz_ not yet updated
12:46 mberends :)
12:51 masak joined #perl6
12:52 masak fun fact: I wanted to know whether C<srand> was spec'd, found it in S32/Numeric, and discovered that it has a sub form and a method form. :)
12:52 masak would anyone mind if I removed the method form?
12:52 * moritz_ wouldn't mind
12:53 masak two people in consensus. I'm doing it.
12:53 mberends +1
12:53 moritz_ I don't really like the srand() business at all; it's like a hidden global variable
12:54 moritz_ I'd like to seed it with a timestamp, and have PRNG objects for those who want different seeds
12:54 moritz_ (seeding on startup, that is)
12:54 masak` joined #perl6
12:55 diakopter masak`: yo
12:55 diakopter I liked the method form
12:55 moritz_ 3.4.srand
12:55 diakopter oh well
12:55 colomon remove the method form, yes!
12:55 masak` diakopter: please explain.
12:56 pmurias joined #perl6
12:56 masak` to me, 3.4.srand even looks slightly wrong from a data model perspective.
12:56 diakopter wasn't the method form a shortcut for rand() * $invocant
12:57 masak` not sure why.
12:57 Juerd masak`: Because you're not acting on 3.4
12:57 Juerd You're acting on the random number generator.
12:57 M_o_C joined #perl6
12:57 masak` diakopter: we're talking about .srand, not .rand
12:57 masak` Juerd: yes. thank you.
12:57 diakopter masak`: oh, ah
12:57 diakopter missed that
12:57 _Dot_ joined #perl6
12:57 masak` Juerd: perhaps the global variable that moritz_ mentioned becomes jarringly obvious then.
12:57 _Dot_ left #perl6
12:58 Juerd Yes. Just expose that :)
12:58 Juerd $*PRNG.seed = 3.4;
12:58 masak` I like that better. one loose sub fewer.
12:58 Juerd Or whatever the twigil would be. I still can't remember them.
12:58 diakopter some globals should live in namespaces other than the top, imho
12:58 masak` TimToady: what do you think?
12:59 Juerd diakopter: nimho.
12:59 masak` diakopter: there's also things like PROCESS::
12:59 moritz_ maybe it should be called $*RAND
12:59 moritz_ PRNG doesn't read that well
12:59 diakopter Juerd: I mean, some statics
12:59 Juerd If it can be categorized under one of the twigil things, there's little reason to put it in a namespace.
12:59 Juerd moritz_: I can read it perfectly :P
13:00 * Juerd pronounces PRNG as prong and RNG as ring. Hmmm...
13:00 moritz_ otoh people might be tempted to think it's an actual random number, not a generator
13:00 Juerd Is it an iterator? :)
13:00 masak` while I'm at it, should I change all underscores in Temporal to dashes? :)
13:00 moritz_ masak`: please do
13:00 masak` seems even p6l mostly agrees that this is a good idea.
13:00 pugssvn r30369 | masak++ | [S32/Numeric] removed method form of srand
13:00 pugssvn r30369 |
13:00 pugssvn r30369 | Overwhelming consent on #perl6 about this.
13:01 Juerd "even p6l". :)
13:01 moritz_ TimToady once mentioned that he wants underscores for low-level things
13:01 Juerd What's the difference between consent and consensus?
13:01 * masak is in a p6l-sour phase :)
13:01 Juerd moritz_: Is your current nickname low-level?
13:01 moritz_ or delibaretly ugly things, like MONKEY_TYPING;
13:01 Juerd moritz_: /nick moritz- ;)
13:01 masak moritz_: that is a very cute mnemonic!
13:01 rgrau joined #perl6
13:01 masak "low-level"
13:02 Juerd D"low_level"
13:02 moritz_ Juerd: yep, it's not Unicode, so it's low level :-)
13:02 Juerd s/D//
13:02 masak Juerd: none, it's the same word with different spellings. :)
13:02 * moritz_ -> afternnoon nom
13:02 masak just as en:"immediate" and sv:"omedelbar" are the same word with different spellings.
13:02 * Juerd just nommed but wants moar.
13:03 mberends consent is permission, consensus is majority agreement
13:03 Juerd masak: nl:"onmiddellijk"
13:03 Juerd -lijk and -baar are more or less the same suffix.
13:03 masak mberends: now you're just making stuff up :P
13:03 masak Juerd: yep.
13:03 masak don't know about -ate in English, though.
13:03 masak probably something from Latin.
13:04 Juerd -lijk is like -ly, -baar is like -able.
13:04 Juerd Sometimes they can be exchanged.
13:04 Juerd If you do that for onmiddellijk, it starts to look like omedelbar.
13:04 masak aye.
13:04 Juerd The n in onmiddellijk is a big source of confusion, by the way. on- is like un-, and it looks like negation.
13:05 arnsholt masak: -ate is definitely Latin
13:05 Juerd mediatus.
13:06 masak` joined #perl6
13:06 arnsholt Yeah, probably
13:06 masak` 'immediate' itself is 'without means', i.e. without things in the middle. directly from A to B.
13:06 arnsholt I was thinking of -tas for a moment, but that puts the a after the t, not before
13:07 pmichaud good morning, #perl6
13:07 masak` joined #perl6
13:07 Juerd masak: Oh, so there is negation. Hm.
13:07 mberends \o pmichaud
13:07 arnsholt Yeah, that's probably a good guess
13:07 masak` joined #perl6
13:08 mberends masak`: are you editing Temporal.pod or shall I?
13:08 masak` I'm on it.
13:08 arnsholt Although the in- prefix is ambiguous. It can be both negation and the preposition in ^^
13:09 iblechbot joined #perl6
13:09 colomon pmichaud: o/
13:09 masak` arnsholt: classical example is 'impregnable', which can mean its opposite :)
13:09 dalek joined #perl6
13:10 * jnthn back for a bit
13:10 masak \o/ jnthn!
13:11 pmichaud jnthn: o/
13:12 jnthn hi pmichaud
13:12 masak hi pmichaud
13:13 pugssvn r30370 | masak++ | [S32/Temporal] replaced underscores with dashes in method names
13:13 pugssvn r30370 |
13:13 pugssvn r30370 | Also decided to go with 'timezone' rather than 'time_zone' or 'time-zone',
13:13 pugssvn r30370 | for a flurry of reasons. Saves a character; looks more like the rest of the
13:13 pugssvn r30370 | attributes; looks more like DateTime::TimeZone; emphasizes that it's one
13:13 pugssvn r30370 | concept and not two; it was already partly that way by mistake. ;-)
13:13 pmichaud I'm sure others have mentioned this already... what about hyphens and language interop?
13:13 masak haven't seen that mentioned.
13:13 pmichaud oh.
13:14 masak in *that* situation, I might consider a dashes-underscore equivalency rule.
13:14 jnthn That's a little practical for a p6l thread. ;-)
13:14 pmichaud I prefer hyphens myself, but other languages talking to Perl libraries might object.  :-)
13:14 jnthn Yeah, visually I like the hyphens too.
13:14 masak well, similar situations will occur all the time for similar things.
13:14 mberends hyphens in identifiers should be banned ;)
13:14 masak there has to be a broader solution anyway.
13:14 pmichaud wfm.
13:15 masak mberends: I had a feeling you didn't like them! :)
13:15 jnthn I was really skeptical about them, until I tried writing code using them.
13:15 masak mberends: no Dashes::In::Mid-identifier;   # oh wait...
13:15 jnthn And was like...oh huh...it's pretty.
13:15 mberends they're not Fortran-compatible ;)
13:16 masak neither are junctions.
13:16 CokeBot9000 pmichaud: morning.
13:17 pmichaud CokeBot9000: good morning
13:17 arnsholt jnthn: And "I'm using my shift key half as much as I used to" =)
13:18 masak jnthn: I just realized why there are so many Russian tweets about Perl 6 today...
13:18 pmichaud masak:  :-)
13:18 jnthn masak: Heh. Are they positive? :-)
13:18 masak "I feel a disturbance in the tweetosphere..."
13:18 masak jnthn: think so.
13:19 jnthn So long as they aren't all like "Перл 6 гровно!". :-)
13:19 masak apparently, there's something called #ritconf...
13:19 masak :D
13:19 arnsholt "grovno"?
13:20 jnthn arnsholt: A non-complimentary adjective.
13:20 masak must mean "groovy" or something... :>
13:20 pmichaud "groovy" as in "full of holes" as in "cheese"?
13:20 arnsholt jnthn: Right. Rather uncomplimentary I take it =)
13:20 diakopter grovelsome
13:21 masak pmichaud: ssh! let them discover it on their own. :)
13:21 diakopter gravelly
13:21 masak http://twitter.com/lisitsky/status/12035629162
13:23 arnsholt jnthn: Searching for "dictionary гровно" returns one match
13:23 arnsholt You, in an IRC log from may of last year =p
13:23 masak maybe it belongs to a very narrow dialect :)
13:23 masak jnthnese.
13:23 arnsholt ^^
13:24 jnthn ;-)
13:24 jnthn Special word. ;-)
13:24 arnsholt So I gather
13:25 masak jnthn: it's funny how an imported h often becomes a g in Russian.
13:25 masak jnthn: I still haven't really figured out why. they do have h as well.
13:25 jnthn masak: Yeah.
13:25 jnthn masak: The s/g/h/ "rule" works surprisingly often.
13:26 masak they're like, "let's s:g/h/г/ on all foreign words!"
13:26 jnthn I'm not even sure if it's just imported stuff though.
13:26 masak maybe not.
13:26 masak I've seen it mostly on Germanic words.
13:26 masak words imported from Hermany :)
13:27 jnthn Slovak mnoho, Russian много.
13:27 masak hm.
13:27 jnthn Which is just like "very"/"much"
13:27 masak *nod*
13:27 jnthn Or Slovak dlho and Russina длого (both meaning "far away")
13:28 meppl joined #perl6
13:28 * masak tries out the 'dlh' cluster
13:28 masak the re
13:29 masak the Russians were wise to throw in an extra o there.
13:29 arnsholt Knowing, Czech and Slovakian, its probably them who threw it out =)
13:29 arnsholt Crazy, crazy vowel dropping =)
13:30 masak :)
13:34 mikehh joined #perl6
13:34 diakopter perlesque: my int $a = 4; if ($a < 1) { System::Console.WriteLine(5) } elsif ($a != 4) { System::Console.WriteLine(77); }else{ System::Console.WriteLine(2443) }
13:34 p6eval perlesque: OUTPUT«2443␤»
13:34 pugssvn r30371 | mberends++ | [Temporal.t] apply floor() to seconds because they are now fractional
13:36 jnthn perlesque: my int $a = 0; for 1..10000000 { $a++ }; say $a;
13:36 p6eval perlesque: OUTPUT«parsefail␤»
13:36 jnthn wow, that's faster than Raku...oh, wait. :-)
13:37 mberends it *does* parsefail faster than Rakudo !
13:38 jnthn :-)
13:38 jnthn I'm sure if it knew how to parse that loop it'd manage it faster too, if it really is compiling those down to C# ints.
13:42 diakopter yep
13:43 diakopter it won't have  for 1..10000000 { }
13:43 diakopter but it will have loop (;;)
13:43 ignacio_ joined #perl6
13:46 jnthn k
13:48 dalek joined #perl6
13:51 frzntoz joined #perl6
13:56 SmokeMachine joined #perl6
13:57 arnsholt The problem with implementing Prolog: you start using . instead of ; in your NQP code ^^
14:05 ruoso joined #perl6
14:08 NICK_ joined #perl6
14:12 moritz_ arnsholt: now you know how the people feel who try to implement Perl 6 in Perl 5
14:12 arnsholt Heh. That's a more insidious kind of messed up I suspect =)
14:14 moritz_ aye
14:14 moritz_ you tend to write @a.push(...) in Perl 5
14:14 moritz_ or $thing[$idx] in Perl 6
14:14 moritz_ or... all these crazy, small differences
14:15 moritz_ if-statements without parenthesis
14:16 jnthn No comma after the map block is the one that gets me.
14:16 PacoLinux joined #perl6
14:16 moritz_ aye, that too
14:16 jnthn (or grep or soft...)
14:16 jnthn *sort
14:20 arnsholt What's the correct way to get the length of an array in NQP?
14:21 jnthn +@array
14:22 jnthn Will work fine.
14:22 arnsholt I'd forgotten that operator. Thanks!
14:23 * moritz_ is kinda growing fond of NQP
14:24 arnsholt Yeah, me too
14:24 arnsholt It's head and shoulders above C for actually doing stuff
14:24 moritz_ with the tight PIR integration you have lots of built-ins
14:25 moritz_ the only thing that regularly bites me is that assignment is not implemented, but at least that has a helpful error message
14:26 arnsholt Yeah. It's easily fixed
14:27 arnsholt Is there a better way than "if $arg" to detect if an optional parameter actually was passed?
14:28 moritz_ pir::defined or pir::defined_ip iirc
14:28 diakopter jnthn: and by "won't", I mean "won't ever"
14:28 jnthn diakopter: I figured. :-)
14:28 diakopter (I hope you saw where I said (several times) that perlesque is not meant to be a Perl 6; it's meant to be an assembly/target language for other implementations)
14:29 moritz_ nqp: sub f($x?) { if pir::defined($x) { say("yes") } else { say("no") }
14:29 p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1664 (src/Regex/Cursor-builtins.pir:179)␤»
14:29 arnsholt Heehee. I can haz ASTs.
14:29 moritz_ nqp: sub f($x?) { if pir::defined($x) { say("yes") } else { say("no") } }; f()
14:29 p6eval nqp: OUTPUT«no␤»
14:29 moritz_ nqp: sub f($x?) { if pir::defined($x) { say("yes") } else { say("no") } }; f(0)
14:29 p6eval nqp: OUTPUT«yes␤»
14:29 moritz_ nqp: sub f($x?) { if pir::defined($x) { say("yes") } else { say("no") } }; f(1)
14:29 p6eval nqp: OUTPUT«yes␤»
14:29 moritz_ arnsholt: that also works with false but defined values
14:31 arnsholt moritz_: Yeah, that was the ticket
14:32 jaffa4 sprixel: 1+1
14:32 p6eval sprixel 30371: OUTPUT«Can't locate sprixelCORE.pad in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at Cursor.pm line 291.␤»
14:32 jaffa4 sprixel: 1+1;
14:32 p6eval sprixel 30371: OUTPUT«Can't locate sprixelCORE.pad in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at Cursor.pm line 291.␤»
14:32 pmichaud afk, doctor's visit
14:34 jaffa4 perlesque: 1+1
14:34 p6eval perlesque:  ( no output )
14:34 jaffa4 perlesque: 1+1;
14:34 p6eval perlesque:  ( no output )
14:34 jaffa4 perlesque: xxxx
14:34 p6eval perlesque: OUTPUT«parsefail␤»
14:34 jaffa4 perlesque: "string"
14:34 p6eval perlesque: OUTPUT«parsefail␤»
14:34 diakopter :)
14:34 jaffa4 perlesque: my $a-"string";
14:34 p6eval perlesque: OUTPUT«parsefail␤»
14:34 diakopter as I said yesterday, it knows about only ints so far
14:34 diakopter literals, that is
14:34 jaffa4 perlesque: my int $a-"string";
14:34 p6eval perlesque: OUTPUT«parsefail␤»
14:34 diakopter no string literals; SIGH
14:34 jaffa4 perlesque: my int $a=3;
14:34 p6eval perlesque:  ( no output )
14:35 moritz_ std: my $a-"string";
14:35 p6eval std 30371: OUTPUT«ok 00:01 108m␤»
14:35 diakopter again, no string literals
14:35 diakopter oh
14:36 moritz_ diakopter: yes, I just thought it might parse-fail in a declaration
14:36 moritz_ rakudo: my $z-"string"
14:36 p6eval rakudo 862d42:  ( no output )
14:36 jaffa4 perlesque: my int $a=3;  System::Console.WriteLine($a);
14:36 p6eval perlesque: OUTPUT«3␤»
14:36 jaffa4 perlesque: my int $a=3*3+`;  System::Console.WriteLine($a);
14:36 p6eval perlesque: OUTPUT«parsefail␤»
14:36 jaffa4 perlesque: my int $a=3*3+1;  System::Console.WriteLine($a);
14:36 p6eval perlesque: OUTPUT«9␤»
14:37 diakopter oh, the expression parser also doesn't yet support associativity,
14:37 diakopter so you  have to use parens
14:37 moritz_ but it probably just parses it as (my $a)-"string" (rakudo and STD, that is)
14:37 jaffa4 perlesque: my int $a=(3*3)+1;  System::Console.WriteLine($a);
14:37 colomon joined #perl6
14:37 p6eval perlesque: OUTPUT«10␤»
14:37 diakopter correct :)
14:38 diakopter (it will always choose right-associative)
14:38 jaffa4 perlesque: my int $a=(3*3)+1;  $a+=1; System::Console.WriteLine($a);
14:38 p6eval perlesque: OUTPUT«11␤»
14:38 jaffa4 perlesque: my int $a=(3*3)+1;  $a*=99; System::Console.WriteLine($a);
14:38 p6eval perlesque: OUTPUT«990␤»
14:38 diakopter (I don't know whether to fix that or not.... like I said, it's meant to be a target/assembly language, but human readable as Perlish
14:38 diakopter )
14:40 CokeBot9000 (defined) you can use // in NQP.
14:41 moritz_ that's very useful too
14:41 CokeBot9000 my $foo := $bar // $default;
14:41 arnsholt Good point as well
14:49 cognominal is   $a = Any  the Perl 6 equivalent  of   undef $a  ?
14:50 jferrero joined #perl6
14:50 CokeBot9000 perl6.vim doesn't deal with POD6 yet, does it?
14:51 mberends cognominal: defined( $a );
14:52 moritz_ CokeBot9000: there's a variable for enabling POD hilighting, but it's probably still out of date
14:52 moritz_ cognominal: undefine($a)
14:52 moritz_ cognominal: my Int $x = Any; will throw a type error
14:54 cognominal thx
14:54 arnsholt CokeBot9000: It handles parts of it at least
15:14 nihiliad joined #perl6
15:16 kensanata joined #perl6
15:17 justatheory joined #perl6
15:22 cotto cj, please take a look at the feedback on your gsoc proposal and post your thoughts on it.
15:42 pmurias joined #perl6
15:42 TimToady rakudo: my Int $x = Nil; say $x.WHAT
15:42 p6eval rakudo 862d42: OUTPUT«Type check failed for assignment␤current instr.: '&die' pc 17293 (src/builtins/Junction.pir:404)␤»
15:42 TimToady that's supposed to work too
15:44 jnthn TimToady: Why, btw? Is Nil a special case for assignmnet, or...?
15:45 jnthn Also, is then: sub foo() { return; }; my Int $x = foo(); # also OK?
15:45 moritz_ what value is Nil supposed to return in item context?
15:45 moritz_ s/return/be/
15:48 CokeBot9000 Is there a way (NQP) to refer to a particular proto regex? I have a few places where I have <EXPR=.some_rule> , and I'd like to be able to refer to some_rule:sym<foo> . will that jfw?
15:48 CokeBot9000 er, /should/
15:49 arnsholt CokeBot9000: I've tried the same, and I think the solution is to factor out the stuff you want
15:49 CokeBot9000 (it appears to not like the embedded <>)
15:51 jnthn CokeBot9000: As far as I know, no, you can't do that (I think not in Perl 6, even, rather than it just being an NQP restriction).
15:51 jnthn CokeBot9000: Factor out to some rule and then have the proto call that.
15:52 TimToady the currently specced semantics of Nil are described at S02:2113
15:52 arnsholt What jnthn said
15:52 arnsholt I think it's the right way to do it too
15:54 CokeBot9000 Thanks.
15:54 cj cotto: okay
15:56 mathw argh
15:56 mathw there's still discussion about hyphens and underscores
15:56 * mathw sings happy songs
15:58 moritz_ bikeshedding never ends.
15:58 cj cotto: sounds good to me.  I don't know about the GSoC rules, but I'll look about.  I've talked with fglock a few times about using his tools to target the DLR.  I'll touch base with Microsoft before I write up a response on that thread.  Thanks for reviewing.
16:00 snarkyboojum rakudo: say Nil.defined
16:00 p6eval rakudo 862d42: OUTPUT«0␤»
16:00 snarkyboojum rakudo: say ().defined
16:00 p6eval rakudo 862d42: OUTPUT«0␤»
16:00 CokeBot9000 jnthn, arnsholt: that approached worked easily. Danke.
16:00 snarkyboojum alpha: say Nil.defined
16:01 p6eval alpha 30e0ed: OUTPUT«0␤»
16:06 arthur-_ joined #perl6
16:13 TimToady if we need to, we can make Nil a special that returns (), rather than just an alias
16:15 TimToady *special value
16:15 TimToady like NaN etc.
16:16 TimToady but I'd like to see how far we can get with () === Nil
16:17 f00li5h joined #perl6
16:19 TimToady I suppose it could be argued that the assignment behavior of Nil is just a degenerate case of Nil triggering a default upon binding
16:19 pmurias ruoso: i'm rewriting the main mildew executable to use Bread::Board (inversion of control framework)
16:20 TimToady but if foo(Nil,1,2,3) triggers the default of the first argument, then that's a good reason to distinguish Nil from ()
16:21 TimToady alternately, we make foo((),1,2,3) mean the same thing, and require something else like foo([],1,2,3) to explicitly pass an empty array
16:22 TimToady have to think about that some more
16:26 jnthn TimToady: *nod*
16:26 jnthn TimToady: Yeah, it feels like a special case, but it's trying to work out where to put the specialness. :-)
16:34 ruoso pmurias, Bread::Board++ very ellegant
16:35 pmurias it even has some docs now
16:37 * jnthn has been using IOC stuff over in the .Net world. Can be very nice. :-)
16:38 M_o_C joined #perl6
16:38 ruoso TimToady, re () === Nil... I think it's pretty reasonable to think in an empty parcel as a "value", just like 1 so () would just be a syntactical synonim for Nil
16:39 ruoso the same way as 1 === 1 should just work
16:39 ruoso rakudo: say 1 === 1;
16:39 p6eval rakudo 862d42: OUTPUT«1␤»
16:40 ruoso rakudo: say () === ();
16:40 p6eval rakudo 862d42: OUTPUT«0␤»
16:41 ruoso IMNSHO, the above should return true
16:41 frettled That seems sensible3 to me.
16:41 TimToady do you think ($x) === ($x) should return true?
16:41 ruoso I know it looks a damn hard challenge
16:42 ruoso but ideally, I would think so
16:42 frettled That depends on whether you can reliably know whether there are any side effects that can change one $x and not the other.
16:42 TimToady or is a Parcel an internal object representing a particular set of argumetns
16:42 jnthn In ($x) === ($x) there is no Parcel though?
16:42 ruoso the Parcel points just to the name '$x'
16:42 ruoso how so?
16:42 ruoso you have two parcels
16:43 jnthn &infix:<,> is what makes a Parcel afaik.
16:43 TimToady okay, ($x,$y) === ($x,$y)
16:43 jnthn Otherwise parens just group
16:43 jnthn OK, in that case I agree we have two Parcels. :-)
16:43 ruoso the two parcels are identical and are read-only, in concept
16:43 TimToady unless a Parcel is a value type
16:43 jnthn I'm not sure on the answer. Clearly the "same type" constraint wins.
16:43 ruoso TimToady, that's what I was trying to mean
16:43 jnthn But beyond that it's whether identity otherwise returns the same.
16:44 jnthn If we give it a .WHICH that can do the right thing, I guess we're fine.
16:44 TimToady arguably, value typing of parcels is kinda necessary to do certain optimizations where you know the type id of any given parcel in advance, and can just compare the type id of the parcel with the previous dispatch
16:44 TimToady well, maybe it's not necessary
16:45 ruoso the challenge is how to get unrelated identical parcels to return the same .WHICH
16:45 TimToady I guess the type id optimization relies on the type id being a value, even if the parcel it describes isn't
16:45 * jnthn wonders if we can form a .WHICH based on the .WHICH-s of the things inside the parcel.
16:46 TimToady that is, my question is to what extent type inference depends on value semantics of argument lists
16:46 moritz_ @things».WHICH.join('|')
16:47 frettled hmm
16:47 TimToady I mean, value semantics of parcel
16:48 lisppaste3 joined #perl6
16:50 ruoso TimToady, the link from the Parcel to the thing inside it is symbolic
16:50 ruoso ($x, $y, $z) is a symbolic reference in the parcel
16:50 ruoso so ($x, $y, $z) is the same parcel even if the value of the inner variables changed
16:50 TimToady depends on what you mean by symbolic
16:51 TimToady but yes, your point stands with the definition you're using :)
16:51 ruoso I mean it doesn't yet apply any context on how it is getting the variable, so it's just a "this will get '$x' from the lexical scope $foo)
16:51 ruoso even if the value inside $x changed, the Parcel is the same
16:51 ruoso (this is a requirement for "is ref" in the signature anyway)
16:52 pmurias_ joined #perl6
16:52 TimToady yes, but a different $x in a different scope makes a !=== parcel, is what I'm saying, and I believe you are also saying
16:52 ruoso sure sure
16:52 TimToady so not *that* definition of symbolic
16:53 ruoso yeah... yeah... it's the "tied to current scope" type of symbolic
16:53 TimToady ($::('x'), $::('y'), $::('z')) *might* be the same parcel, with constant folding
16:54 TimToady but ($::($mumble)) has to be considered unknowable
16:54 TimToady (unless $mumble is a constant)
16:54 ruoso the thing is that $::($mumble) is a bvalue per se, and in this case is a unique bvalue
16:55 ruoso I mean, this kind of indirection is generated at run-time
16:55 TimToady by unique I presume you mean (1,$::($mumble)) !=== (1,$::($mumble))
16:55 ruoso exactly
16:56 TimToady since the act of reading $mumble could even change the value of $mumble, in theory
16:56 ruoso but that's the definition of $::($mumble) anyway
16:56 TimToady and why we have it :)
16:56 * jnthn looks nervously at that one
16:57 TimToady jnthn: it's no worse than |@args
16:57 ruoso jnthn, the key is at "this kind of indirection is resolved at runtime"
16:57 ruoso so the language runtime will return a different object everytime you use it
16:58 TimToady or you must assume it will, more accurately
16:58 jnthn ruoso: Sure, I think we're just not quite *that* lazy enough in Rakudo to promise that the !=== will hold.
16:58 jnthn That is, if the act of reading it changed the identity, sure it will.
16:58 ruoso jnthn, I think the answer is in the use of the bvalues
16:59 ruoso the bvalue provides this kind of "symbolic-lazyness"
16:59 ruoso which is already required to
16:59 jnthn That may be what I'm missing then.
16:59 jnthn That is, this is really nothing to do with parcels.
16:59 ruoso rakudo: my %a; my $b := %a<b><c><d>; say keys %a; $b = 1; say keys %a;
16:59 p6eval rakudo 862d42: OUTPUT«Method 'postcircumfix:<{ }>' not found for invocant of class 'Proxy'␤current instr.: '!postcircumfix:<{ }>' pc 13944 (src/builtins/Code.pir:120)␤»
17:00 ruoso rakudo: my %a; my $b := %a<b>; say keys %a; $b = 1; say keys %a;
17:00 p6eval rakudo 862d42: OUTPUT«:= binding of variables not yet implemented␤current instr.: '&die' pc 17293 (src/builtins/Junction.pir:404)␤»
17:00 ruoso meh
17:00 ruoso anyway
17:00 ruoso bvalue is needed to implement the above code
17:00 cdarroch joined #perl6
17:00 cdarroch joined #perl6
17:01 jnthn Hmm, OK. pmichaud++ seemed to have "how to do binding in Rakudo" in his head, so I probably need to try and work out what he had it mind at some point when he's time to explain it to me.
17:02 * ruoso can't remember if the term bvalue ever got into the spec
17:02 * jnthn doesn't recall seeing it.
17:02 ruoso TimToady, do you think it's something spec'able? or is it just implementation specific?
17:03 * jnthn 's $0.02 is that we let at least two implementations do it that way and then spec it.
17:03 jnthn It feels like something that could be spec'able, but maybe a little early to commit.
17:03 * ruoso shares the feeling
17:03 TimToady bvalues feel a lot like WHENCH objects to me
17:04 TimToady WHENCE*
17:04 ruoso they do, in fact....
17:04 TimToady some1 thu a WRENCH into mai speeler
17:04 TimToady I don't wish to objectify WHENCHes...  :)
17:05 ruoso TimToady, but bvalues don't commit the type
17:05 ruoso as WHENCE objects do
17:05 TimToady they do commit to being bvalues, so they aren't just bare closures
17:06 TimToady more like a Whatever.WHENCE
17:07 ruoso TimToady, hmm... they're probably much closer to a closure then to a concrete type, I think
17:07 TimToady well, they feel like a WHENCE with an underspecified type, which might be a smell
17:07 ruoso or they just a different type of Mu
17:07 cj diakopter: I've got a meeting with my doctor in 30 minutes, but after than I can take a call.
17:08 ruoso that you never reach to directly (unless by specialized ops)
17:08 ruoso whenever you touch it, it realizes itself into the actual value
17:08 TimToady how does it know what type of value to realize?
17:08 TimToady or is it just lazy {...}
17:08 ruoso it doesn't... it just has a pointer to somewhere
17:09 ruoso and that somewhere knows
17:09 ruoso the thing is that it only queries that somewhere when it needs to be realized
17:09 TimToady is it just "run this code if you need to"?
17:09 ruoso it's a "lazy lookup"
17:09 TimToady that's more or less what lazy {...} is specced to do
17:10 TimToady except maybe with LFETCH or some such
17:10 ignacio_ joined #perl6
17:10 ruoso it is pretty much the same as lazy {...} yes
17:11 ruoso but we probably don't want to expose it as a real closure
17:11 TimToady certainly not with a normal closure type, in any case
17:11 ruoso because it might be a bare-metal-low-level-thingy
17:11 TimToady there's some kind of proxy, and code you call to "rw" bind it
17:12 * ruoso points to hash bvalue in smop
17:12 TimToady if Foo{...} can allow the whence to return a different type than Foo, maybe Mu{...} works
17:13 ruoso the hash bvalue is simply a lazy lookup that stores the key to be queried and the actual hash...
17:13 TimToady but that seems like a type-theory breakage
17:13 ruoso only if we consider that the type has to be eagerly evaluated
17:13 justatheory TimToady: Sometimes I wish you wouldn't type "theory" so much.
17:13 TimToady theory theory theory theory theory
17:14 justatheory Dammit
17:14 justatheory toady toady toady toady toady toady
17:14 * ruoso 's IRC only highlights with the full name
17:15 supernovus joined #perl6
17:15 * TimToady 's too
17:15 ruoso TimToady, that reminds me of something in the hype nowadays "eventual consistency"
17:15 ruoso it doesn't break the type theory because when it get's realized, it will be sane
17:15 justatheory "theory" is my full nick on other servers.
17:16 TimToady but with a nested hash lvalue, each WHENCE merely invokes its predecessor key, it doesn't know about higher-up keys
17:16 ruoso it's just that while it doesn't ¿collapse?, everything is undecidable
17:16 TimToady so %x<a><b><c> =   makes a .WHENCE.WHENCE.WHENCE
17:16 ruoso yes (but I still call bvalue bvalue bvalue ;)
17:17 TimToady I'd still rather assume those are typed, with a possible wildcard, than assume they are unknowablely typed from the start
17:17 TimToady the later is unoptmizable
17:17 TimToady *t *i
17:17 ruoso maybe we shouldn't expose it at all
17:18 ruoso and just commit that the runtime may evaluate the symbolic lookups lazyly
17:18 TimToady *must*
17:18 TimToady or we create keys accidentally
17:18 TimToady like other languages
17:18 ruoso yeah... better yet...
17:18 TimToady well, WHENCE is lazy enough for me, and typed enough
17:19 * ruoso thinks it's too typed
17:19 TimToady bvalue doesn't feel typed enough to me
17:19 TimToady an untyped hash knows it is of type Any
17:19 TimToady we've got *plenty* of generic types in Perl 6
17:20 ruoso of course that if any type inference can be made, the bvalue could commit to that
17:20 ruoso or maybe even "should"
17:20 wasy left #perl6
17:20 ruoso but I'm getting convinced we'd better not expose bvalue to the language
17:21 ruoso I mean... besides the language using it
17:21 TimToady I think lazy typed values are the answer, and that they're already specced
17:22 TimToady and the language already hides those from mere mortals appropriately
17:23 ruoso indeed..
17:24 * ruoso .oO( it's always nice to reach the "the spec is already correct" state)
17:24 TimToady the spec doesn't even require the Foo to be instantiable; it can be a role that can't stand on its own
17:25 * ruoso .oO( we probably need to create a "implementation strategies" side-doc )
17:25 TimToady though for a proxy, you probably want something instantiable in the context of the structure
17:25 ruoso TimToady, but that thing don't need to be able to handle high-level semantics...
17:26 TimToady well, as long as the WHENCE returns something that smartmatches the Foo, we're probably fine
17:26 ruoso it can realize itself when that semantic is required
17:26 TimToady biab &
17:27 * ruoso think it's probably the time to create a second documentation structure that is oriented to the implementation aspects instead of the usage aspects
17:27 supernovus Any ideas when rakudo master will support   use Module :ALL;   again?  Currently any use of import tagsets in a use dies with something like:  Confused at line 3, near "use PSpec "
17:29 isBEKaml joined #perl6
17:32 jnthn supernovus: Not sure, but I don't think it'll be a use amount of work - the export side, AFAIK, already works.
17:32 jnthn Just fixing up the parsing and import code.
17:32 jnthn Maybe I can look at it later this week
17:37 pugssvn r30372 | pmurias++ | [mildew] started rewriting the mildew script to use Bread::Board
17:37 pugssvn r30372 | (untill read it's called bread)
17:37 pmurias joined #perl6
17:39 muixirt joined #perl6
17:42 pmurias ruoso: re doc stucture, you mean specing all the tiny details which are only visible to the user in rare circumstances but are important to the implementors
17:45 ignacio_ joined #perl6
17:46 supernovus jnthn: thanks, Rakudo is certainly moving forward quickly. :-)
17:46 REPLeffect joined #perl6
17:47 jnthn supernovus: Yes, I hoped to have quite a lot of coding time this week but so far only succeeded at being ill. (other folks)++ are writing patches though. \o/
17:47 ruoso pmurias, even in a higher-level, implementation strategies, such as the representation polymorphism, which is a requirement for any Perl 6 implementation
17:48 ruoso or the strategy for the Polymorphic Eval, with its alternatives to interoperate Perl 6 with other languages
17:48 ruoso then other things like "Implicit Threading" and "Implicit Event-based programming"
17:49 ruoso and this list goes with "Multi-routine Dispatch"
17:49 ruoso "nextsame, callsame et al"
17:51 diakopter jnthn: finished loop (;;)  well, non-nested anyway.  that's easy to add.
17:51 jnthn \o/
17:52 diakopter perlesque: my int $a; loop ($a = 1000000; $a > 0; $a -= 1) { if (($a % 100000) == 0) { System::Console.WriteLine($a) } }; System::Console.WriteLine($a);
17:52 p6eval perlesque: OUTPUT«1000000␤900000␤800000␤700000␤600000␤500000␤400000␤300000␤200000␤100000␤0␤»
17:53 diakopter perlesque: my int $a; loop ($a = 10000000; $a > 0; $a -= 1) { if (($a % 1000000) == 0) { System::Console.WriteLine($a) } }; System::Console.WriteLine($a);
17:53 p6eval perlesque: OUTPUT«10000000␤9000000␤8000000␤7000000␤6000000␤5000000␤4000000␤3000000␤2000000␤1000000␤0␤»
17:53 diakopter perlesque: my int $a; loop ($a = 100000000; $a > 0; $a -= 1) { if (($a % 10000000) == 0) { System::Console.WriteLine($a) } }; System::Console.WriteLine($a);
17:53 p6eval perlesque: OUTPUT«100000000␤90000000␤80000000␤70000000␤60000000␤50000000␤40000000␤30000000␤20000000␤10000000␤0␤»
17:54 diakopter slows down a tad on 100 million; about 2 seconds
17:57 Alias joined #perl6
17:57 TimToady implementing the native types first--now there's a concept... :)
17:58 ruoso TimToady, understanding the actual meaning of native vs non-native types in Perl 6 was probably the most important realization I made during SMOP design
18:00 ruoso and that's the kind of thing that gets scattered in the current spec...
18:03 diakopter ruoso: ditto
18:03 diakopter it's a very important concept
18:04 diakopter also, Cool vs. Any is very important
18:04 jnthn I expect that the native types stuff will be one of the big topics for Rakudo after Rakudo *.
18:05 * jnthn is always kinda happy when @other-implementation has been there first :-)
18:05 * ruoso .oO( "Perl 6 Implementors Handbook" )
18:06 diakopter "Implementing Perl 6" would be several volumes
18:06 diakopter several shelves it included the mailings lists and irclogs
18:06 diakopter well, "Designing & Implementing Perl 6"
18:07 [particle] sigh, the lusty lady is closing.
18:07 [particle] 'perlesque' reminded me of that
18:07 diakopter heh
18:08 diakopter purlesque: die in a fire
18:08 diakopter "HALP!"
18:09 jnthn ...can we spec *that*? :-)
18:10 pugssvn r30373 | pmurias++ | [mildew] breads reads the source in properly
18:11 diakopter oh, that's with every-single-operation-is-its-own-basic-block.  in other words, with with some better basic block separations, it would be ... much faster.
18:12 diakopter since its storing $a there as a field in an object of a class representing the current frame
18:13 diakopter (and with good analysis, the whole frame's routine can be detected as a single basic block)
18:14 diakopter jnthn: here's the disassembly of what it emits for that:  http://perlesque.pastebin.com/5y64kwtU
18:17 diakopter I have no idea whence the unused locals.  Silly Reflector.
18:18 jnthn heh, no wonder it's fast.
18:18 diakopter but it could be a lot faster....
18:19 diakopter oh look, visual studio 2010 released.
18:20 diakopter (and .net 4)
18:23 jnthn Yeah!
18:23 jnthn Think I have to wait until after Russia to play with that though. :-)
18:23 diakopter aww, the time-travelling debugger costs $6k extra per user.
18:23 jnthn Can you get one copy and go into the future to get a license, when it's cheaper?
18:24 diakopter heh
18:24 CokeBot9000 jnthn: ... nothing is cheaper in the future.
18:44 pugssvn r30374 | pmurias++ | [mildew] breads supports -B and -C
18:48 muixirt ruoso: w.r.t. native types vs. non-native types can you elaborate on that?
18:52 muixirt jnthn: why are native type difficult to implement?
18:56 jnthn muixirt: Partly it depends on your target platform. Parrot doesn't let you have native types stored in the lexpads or as object attributes, which has made that tricky for Rakudo to do earlier on.
18:56 pugssvn r30375 | pmurias++ | [mildew] bread supports -Cdesugar
18:58 jnthn I think Parrot probably will get around to adding support for that sometime after Rakudo *, but also Rakudo will start to target additional backends.
18:58 muixirt additional backends?
18:58 masak joined #perl6
18:58 masak ahoy, #perl6
18:58 jnthn lolitsmasak
18:59 jnthn muixirt: As in, generate code for more than one platform.
19:00 jnthn Anyway, my feeling is that at a user level, native types would be a nice to have rather than a blocker for a lot of Perl 6 users. I imagine a lot of people will write programs without a single type annotation in them, and that's fine. :-)
19:00 jnthn So I'm not especially worried we didn't get there yet.
19:01 jnthn I'm very keen that we do get there in the months after R * though.
19:01 muixirt hi masak, is your yapsi project a serious attempt?
19:02 masak muixirt: as far as I know, yes.
19:02 masak it got temporarily put on hold by the Temporal changes.
19:02 masak but as soon as I find snarkyboojum, I think we'll give it another go :)
19:02 muixirt jnthn: which platforms (for the backends)
19:03 muixirt masak: I ask because of that special day it started :-)
19:03 * diakopter votes for mono 2.6 & .net 2/3.5
19:03 masak muixirt: that was deliberate. :) I'm almost disappointed that more people haven't asked that question :)
19:04 jnthn muixirt: Undecided yet. Rakudo * has quite enough Difficult Things for me to worry about right now. :-)
19:05 muixirt ok
19:06 diakopter mono 2.4 SIGABRTs on perlesque's CIL, or else I'd want to use that, since ubuntu includes mono 2.4
19:12 muixirt jnthn: one use for native types in rakudo would be that someone could write a perl6 compiler that capitalizes on that ;-)
19:14 hercynium joined #perl6
19:15 sundar_ joined #perl6
19:15 cj diakopter: o/
19:15 cj diakopter: someone put an IV needle in my tire while I was at the doctor's.  good times.
19:16 cj diakopter: but I'm home nao.  in case you still want to talk about stuff and things.
19:16 mberends masak: I could not get DateTime.new() to MMD on an Str parameter, so I'm (temporarily) putting that in another constructor called parse() that reads an ISO8601 string
19:16 cj diakopter: we're bundling up 2.6 now, btw
19:17 cj diakopter: we == the debian mono team
19:17 masak mberends: good, as long as there's a comment explaining that we want to converge on the spec but can't. ;)
19:17 cj diakopter: also, if you've got a bug report we might be able to back-port a fix
19:21 diakopter cj: yeah, try saving/loading a DynamicAssembly from a LightweightFunction that's also generated at runtime by Reflection.Emit
19:21 diakopter SIGABRT
19:21 cj diakopter: code? :)
19:21 cj diakopter: if you can get me a simple repro, I'll manage getting it fixed
19:22 diakopter :) I'll email you the .exe
19:22 jnthn mberends: Ugh, nasty bug.
19:22 cj no .cs?
19:22 mberends yes, jnthn?
19:23 diakopter cj; it wouldn't help you; it's all .. um... "unreadable" (as pmurias enjoys labeling my code)
19:23 cj ... then it needs to be reduced, I'd think
19:23 jnthn mberends: That new one, I meant.
19:24 diakopter cj: I mean, if you can read code-gen-gen (twice deferred fluent codegen) without several days of getting accustomed to it... :D
19:25 diakopter cj: it's not that it needs reduced; someone just needs to run it with a debugger attached and back up from there
19:25 mberends jnthn: I'll try to reduce the MMD to problem to a test case, if possible
19:25 diakopter it would take forever to redue it
19:25 jnthn mberends: Thanks. I'll see when I can look at it.
19:25 diakopter reduce it
19:25 jnthn mberends: Expected to have plenty of time this week, but it ain't worked out like that.
19:26 mberends jnthn: get well quickly
19:26 jnthn mberends: Trying! :-)
19:27 cj diakopter: well, if you can give me the .cs and the .exe/.dll, it will be a start
19:28 cj I'll see if I can do the debugging and get something pretty put together for the mono folks
19:28 mberends rakudo: DateTime.now.ymd.say
19:28 p6eval rakudo 862d42: OUTPUT«2010-04-12␤»
19:28 mberends rakudo: DateTime.now.hms.say
19:28 p6eval rakudo 862d42: OUTPUT«19:13:26␤»
19:29 mberends rakudo: DateTime.now.say
19:29 p6eval rakudo 862d42: OUTPUT«2010-04-12T19:13:36+0000␤»
19:30 ash_ joined #perl6
19:30 diakopter cj: just checkout svn from csmeta.org, and xbuild Sprixel.sln
19:31 jnthn rakudo: DateTime.hms.victory.say
19:31 p6eval rakudo 862d42: OUTPUT«Type objects are abstract and have no attributes, but you tried to access ␤current instr.: 'perl6;DateTime;hms' pc 500419 (src/gen/core.pir:0)␤»
19:31 mberends :-( back to the drawing board
19:32 jnthn Can't believe there's no HMS Victory.
19:32 jnthn ;-)
19:32 mberends oh, it should be case sensitive too ;)
19:33 jnthn .oO( Clearly Perl 6 *has* missed the boat ;-) )
19:35 diakopter mberends: vv
19:35 jnthn rakudo: DateTime.now.hms.WHAT.say
19:35 diakopter rakudo: Str.^''()
19:35 p6eval rakudo 862d42: OUTPUT«Str()␤»
19:35 p6eval rakudo 862d42: OUTPUT«too many positional arguments: 2 passed, 1 expected␤current instr.: 'perl6;Mu;' pc 2617 (src/builtins/Mu.pir:524)␤»
19:35 diakopter rakudo: say DateTime.^''()
19:35 p6eval rakudo 862d42: OUTPUT«too many positional arguments: 2 passed, 1 expected␤current instr.: 'parrot;P6protoobject;' pc 508709 (src/gen/core.pir:80340)␤»
19:36 diakopter DateTime missed the Mu?
19:36 sundar_ joined #perl6
19:37 mberends diakopter: DateTime does not inherit from anything. yet.
19:37 ash_ .^''() is that a bug? what is that calling?
19:37 phenny ash_: 07 Apr 14:52Z <[particle]> tell ash_ wikipedia has plenty of direct links for C3 info: http://en.wikipedia.org/wiki/C3_linearization
19:37 diakopter mberends: maybe that's a problem?
19:37 diakopter maybe other things are assuming it's a Mu
19:37 diakopter or Any
19:38 ash_ rakudo: say DateTIme.^parents
19:38 p6eval rakudo 862d42: OUTPUT«Could not find sub &DateTIme␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
19:38 ash_ rakudo: say DateTime.^parents;
19:38 p6eval rakudo 862d42: OUTPUT«Any()Mu()␤»
19:38 diakopter okiedokieartichokie
19:38 jnthn Any is the thing you inherit from by default.
19:39 ash_ unless you explicitly inherit from Mu? (i assume...)
19:39 ash_ rakudo: class Foo is Mu { ... }; say Foo.^parents;
19:39 p6eval rakudo 862d42: OUTPUT«Any()Mu()␤»
19:40 ash_ hmm
19:40 ash_ is there a way to remove any? if you want a very bare minimum object for some reason?
19:40 TimToady rakudo: grammar Foo {...}; say Foo.^parents
19:40 jnthn That looks like a bug.
19:40 p6eval rakudo 862d42: OUTPUT«Any()Mu()␤»
19:40 jnthn So does that.
19:40 jnthn rakudo: class Foo is Mu { ... }; say Foo ~~ Any
19:40 masak rawr!
19:40 p6eval rakudo 862d42: OUTPUT«1␤»
19:41 * masak submits rakudobug
19:41 jnthn rakudo: grammar Foo { ... }; say Foo ~~ Grammar
19:41 p6eval rakudo 862d42: OUTPUT«0␤»
19:41 jnthn ...
19:41 jnthn Huh.
19:41 TimToady should inherit from Cursor
19:42 jnthn Cursor rather than Grammar? OK.
19:42 TimToady well, under the STD model
19:42 ash_ rakudo: grammar Foo { ... }; say Foo.^parents; # so thats wrong?
19:42 p6eval rakudo 862d42: OUTPUT«Any()Mu()␤»
19:42 ash_ Cursor(), Any(), Mu() is the right answer?
19:43 diakopter rakudo: class Foo does Mu { ... }; say Foo.^roles;
19:43 p6eval rakudo 862d42: OUTPUT«␤»
19:43 jnthn ash_: Sounds like it.
19:43 ash_ diakopter: shouldn't that be an error? Mu's an object, not a role...
19:43 jnthn TimToady: OK, that's probably a decent model to follow. ;-)
19:43 jnthn .^roles asks what roles it does.
19:43 jnthn So it's fine.
19:44 diakopter ash_: I don't know; I just fuzz 'em
19:44 diakopter jnthn: a class is allowed to "does" a class?
19:44 ash_ that makes it seem like 'does' and 'is' are interchangable..
19:45 jnthn diakopter: Not directly
19:45 jnthn Though there's a specuative "inverse pun" thingy.
19:45 bkeeler It should inherit from Grammar; that's where parsefile is defined
19:45 diakopter jnthn: so it's not correct, then
19:45 diakopter class Foo does Mu
19:45 stephenlb joined #perl6
19:46 jnthn Oh
19:46 jnthn Erm
19:46 uniejo joined #perl6
19:46 diakopter rakudo: role Foo is Int { ... }; say Foo.^parents; # likewise
19:46 jnthn rakudo: class Foo is Mu { }; say Foo ~~ Any
19:46 p6eval rakudo 862d42: OUTPUT«Any()Mu()␤»
19:46 p6eval rakudo 862d42: OUTPUT«0␤»
19:46 jnthn heh
19:46 jnthn If you put ... in there, it's a stub.
19:46 jnthn So it appears, it never gets around to doing a whole lot with it...
19:46 diakopter oh
19:47 jnthn That is, never actually constructs a class.
19:47 diakopter rakudo: role Foo is Int { }; say Foo.^parents; # likewise
19:47 diakopter you mean role
19:47 p6eval rakudo 862d42: OUTPUT«Int()␤»
19:47 jnthn It probably should whine at you if you stub but then don't actually declare later.
19:47 jnthn role Foo is Int is fine.
19:47 diakopter std: role Foo is Int { }; say Foo.^parents; # likewise
19:47 p6eval std 30375: OUTPUT«ok 00:02 109m␤»
19:47 diakopter ok
19:48 jnthn Even has a clearly spec'd meaning. :-)
19:48 ash_ rakudo: class Foo does Mu { }
19:48 p6eval rakudo 862d42: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: 'perl6;ClassHOW;add_composable' pc 4099 (src/metamodel/ClassHOW.pir:186)␤»
19:48 ash_ boom goes the dynamite
19:48 ash_ sstd: class Foo does Mu { }
19:49 ash_ std: class Foo does Mu { }
19:49 p6eval std 30375: OUTPUT«ok 00:01 106m␤»
19:49 diakopter std: role ::Foo does ::Foo { }
19:49 p6eval std 30375: OUTPUT«ok 00:01 107m␤»
19:49 justatheory joined #perl6
19:49 diakopter .. in theory
19:49 ash_ is that right? can you 'inverse pun'?
19:49 justatheory wha?
19:49 justatheory bastard
19:50 diakopter inbred
19:50 masak joined #perl6
19:50 tewk joined #perl6
19:50 ruoso muixirt, the thing is not with the native types per se, but with the realization on how flexible the non-native types are
19:51 ruoso I don't know if that's implemented in rakudo but:
19:51 ruoso rakudo: class A { method ACCEPTS { 1 } }: my A $a .= new; say $a ~~ Int
19:51 p6eval rakudo 862d42: OUTPUT«Confused at line 11, near "class A { "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
19:51 ruoso rakudo: class A { method ACCEPTS { 1 } }; my A $a .= new; say $a ~~ Int
19:52 p6eval rakudo 862d42: OUTPUT«0␤»
19:52 ruoso rakudo: class A { method ^does { 1 } }; my A $a .= new; say $a ~~ Int
19:52 p6eval rakudo 862d42: OUTPUT«0␤»
19:52 ruoso rakudo: class A does Int {  }; my A $a .= new; say $a ~~ Int
19:52 p6eval rakudo 862d42: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: 'perl6;ClassHOW;add_composable' pc 4099 (src/metamodel/ClassHOW.pir:186)␤»
19:53 ash_ rosuo s/does/is/
19:53 ruoso Int is a role
19:53 ruoso not a class
19:53 diakopter orly
19:53 ruoso *it is supposed to be, at least
19:53 ruoso every built-in type is just a Role
19:53 ruoso of course they have cached punned classes
19:53 ash_ i thought it was an object... hmmm
19:53 ruoso a Role is an Object
19:54 ash_ well, class i mean
19:54 ruoso nope, precisely because that would get the type checks very confuse
19:55 ruoso rakudo: class A { }; say A.HOW.WHAT
19:55 p6eval rakudo 862d42: OUTPUT«A()␤»
19:55 ruoso rakudo: class A { }; say A.HOW.HOW
19:55 p6eval rakudo 862d42: OUTPUT«P6metaclass()␤»
19:56 muixirt ok ruoso
19:58 * muixirt makes a straight face as if he understood everything
20:00 ruoso muixirt, putting it simple... an Int is any object that says so
20:00 ruoso you can only trust it
20:00 ruoso you cannot assume its internal structures
20:00 masak joined #perl6
20:01 ruoso you can only use the API
20:01 masak hm -- http://use.perl.org/~fglock/journal/40310
20:01 masak I don't see where the subs are called.
20:01 ruoso the only objects that have it's internal structures pre-defined are the native ones
20:01 pyrimidine joined #perl6
20:01 masak pyrimidine: \o
20:01 pyrimidine o/
20:02 ruoso rakudo: class Meta is P6metaclass {  }; my $a = Meta.new; $a.add_method('foo',sub { say 'Foo' }); my $b = $a.new; say $b.foo
20:02 cj diakopter: https://bugzilla.novell.com/show_bug.cgi?id=595900
20:02 p6eval rakudo 862d42: OUTPUT«Could not find sub &substr␤current instr.: 'perl6;Signature;_block21845' pc 490150 (src/gen/core.pir:73836)␤»
20:02 ruoso õ.O
20:03 ruoso jnthn, any idea on why that happens?
20:04 masak that error seems to happen when some other errors want to happen sometimes.
20:04 jnthn Yes.
20:04 ash_ rakudo: class Meta is P6metaclass {  };
20:04 p6eval rakudo 862d42: OUTPUT«Could not find sub &substr␤current instr.: 'perl6;Signature;_block21845' pc 490150 (src/gen/core.pir:73836)␤»
20:04 ash_ it happens after that
20:04 ash_ so... it probably has to do with P6metaclass
20:04 jnthn Nope
20:04 ash_ (my guess)
20:04 ruoso rakudo: class Meta is P6metaclass {
20:04 ruoso oops
20:04 ruoso rakudo: class Meta is P6metaclass {  }
20:05 p6eval rakudo 862d42: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
20:05 p6eval rakudo 862d42: OUTPUT«Could not find sub &substr␤current instr.: 'perl6;Signature;_block21845' pc 490150 (src/gen/core.pir:73836)␤»
20:05 ruoso oops (just noticed ash_ have just tried the same thing)
20:05 jnthn Issue in the changes to run the program in the lexical scope of the setting.
20:05 jnthn Some fail that I think the test suite didn't quite get or something.
20:05 masak we had a no-such-trait bug the other day like that.
20:05 ash_ ah
20:05 jnthn I had a partial patch towards fixing that up.
20:06 jnthn Unfortunately, I've completely forgotten what blocked me on it.
20:06 masak will Perl 6 have explicit support for the Singularity somehow?
20:06 masak if it's to be a 20-year language, I guess it has to...
20:07 [particle] the singularity is perl 6
20:07 hudnix joined #perl6
20:08 masak [particle]: oh, ok.
20:08 masak [particle]: is that spec'd somewhere?
20:09 [particle] yes, in S42.
20:10 Teratogen joined #perl6
20:11 Teratogen when will there be a definitive version of Perl 6?
20:11 Teratogen because we need it
20:12 ruoso jnthn, which methods can I call on P6metaclass ?
20:14 jnthn ruoso: You probably don't want to touch P6metaclass, but rather work with ClassHOW.
20:14 ruoso hmm...
20:14 jnthn In theory P6metaclass knows about add_method, add_parent etc.
20:15 justatheory hrm?
20:15 jnthn In practice ClassHOW gets the interface righter.
20:15 justatheory oh, n/m
20:15 jnthn justatheory: Sorry!
20:15 justatheory np
20:15 justatheory I didn't see the "in" there
20:17 * moritz_ back, after *very* delicate nom
20:18 ruoso rakudo: class Meta is ClassHOW { method does { 1 } }; my $type = Meta.new(); say $type ~~ Int;
20:18 p6eval rakudo 862d42: OUTPUT«0␤»
20:19 ruoso In theory, the above should have returned 1
20:19 ruoso # hides
20:19 justatheory heh
20:20 ruoso jnthn, do we agree that it should've returned 1?
20:24 ruoso rakudo: class Meta is ClassHOW { method does { 1 } }; my $type = Meta.new(); $type.^add_method('foo',sub {'Foo'}); say $type ~~ Int; say $type.foo;
20:24 p6eval rakudo 862d42: OUTPUT«0␤Method 'foo' not found for invocant of class 'ClassToBe'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
20:24 ruoso it seems meta-rakudo is NYI
20:24 ruoso or maybe I'm just doing anything wrong
20:25 moritz_ ruoso: writable meta-rakudo is NYI - introspection does work pretty well
20:25 moritz_ ruoso: uhm, you can't add a sub as a method
20:26 ruoso why?
20:26 moritz_ because a sub is not a method
20:26 moritz_ and you try to call it as a method, afaict
20:27 moritz_ (and if it worked with a sub, it should take at least one positional param)
20:27 jnthn ruoso: (agree on 1) I'm not at all sure, but I'm still too tired and brain-busted from being ill to really think about anything hard.
20:27 jnthn moritz_: No, it'll be fine to add, but it'll fail on the call.
20:27 jnthn For the reason you stated - no invocant taken.
20:28 jnthn ruoso: My first intution is "maybe not" though.
20:28 synth13204234234 joined #perl6
20:28 jnthn Ask me again some other time. :-)
20:28 ruoso heh... ok
20:28 dalek rakudo: 9e39ecb | (Martin Berends)++ | src/core/Temporal.pm:
20:28 dalek rakudo: [core/Temporal.pm] change '_' in identifiers to '-' as per spec change about to be written by masak++, and add a parse(StrISO8601) method
20:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9e39ecb0f1ae363f8667f30c04ae0242ef50fea6
20:29 REPLeffect joined #perl6
20:29 pugssvn r30376 | mberends++ | [Temporal.t] change '_' to '-' in names as per masak++'s future spec change, add 2 more tests
20:31 PerlJam dashes++
20:33 moritz_ masak++
20:35 elmex joined #perl6
20:40 mathw hyphens++
20:40 mathw something about them
20:40 mathw when you start using them
20:40 mathw it's hard to stop when coding in C++
20:42 ash_ mathw: just overload - a lot :P
20:42 mathw umm
20:42 mathw how about
20:43 mathw NO
20:43 diakopter lol
20:45 mathw I'm already corrupted enough with C++
20:45 mathw I can't even write a simple HTML-generating library without using the CRTP
20:45 jnthn Yes, but have you currupted C++ enough? ;-)
20:45 diakopter cj: thanks
20:46 mathw jnthn: I'm not trying to corrupt C++, I'm trying to corrupt my colleagues
20:46 pmurias joined #perl6
20:46 mathw Actually I've been asked by my university to go and talk to the second-year group project teams about life after graduation
20:46 mathw So maybe I can corrupt them, too
20:47 mathw I will have to mention Perl 6, of course
20:47 pugssvn r30377 | moritz++ | [t/spec] fudge S05-metasyntax/unknown.t for rakudo; correct a test
20:47 pugssvn r30378 | moritz++ | [t/spec] fudge context.t for rakudo
20:49 pmurias mathw: "in real life when trying to avoid work we usually hang out in the #perl6 channel" ;)
20:49 mathw maybe I won't mention that bit :)
20:49 jnthn Huh? I've found hanging out here gives me *more* work. :-P
20:50 mathw and I can't blow too much trumpet as I don't actually *do* very much here
20:50 IllvilJa pmurias: you made me realize I should close this chat window ASAP... :-)
20:50 synth13204234234 joined #perl6
20:51 * IllvilJa heads back to my humble coding at work...
20:52 dalek rakudo: b9aaa31 | moritz++ | t/spectest.data:
20:52 dalek rakudo: two more passing test files
20:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b9aaa3165f5674faa2683bc24417e5de9c4a8bd4
20:52 * moritz_ thinks that people using CTCP ACTIONs should be forced to finish their sentences in the third person singular :-)
20:52 pugssvn r30379 | pmurias++ | [mildew] add a bit of pod to Mildew::Backend::Desugar
20:53 colomon \o/
20:53 * TimToady are of two minds about that.
20:54 * mathw applauds TimToady's subject-verb agreement there
20:55 TimToady We are frequently amused, and occasionally amusing.
20:55 * diakopter fails to think of a witty use of the royal we
20:55 diakopter oh.
20:56 Teratogen Look, just answer me this one question.  Will a definitive version of Perl 6 be out by this Christmas?
20:56 cj diakopter: glad I could help.  I'll keep you updated if we get a response from the mono team
20:56 PerlJam What's definitive?
20:56 mathw Rakudo * will be
20:56 diakopter cj: I joined the ticket
20:56 cj diakopter: well then.  I'll let you monitor it yerself! ;)
20:57 TimToady Teratogen: it'll be outer this Christmas than last Christmas...
20:58 Teratogen hey PerlJam
20:58 Teratogen long time, no ascii
21:01 REPLeffect joined #perl6
21:03 cj TimToady: "more outer"?
21:03 Teratogen I would say that "definitive" means a version of Perl 6 that is ready for production use by the computing industry
21:04 [particle] teratogen: the answer is no. or yes. nobody here happens to know.
21:05 PerlJam Teratogen: so ... if i happen to be using rakudo in production before christmas, does that count?
21:05 cj ooh!  I've gotten pretty good at telling the future... but usually I have to wait 'till after it happens...
21:05 moritz_ PerlJam: only if you are (in) the computing industry, whatever that may be
21:06 mathw goodnight everyone o/
21:06 [particle] cj: tell the future whatever you want, it doesn't listen to lessons from the past.
21:06 cj [particle]: are you sure?
21:06 [particle] why do i keep repeating mistkaes?
21:07 PerlJam [particle]: because you don't recognize them in time.
21:07 moritz_ [particle]: because you learn by repetition
21:07 Teratogen so is any company doing production work/projects with Perl 6 yet?
21:08 wknight8111 joined #perl6
21:08 TimToady Teratogen: you keep asking for yes/no answers to questions in fuzzy set logic...
21:09 Teratogen I guess what I am trying to say is that we really need to get Perl 6 out the door
21:09 Teratogen we are losing credibility =/
21:09 moritz_ Teratogen: you are, not we
21:09 [particle] who's we?
21:09 TimToady nobody wants that more than the people working on it.
21:10 cj Teratogen: I think you need coffee cups to make statements like that
21:10 thowe joined #perl6
21:10 CokeBot9000 moritz_: "I know you are, but what am I?" ?
21:11 PerlJam CokeBot9000: well ... who is "we"?  (Have you seen Teratogen contribute to Perl 6?)
21:11 [particle] there aren't enough people writing tests, using current releases of perl 6 versions, reviewing the perl 6 specs, implementing the compilers, writing books, or donating money to the cause.
21:11 BinGOs in other news perl-5.12.0 is close to release.
21:11 [particle] or, there are enough people, and it takes more time than you want.
21:11 Teratogen just get something out the door
21:11 Teratogen please
21:11 Teratogen thank you
21:11 Teratogen that is all
21:11 Teratogen =)
21:12 TimToady we are much more interested in integrity than credibility
21:12 [particle] every month, there is a release of the rakudo perl 6 compiler
21:12 cognominal TimRoady++
21:12 [particle] there has been for a long time.
21:13 [particle] teratogen: why wait? try rakudo now.  see if it meets your needs. learn. play. help.
21:14 diakopter by "something", I assume Teratogen means "something with 'stability' [as pm uses the term]"
21:15 [particle] i wouldn't trust any perl 6 1.0 release to be stable
21:15 [particle] look what happened to smartmatch in perl 5.10.0 and 5.10.1
21:15 [particle] or binary compat in the 5.8 series
21:16 [particle] continuous improvement is more important than arbitrary version numbers
21:16 diakopter that said, they're not merely arbitrary in connotation
21:17 Teratogen I guess Perl 6 will never get picked up and adopted the way the original Perl was
21:17 Teratogen those days are over
21:18 [particle] perl 6 solves different problems than perl 5.  we won't be porting matt's script archive to perl 6.
21:18 PerlJam Teratogen: How do you think the "original Perl" was picked up and adopted?
21:18 TimToady Perl 1 invented its own ecological niche, which now has many competitors.  Perl 6 is inventing its own new ecological niche.
21:19 chromatic joined #perl6
21:19 chromatic You are all having a very silly discussion and I want in.
21:20 Teratogen someone has to put their foot down and say "listen, we have to get a version of Perl 6 OUT THE DOOR"
21:20 japhb A friend of mine was asking about the ability of Perl 6 for to recognize the arity of its block and feed the proper number of elements, and couldn't remember what it was called (a "succinct feature name" I believe he was looking for), and I drew a blank.  Does that feature *have* a simple name?
21:20 cognominal Teratogen, that what rakudo stat is about
21:20 diakopter left #perl6
21:20 chromatic Point one: "in production" is a meaningless term.
21:20 chromatic Point two: "out the door" is a meaningless term.
21:20 TimToady Teratogen: the correct place to put one's foot down is the accelerator pedal, which is what we're doing.
21:20 japhb Vroom Vroom
21:21 chromatic Point three: "stability" is nearly a meaningless term.
21:21 mberends Teratogen: no, *those* days are over
21:21 cognominal there is a roadmap saying, we want that and that to say that  a release is rakudo star.
21:22 [particle] some days, "is" is a meaningless term
21:22 PerlJam besides ... telling people who are already working on something to hurry up is rarely productive.
21:22 thowe I feel I missed something before coming here that is fundamental to understading this conversation.
21:22 [particle] we won't stop innovating to release something that's incomplete
21:22 [particle] we'll release incomplete things that get better as we keep innovating
21:22 chromatic We won't stop releasing to release something that's... well, I don't know how to finish this sentence.
21:23 thowe Oh.  I think I'm up to speed now.
21:23 PerlJam thowe: how fast are you going?
21:24 Teratogen so, a definitive version of Perl 6 will never be released, is that what you are telling me?
21:24 * thowe gives all the perl6 devs a hug.
21:24 japhb I get the feeling I asked my question when there was too much being discussed ....
21:25 cognominal Teratogen, there has never been a definitive version of Perl 5.
21:25 PerlJam Teratogen: as soon as there's a definitive Perl 5 release.
21:25 cognominal it keeps evolving
21:25 japhb Teratogen, there is no such thing as "a definitive version" of any computer software.  That is for static media, and usually the term is abused even then
21:25 diakopter joined #perl6
21:25 cognominal ...but suffers of massive ossification
21:25 japhb "What seems to be the problem, Ossifer?"
21:25 [particle] Teratogen: perl 6 is a spec. there is currently more than one implementation, all in various states of lsl'definitiveness
21:26 thowe Teratogen, it seems you are being deliberately provocative.  It serves no purpose.  Have a beer and play with Rakudo.
21:26 [particle] er, keyboard changed mappings mid-word there... non-definitiveness.
21:26 * thowe rubs Teratogen's shoulders
21:26 thowe it's OK.
21:26 Teratogen ok ok, I am just egging you guys on
21:26 Teratogen it's all in good fun =)
21:26 PerlJam It's all Jon Orwant's fault.
21:27 * TimToady mugs for the camera.
21:27 PerlJam Ever since he threw that cup people have thought that's all they need to do to "contribute"
21:27 Teratogen who wants to see pics of me and Randal Schwartz having lunch at H@@TERS?
21:27 chromatic It's hard to break one of those mugs.
21:27 thowe Nobody ever thinks about the janitorial staf...
21:27 chromatic Or the dents in the door.
21:28 TimToady Jon had to throw three or four before one broke.
21:28 [particle] that door sounds like an auction item
21:28 PerlJam "I'm going to catalyst the Perl 6 devs by telling them to hurry up"
21:28 PerlJam er, catalyze
21:28 cj chromatic: :)
21:28 japhb I want mugs that strong.  Maybe then my kids wouldn't constantly grab stuff off the counters and break it on the floor.
21:29 chromatic They only bounced off the floor when I tried.
21:29 TimToady We want our mugs to have integrity, not credibility...  :)
21:29 [particle] :)
21:29 diakopter nor smugness
21:29 thowe Doesn't credibility tend to result from integrity?
21:29 TimToady thowe: got it in one
21:30 PerlJam except that it's a function of time and people are impatient :)
21:31 PerlJam If only we could get Chuck Norris hacking on Perl 6 ...
21:31 diakopter my people are dying, Senator
21:31 thowe some people are.  I'm entertained and inspired by observing the process ATM.
21:31 chromatic People who aren't impatient to have noticed any of 27 previous releases aren't impatient enough for my taste.
21:31 * TimToady senses a disturbance in the farce...
21:32 PerlJam Immortals like TimToady are *too* patient for mere mortals.
21:32 m6locks the farce is strong in this one
21:33 diakopter I didn't know parrots could harbor mitochlorians
21:33 TimToady .oO(we made that run in under six parcels!!!)
21:34 diakopter that's no mono, that's a rakudo star.
21:34 diakopter er, space station.
21:34 diakopter whatevs
21:35 bacek joined #perl6
21:35 bacek o hai
21:35 bacek seen jnthn
21:36 diakopter the ground flows with the blood of the !seen bots, which Ceiling Cat's Kitten slew in righteous judgment.
21:36 diakopter jnthn was around earlier today
21:37 chromatic Is anyone else around who understands the C of the binder?
21:39 chromatic We'll make Rakudo run faster if so.
21:39 chromatic Offer valid today only.
21:39 spinclad i think that's mostly jnthn who's ailing today, but i've seen some others hit it with patches that seemed to work
21:39 diakopter I hate mail in rebates, tho
21:39 jnthn chromatic: I understand it most of the time...
21:39 jnthn chromatic: Today I'm recovering from an ill and preparing to fly to Russia... :-/
21:40 cj diakopter: I parsed that 'in' as a preposition
21:40 jnthn chromatic: I can answer you something quickly.
21:40 PerlJam the only people who've touched the binder are chromatic, jnthn, and pmichaud
21:40 jnthn chromatic: But need sleep soonish.
21:40 * bacek cast dreams of immutable strings to jnthn
21:41 chromatic Tomorrow might be better then.  We're not in a rush to merge, and it's likely a debugging session away.
21:41 jnthn chromatic: OK, then that's probably more sensible.
21:41 spinclad jnthn: you fly today?
21:41 jnthn spinclad: Depends how you define today.
21:41 jnthn In my timezone it's still tomorrow :-)
21:42 jnthn In Moscow timezone it's today though. ;-)
21:43 bacek jnthn, don't drink too much warm vodka!
21:44 bacek Better to freeze it before :)
21:44 jnthn bacek: Stricly vhilled vodka only!
21:44 jnthn uh, chilled
21:45 bacek jnthn, счастливо долететь :)
21:46 jnthn bacek: Спасибо! :-)
21:48 jnthn OK, bed. Night o/
22:08 kensanata joined #perl6
22:08 payload joined #perl6
22:09 hanekomu joined #perl6
22:09 diakopter perlesque: my int $a = 4; sub foo() { my int $a = 5; System::Console.WriteLine($a) }; System::Console.WriteLine($a); foo(); System::Console.WriteLine($a);
22:09 p6eval perlesque: OUTPUT«4␤5␤4␤»
22:21 hanekomu joined #perl6
22:25 snarkyboojum joined #perl6
22:25 justatheory joined #perl6
22:26 TiMBuS joined #perl6
22:26 cj diakopter: is that doing what I think it's doing?
22:28 pyrimidine left #perl6
22:32 muixirt perlesque?
22:33 muixirt perl6: say "list of implementations"
22:33 p6eval elf 30379, pugs, rakudo b9aaa3: OUTPUT«list of implementations␤»
22:34 diakopter perlesque: my int $a = 4; sub foo() { my int $a = 5; System::Console.WriteLine(4) }; sub bar() { (); };
22:34 p6eval perlesque: OUTPUT«parsefail␤»
22:34 diakopter perlesque: my int $a = 4; sub foo() { my int $a = 5; System::Console.WriteLine(4) }; sub bar() { foo(); };
22:34 p6eval perlesque:  ( no output )
22:34 diakopter cj: yeah it's invoking perlesque with that input
22:35 cj fancy
22:35 diakopter perlesque: my int $a = 4; sub foo() { my int $a = 5; System::Console.WriteLine(4) }; sub bar() { foo(); };
22:35 p6eval perlesque:  ( no output )
22:35 diakopter perlesque: my int $a = 4; sub foo() { my int $a = 5; System::Console.WriteLine(4) }; sub bar() { foo(); };
22:35 p6eval perlesque:  ( no output )
22:35 diakopter hm
22:35 diakopter perlesque: my int $a = 4; sub foo() { my int $a = 5; System::Console.WriteLine(4) }; sub bar() { foo(); }; bar()
22:35 p6eval perlesque: OUTPUT«4␤»
22:35 diakopter duh
22:35 cj I was thinking that looked okay ;)
22:36 diakopter 15-second full rebuilds are nice.  /me looks at some others
22:36 diakopter ok, ok, it won't be sub-minute forever.
22:37 * diakopter tackles parameters & arguments
22:37 diakopter (the infrastructure's already in place)
22:38 diakopter just have to wire up the grammar & the emitter
22:38 ash_ what is perlesque?
22:38 cj ash_: o/
22:39 cj it's diakopter's .net perl6 implementation
22:39 diakopter no.
22:39 diakopter it's not.
22:39 cj no?
22:39 diakopter for the nth time.
22:39 * cj ducks
22:40 diakopter it's a very small subset of some mishmash of perl5 & perl6, that's fully strongly-typed at the CLR level, and provides classes, structs, closures, continuations/coroutines, and compiler services from the sprixel compiler platform.
22:41 ash_ how far is it from nqp?
22:41 diakopter it aims to provide an ultra-efficient target/assembly language for which Perl 6 implementation authors can write emitters from their front-ends
22:41 muixirt url?
22:42 diakopter csmeta.org
22:42 diakopter the sprixel engine is part of the csmeta compiler-as-a-service-ish thingy.
22:42 justatheory joined #perl6
22:43 pmurias diakopter: so it's something mildew could target?
22:43 diakopter yes, absolutely
22:43 diakopter basically it's C# with a perlish veneer, but with nifty metaprogramming features factored in
22:44 diakopter it has its own grammar engine that's probably 50% of nqp-rx's (maybe more)
22:45 ash_ cool
22:45 diakopter but that probably won't be upgraded much more at all
22:45 ash_ if it was nqp-rx compatable, it would be even more motivation for rakudo to support multiple back-ends
22:45 diakopter since I want STD to compile itself to perlesque
22:47 REPLeffect joined #perl6
22:47 diakopter all of the code in it is MIT-/BSD-/MSPL- licensed; please feel free to improve it to nqp-rx compatibility
22:47 diakopter .. but I have my eyes set on STD itself for the time being
22:48 diakopter basically I want to implement enough of [a strongly-typed subset of] Perl 5 to which STD can compile itself through "viv"
22:49 pmurias ash_: i'm not sure that compiling Perl 6 down to nqp is a good idea
22:49 ash_ not completely, but a lot of it can be expressed in nqp terms
22:49 ash_ there are a lot of places where pir could be changed to nqp, i think
22:51 ash_ then you'd have a core set of things you'd have to re-implement in whatever your nqp sat on top of but that would make the first hurdle for porting rakudo to a new backend implementing nqp
22:56 ash_ like, for instance, the src/builtins/ folder, all of those files are written in .pir, but i think a number of parts of those could be re-done in nqp, probably, but maybe not, there might be another reason they are like that
22:58 ash_ CokeBot9000++ did tcl in pir first, and is working on a refactor of it that uses nqp for nearly everything, most of it works fine as nqp, with the occasional pir::* ops, which is an example of what i mean
23:09 orafu joined #perl6
23:18 diakopter pmurias: what is Bread?
23:20 pmurias the current name of the rewrite of the mildew script
23:20 diakopter oh
23:20 pmurias it uses Bread::Board
23:20 diakopter why the rewrite?
23:21 pmurias the script evolved into a spagetti so i'm refactoring it into a bunch of classes
23:21 diakopter oh
23:21 diakopter :)
23:22 lue hello!
23:22 diakopter spaghetti is good if you have a fork.  just fingers?  not so good.
23:22 diakopter :)
23:23 lue .oO(Spaghetti ought to be best with a spork)
23:28 lue anything earth-shattering happen today? :)
23:28 diakopter you can backlog :P
23:28 diakopter just search for "earth-shattering" on the webpage
23:30 * diakopter is liking how vs2010 rc & .net4 rc uninstalled without asking for a restart, and now the non-rc ones are installing without asking for a restart (yet).
23:31 lue jnthn --unjinx --target="ALL" # you're welcome
23:34 pausenclown joined #perl6
23:36 pausenclown given a somwhat functional xml parser, what would u consider more important. parsed entities, xpath access or easy access a la xml::simple?
23:37 diakopter xpath
23:37 diakopter kidding.
23:37 diakopter xml::simple
23:38 * pmurias shouldn't have stayed up late chasing down a bug with ast caching...
23:39 pausenclown reminds me of that grammar question i got.
23:39 lue Is there any easy way to do ±, other than running a varied equation multiple times?
23:40 pausenclown can i make a grammar to read (lazily) from  a filehandle and will the grammar engine suppot twigs?
23:40 hanekomu joined #perl6
23:42 pausenclown lue: [+|-] 1,2;
23:42 pausenclown # 1, -1, 2, -2
23:43 payload joined #perl6
23:43 mariano joined #perl6
23:43 lue rakudo: say 3 [+|-] 2
23:43 p6eval rakudo b9aaa3: OUTPUT«Confused at line 11, near "say 3 [+|-"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
23:44 lue rakudo: say [+|-] 3,2
23:44 p6eval rakudo b9aaa3: OUTPUT«Confused at line 11, near "say [+|-] "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
23:44 lue rakudo: say (+|-) 3,2
23:44 p6eval rakudo b9aaa3: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
23:44 payload1 joined #perl6
23:44 lue is [+|-] supposed to work?
23:44 pausenclown hah! he bit it =)
23:45 pausenclown sorry, i was kidding.
23:45 lue :(    (that should be implemented though)
23:46 pausenclown well, i made it up. but i wouldnt have been surprised if it actually worked :)
23:46 pausenclown or at leased spec'ced
23:47 lue rakudo: say 3 ± 2
23:47 p6eval rakudo b9aaa3: OUTPUT«Confused at line 11, near "say 3 \x{b1} 2"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
23:47 lue std: say 3 ± 2
23:47 p6eval std 30379: OUTPUT«[31m===[0mSORRY![31m===[0m␤Confused at /tmp/vb45ra8vn3 line 1:␤------> [32msay 3 [33m⏏[31m± 2[0m␤    expecting any of:␤ bracketed infix␤  infix or meta-infix␤      statement modifier loop␤Parse failed␤FAILED 00:01 109m␤»
23:48 pausenclown what do want ± to do?
23:49 thowe Is there a Perl6 code style guide?  I have ways that I code in Ruby based on what the community seems to do.  Same for QT4.  For C it's KNF..  If there a style that the cool people follow?
23:49 thowe er s/If/Is/
23:49 lue rakudo: multi sub infix:<±>($a, $b) { ($a+$b&$a-$b); }; say 3 ± 2
23:49 p6eval rakudo b9aaa3: OUTPUT«all(5, 1)␤»
23:49 lue thowe: not that I'm aware of.
23:50 lue rakudo: multi sub infix:<±>($a, $b) { ($a+$b&$a-$b); }; say -4 ± sqrt(16+4)
23:50 pausenclown ive been told the conventional perl5 styles apply
23:50 p6eval rakudo b9aaa3: OUTPUT«all(0.47213595499958, -8.47213595499958)␤»
23:50 diakopter thowe: you *are* the cool people if you're even coding it.
23:50 thowe pausenclown, are those formally or informally defined someplace?
23:50 diakopter so, it's your style.
23:51 pausenclown CamelCase for classnames and un_der_score for everzthing else
23:52 thowe diakopter, No, I'm a perpetual wannabe...
23:52 diakopter me2
23:52 thowe pausenclown, what about tabs?  I really hate using tabs for indenting...
23:52 pausenclown i use 4 spaces
23:52 lue I carryover from Python and use 4 spaces :)
23:53 pausenclown abd editor set to replace tab with space
23:53 diakopter 4 spaces here
23:53 pausenclown s
23:53 thowe That's what I do for C++ so that would be pretty natural.  For Ruby I use 2 spaces.
23:53 lue ( If you must use tabs, a width of 4 is recommended :) )
23:53 diakopter heh
23:53 thowe tabs are evil.  I'm constantly fixing the PHP code of the assclowns here.
23:53 thowe Biggest problem is they are often loss when cutting and pasting
23:54 lue rakudo: multi sub infix:<±>($a, $b) { ($a+$b&$a-$b); }; say (-8±sqrt(64-60))/2 ~~ (-5&-3)
23:54 p6eval rakudo b9aaa3: OUTPUT«0␤»
23:54 lue rakudo: multi sub infix:<±>($a, $b) { ($a+$b&$a-$b); }; say (-8±sqrt(64-60))/2
23:54 p6eval rakudo b9aaa3: OUTPUT«all(-3, -5)␤»
23:54 lue say (-5&-3).WHAT
23:54 pausenclown thowe: manually?
23:54 lue rakudo: say (-5&-3).WHAT
23:54 p6eval rakudo b9aaa3: OUTPUT«Junction()␤»
23:55 lue .oO(since when does (-5&-3) not equal (-3&-5)? Is this supposed to happen?)
23:55 thowe pausenclown, depends.  Sometimes.  Not a whole file.  Don't have that kind of time on my hands.
23:56 thowe I was really just asking because if I create some sample code for myself or work, I want it to match "convention" if there is such a thing.
23:57 lue The only convention I'm aware of is readability ( even then it might not be a convention ;) )
23:58 pausenclown rakudo; my  @a = 1, 2, 3; say @a[1..Inf]
23:58 spinclad .u Р
23:58 phenny U+0420 CYRILLIC CAPITAL LETTER ER (Р)
23:58 spinclad .u Ρ
23:58 phenny U+03A1 GREEK CAPITAL LETTER RHO (Ρ)
23:58 colomon moritz_++: errr... you've got perlcabal.org updating now, but it is still about 700 revisions behind HEAD.
23:58 thowe I'm a big fan of putting my open and closing curlies in the same column.
23:59 thowe In C++ anyway...

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

Perl 6 | Reference Documentation | Rakudo