Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-01-18

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:01 VXZ left #perl6
00:03 dalek tpfwiki: (Herbert Breunung)++ | http://www.perlfoundation.org/pe​rl6/index.cgi?perl_6_meta_tablet
00:09 Chillance left #perl6
00:10 MayDaniel_ left #perl6
00:13 * snarkyboojum is off to linux.conf.au in a couple of weeks.. a few perl talks happening, but no perl6 :|
00:13 snarkyboojum will see if I can find a few surreptitious perl6 hackers tho :)
00:16 snarkyboojum and drag them into #perl6 :)
00:17 cafesofie joined #perl6
00:18 coldhead linux.conf.au is on the banks of the river that flooded...
00:19 coldhead one of the*
00:19 coldhead fingers crossed
00:19 snarkyboojum yep.. it's still going ahead though.. not the ideal scenario, but things are settling down in brisbane after the floods
00:22 GinoMan left #perl6
00:23 dorlamm left #perl6
00:28 felliott left #perl6
00:30 felliott joined #perl6
00:40 huf left #perl6
00:51 ashleydev left #perl6
00:53 felliott left #perl6
00:53 ashleydev joined #perl6
00:56 QinGW joined #perl6
00:56 huf joined #perl6
01:00 simon__ left #perl6
01:11 felliott joined #perl6
01:12 PerlJam left #perl6
01:13 pmichaud left #perl6
01:15 Juerd left #perl6
01:15 tadzik left #perl6
01:15 Util left #perl6
01:15 PerlJam joined #perl6
01:16 Util joined #perl6
01:16 Juerd joined #perl6
01:20 pmichaud joined #perl6
01:28 felliott left #perl6
01:40 KatrinaTheLamia left #perl6
01:54 KatrinaTheLamia joined #perl6
01:57 cosimo left #perl6
02:03 GinoMan joined #perl6
02:03 noganex left #perl6
02:04 cosimo joined #perl6
02:06 noganex joined #perl6
02:19 VXZ joined #perl6
02:23 noganex left #perl6
02:30 noganex joined #perl6
02:30 KatrinaTheLamia left #perl6
02:40 payload left #perl6
02:41 QinGW1 joined #perl6
02:42 cafesofie left #perl6
02:44 QinGW left #perl6
02:45 GinoMan left #perl6
02:48 ashleydev left #perl6
02:48 felliott joined #perl6
02:49 felliott_ joined #perl6
02:49 felliott left #perl6
02:49 felliott_ is now known as felliott
02:53 lichtkind joined #perl6
02:54 lichtkind p5=> is gone?
02:54 lichtkind i think yes
02:54 lichtkind i remember
02:54 lichtkind thanks
02:57 dalek tpfwiki: (Herbert Breunung)++ | http://www.perlfoundation.org/per​l6/index.cgi?perl_6_lookup_tablet
03:03 dalek tpfwiki: (Herbert Breunung)++ | http://www.perlfoundation.org/perl​6/index.cgi?perl_6_operator_tablet
03:08 dalek tpfwiki: (Herbert Breunung)++ | http://www.perlfoundation.org/perl​6/index.cgi?perl_6_operator_tablet
03:10 felliott left #perl6
03:14 dalek tpfwiki: (Herbert Breunung)++ | http://www.perlfoundation.org/perl​6/index.cgi?perl_6_operator_tablet
03:16 xinming_ left #perl6
03:16 lichtkind left #perl6
03:19 felliott joined #perl6
03:19 cotto_work left #perl6
03:21 cotto_work joined #perl6
03:21 xinming joined #perl6
03:27 tadzik joined #perl6
03:28 GinoMan joined #perl6
03:30 am0c joined #perl6
03:31 vmspb left #perl6
03:32 envi joined #perl6
03:34 KatrinaTheLamia joined #perl6
03:37 Intensity joined #perl6
03:39 QinGW1 left #perl6
03:42 VXZ left #perl6
03:42 QinGW joined #perl6
04:06 felliott left #perl6
04:13 satyavvd joined #perl6
04:16 cafesofie joined #perl6
04:17 felliott joined #perl6
04:21 ashleydev joined #perl6
04:23 Su-Shee joined #perl6
04:24 QinGW left #perl6
04:24 QinGW joined #perl6
04:27 Su-Shee_ left #perl6
04:30 felliott left #perl6
04:38 ashleydev left #perl6
04:39 ashleydev joined #perl6
04:39 ashleydev left #perl6
04:43 QinGW left #perl6
04:43 jferrero left #perl6
04:44 QinGW joined #perl6
05:19 willco left #perl6
05:23 QinGW left #perl6
05:28 QinGW joined #perl6
05:34 coldhead wait wait wait wait
05:35 coldhead petdance.com, sister site to rakudo.org, is host to the big black/rapeman archive?
05:35 coldhead :O
05:36 coldhead http://petdance.com/actionpark/
05:36 coldhead i am stunned
05:43 QinGW left #perl6
05:44 QinGW joined #perl6
05:55 kaare_ joined #perl6
06:01 ponbiki left #perl6
06:02 ponbiki joined #perl6
06:03 QinGW left #perl6
06:04 QinGW joined #perl6
06:28 perigrin petdance.com is the sistersite to rakudo.org?
06:29 coldhead same "webmaster"
06:29 perigrin right
06:30 perigrin but beyond that how are they possibly related?
06:30 perigrin other than Andy hosts both of them?
06:30 coldhead well i was down on andy for rakudo.org stability problems. but now all is forgiven
06:31 coldhead i'm mostly surprised at what a small world it can be, perl6 & a venerable big black site
06:31 coldhead old & new, etc. nevermind
06:32 perigrin :)
06:33 Patterner left #perl6
06:34 Psyche^ joined #perl6
06:34 Psyche^ is now known as Patterner
06:34 awwaiid left #perl6
06:36 awwaiid joined #perl6
06:37 Tene left #perl6
06:41 awwaiid left #perl6
06:43 awwaiid joined #perl6
06:44 Tene joined #perl6
06:44 Tene left #perl6
06:44 Tene joined #perl6
06:46 jnthn left #perl6
06:47 jnthn joined #perl6
06:48 simcop2387 left #perl6
06:52 awwaiid left #perl6
06:57 envi left #perl6
07:10 dukeleto left #perl6
07:11 dukeleto joined #perl6
07:18 simcop2387 joined #perl6
07:24 justatheory left #perl6
07:25 moritz_ good morning
07:27 wtw joined #perl6
07:28 awwaiid joined #perl6
07:33 awwaiid left #perl6
07:42 dukeleto left #perl6
07:43 dukeleto joined #perl6
07:47 cafesofie left #perl6
08:04 QinGW left #perl6
08:05 QinGW joined #perl6
08:18 cafesofie joined #perl6
08:19 sftp left #perl6
08:20 dukeleto left #perl6
08:21 dukeleto joined #perl6
08:23 snarkyboojum moaning
08:28 [particle] left #perl6
08:30 dalek rakudo: 388eed7 | moritz++ | docs/ChangeLog:
08:30 dalek rakudo: another ChangeLog entry
08:30 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/388eed7942
08:41 snarkyboojum moritz_: that test harness you included in niecza recently.. is that supposed to be able to be run with t/run_spectests?
08:45 QinGW left #perl6
08:45 QinGW joined #perl6
08:51 kensanata joined #perl6
08:56 snarkyboojum because it ain't workin' no mo' :P
08:59 Tene anyone have any idea what sorear needs from me, re his post in #phasers?
09:02 satyavvd left #perl6
09:03 araujo left #perl6
09:04 cjk101010 joined #perl6
09:05 QinGW left #perl6
09:06 satyavvd joined #perl6
09:07 QinGW joined #perl6
09:09 agentzh joined #perl6
09:27 masak joined #perl6
09:27 masak oh hai, #perl6
09:38 snarkyboojum masak: o/
09:39 sftp joined #perl6
09:40 jnthn morning, #perl6
09:40 snarkyboojum jnthn: o/
09:40 snarkyboojum heh
09:49 orafu left #perl6
09:50 orafu joined #perl6
09:51 lopaway is now known as lopnor
09:58 dakkar joined #perl6
09:59 lopnor hello,
09:59 snarkyboojum hi lopnor
09:59 lopnor i have a question about regex in perl6,
09:59 lopnor can I ask?
09:59 masak yes. always.
09:59 snarkyboojum please do.
10:00 lopnor i'd like to get 'not tab strings'
10:00 lopnor in perl5, i'll write $str =~ /[^\t]+/
10:00 lopnor or something,
10:00 jnthn Maybe \T+ works...
10:00 masak / ^ \T* $ /
10:00 lopnor then,
10:01 lopnor not 'tab or newline'
10:01 jnthn <-[\t\n]>
10:01 lopnor will be /<[\T\N]>+/ or something?
10:01 lopnor jnthn: i tried with rakudo,
10:01 jnthn No, need a negated char class for that I think...
10:01 jlaire left #perl6
10:01 lopnor it matched 't' and 'n'
10:01 masak lopnor: yes, that won't work.
10:02 masak lopnor: everything matches <[\T\N]>
10:03 jnthn [\T & \N]+ # is probably along the lines of what you were trying to do with the char class, but it's no doubt slow as well... :)
10:03 masak [<!before \n> \T]*
10:04 lopnor ah,
10:04 jnthn masak: What I just wrote almost boils down to the same thing, fwiw.
10:04 QinGW left #perl6
10:04 masak guess so, yes.
10:04 jnthn masak: As in, I think & is implemented either very much like before or maybe even in terms of it.
10:04 masak not in PGE.
10:05 jnthn Yes, but I didn't read the source to that. :P
10:05 lopnor thank you!
10:05 lopnor i understand now! thank you everyone!
10:05 masak & has the additional restriction that the two operands need to match the same length substring.
10:05 masak lopnor: come back for more questions anytime.
10:05 jnthn masak: True
10:05 lopnor masak: thank you. i will.
10:06 jlaire joined #perl6
10:07 masak jnthn: I remember being flabbergasted at the complexity of &, and then it all fell into place. in the end it was trivial to implement; just let backtracking handle all of the logic.
10:07 masak in the end, it's because of backtracking that & is expensive. it does backtracking in both operands, a bit like X does.
10:09 jnthn Makes sense.
10:10 cafesofie left #perl6
10:12 snarkyboojum so this doesn't work?
10:12 jnthn "this"?
10:12 snarkyboojum rakudo: my $text = "\t"; if $text ~~ /<-[\t]>+/ { say "no tabs" }
10:12 p6eval rakudo c664e8: OUTPUT«no tabs␤»
10:12 snarkyboojum I'm misunderstanding something :)
10:13 jnthn oh, ETOOIMPATIENT :)
10:13 snarkyboojum could be bier and regex don't match :P
10:13 jnthn snarkyboojum: huh, I'd expect that to work too...
10:13 jnthn Oddness
10:13 masak it's a known bug.
10:13 jnthn Oh.
10:14 masak nqp-rx doesn't recognize backslashed things in charclasses.
10:14 snarkyboojum ah, that's what I thought our friend lopnor was raising
10:14 snarkyboojum masak++ # the human bug database
10:16 masak that's what lopnor was experiencing. I didn't want to bring it in and confuse the matter. :)
10:16 masak we should really fix that bug.
10:16 cafesofie joined #perl6
10:17 masak here: http://rt.perl.org/rt3/Tic​ket/Display.html?id=81168
10:17 masak but I don't think that's the latest one. I think moritz_++ submitted the original one.
10:18 snarkyboojum oh goody.. I wonder how hard it is to fix
10:18 * jnthn isn't sure off hand
10:18 masak aye, here: http://rt.perl.org/rt3/Tic​ket/Display.html?id=73698
10:19 * masak sees about merging the two
10:19 masak snarkyboojum: moritz_++ has some wording on the thing in his ticket.
10:19 snarkyboojum interesting reading
10:20 hanekomu joined #perl6
10:45 am0c left #perl6
10:51 Vlavv_ left #perl6
10:55 agentzh left #perl6
10:58 Vlavv joined #perl6
11:01 cafesofie left #perl6
11:02 cafesofie joined #perl6
11:07 vmspb joined #perl6
11:19 lopnor is now known as lopaway
11:42 envi joined #perl6
11:52 cafesofie left #perl6
11:54 satyavvd left #perl6
12:09 cogno joined #perl6
12:23 felliott joined #perl6
12:36 cogno left #perl6
12:37 MayDaniel joined #perl6
12:46 cogno joined #perl6
12:57 cogno left #perl6
13:05 takadonet morning all
13:06 masak takadonet: \o
13:07 nadim_ left #perl6
13:16 Su-Shee left #perl6
13:24 Su-Shee joined #perl6
13:24 cjk101010 left #perl6
13:32 felliott left #perl6
13:41 MayDaniel left #perl6
13:43 tylerni7 left #perl6
13:43 takadonet long time since I seen that rakudo pass all the spectest :)
13:46 tylerni7 joined #perl6
13:50 masak <sorear> Container is nonsense
13:50 masak I agree. I'd say Scalar is the same kind of nonsense.
13:50 flussence takadonet: it fails 3 on mine, and nobody else's apparently, I've no idea what causes it :(
13:51 takadonet i always have failed tests but no one else did... looks like we changed places
13:52 masak some things have been platform-dependent, such as the PID bug.
13:55 [Coke] FYI, when building rakudo with 3.0.0 : http://trac.parrot.org/parrot/ticket/1977
13:55 [Coke] moritz_++ has reported this in the past, I believe.
13:56 jnthn If Scalar exists it's as a container type like Array or Hash. my Scalar $x would mean you're declaraing a Scalar containing a Scalar container.
13:57 jnthn Which is, like my Array @x, not what you usually want.
13:59 colomon o/
14:00 masak \o
14:02 Weathros joined #perl6
14:03 __rnddim__ joined #perl6
14:04 sorear_ joined #perl6
14:05 huf left #perl6
14:05 Lorn left #perl6
14:05 p6eval left #perl6
14:05 Bucciarati left #perl6
14:05 stepnem left #perl6
14:05 lue left #perl6
14:05 Tedd1 left #perl6
14:05 takadonet left #perl6
14:05 flussence left #perl6
14:05 frooh left #perl6
14:05 sorear left #perl6
14:05 gfldex left #perl6
14:06 gfldex joined #perl6
14:07 plobsing left #perl6
14:07 mj41_ joined #perl6
14:08 kst` joined #perl6
14:08 Lorn joined #perl6
14:08 coldhead` joined #perl6
14:08 ponbiki left #perl6
14:08 cxreg left #perl6
14:08 coldhead left #perl6
14:08 ggoebel left #perl6
14:08 flatwhatson left #perl6
14:08 mj41 left #perl6
14:08 kalkin- left #perl6
14:08 nsh_ left #perl6
14:08 gottreu left #perl6
14:08 kst left #perl6
14:08 meteorjay left #perl6
14:08 jjore left #perl6
14:08 mathw left #perl6
14:08 IRSeekBot left #perl6
14:08 ascent_ left #perl6
14:08 nperez_ left #perl6
14:08 betterworld left #perl6
14:08 mathw joined #perl6
14:08 cxreg joined #perl6
14:08 mj41_ is now known as mj41
14:08 nsh- joined #perl6
14:08 nperez joined #perl6
14:08 ponbiki joined #perl6
14:09 ggoebel joined #perl6
14:09 meteorjay joined #perl6
14:09 ascent_ joined #perl6
14:09 gottreu joined #perl6
14:09 betterworld joined #perl6
14:10 kalkin- joined #perl6
14:10 jjore joined #perl6
14:10 flatwhatson joined #perl6
14:11 huf joined #perl6
14:11 p6eval joined #perl6
14:11 Bucciarati joined #perl6
14:11 stepnem joined #perl6
14:11 takadonet joined #perl6
14:11 flussence joined #perl6
14:11 frooh joined #perl6
14:11 colomon jnthn: what would Scalar mean if it was a container?
14:12 IRSeekBot joined #perl6
14:15 kaare_ left #perl6
14:17 ascent__ joined #perl6
14:17 bacek_ joined #perl6
14:18 araujo joined #perl6
14:18 araujo left #perl6
14:18 araujo joined #perl6
14:18 d4l3k_ joined #perl6
14:19 masak colomon: sounds like it would be kind of like an Array with exactly one element.
14:19 betterwo1ld joined #perl6
14:19 masak (and none of the regular Array methods)
14:19 [particle] joined #perl6
14:20 gfldex_ joined #perl6
14:20 ascent_ left #perl6
14:20 Patterner left #perl6
14:20 bacek left #perl6
14:20 betterworld left #perl6
14:20 PacoLinux left #perl6
14:20 dalek left #perl6
14:20 PacoLinux joined #perl6
14:20 Psyche^ joined #perl6
14:20 Psyche^ is now known as Patterner
14:20 gfldex left #perl6
14:20 tadzik left #perl6
14:20 d4l3k_ is now known as dalek
14:20 tadzik joined #perl6
14:21 colomon masak: but an element of an Array can be anything, right?
14:22 colomon including another Array...
14:22 masak sure.
14:23 colomon It seems like it would be much more useful if it were something like
14:23 colomon subset Any where { !~~ Array & Hash }
14:24 colomon (realized halfway through I had no idea how to make that legal code, but I hope the idea comes through)
14:25 fhelmberger joined #perl6
14:26 masak subset Any where { $_ ~~ none(Array, Hash) }
14:26 masak so it's OK for it to be a Set, a Bag, or an EnumMap?
14:30 flussence (huh, "given $input { ok .indent($a), $result }" does the complete opposite of what I expected...)
14:31 flussence (oh, I'm an idiot, that's why.)
14:31 masak flussence++ # implementing .indent
14:31 flussence I'm staring at the code thinking "wtf", when I should've used "is" there :)
14:33 raihjken joined #perl6
14:33 raihjken Hai :S ?
14:33 raihjken left #perl6
14:33 dalek tpfwiki: util++ | http://www.perlfoundation.org/perl​6/index.cgi?best_of_perl_6_tablet
14:33 masak wow, a drive-by hai-er.
14:33 flussence and now that I'm using the right test function, it still does the complete opposite... but more usefully
14:34 flussence (if I'm understanding right, it's doing is($_, .indent...)
14:34 plobsing joined #perl6
14:35 rbuels left #perl6
14:36 masak flussence: 'is .indent, $result' means 'is($_.indent, $result)'
14:36 mtk joined #perl6
14:36 flussence it helps if I look at the right got/expected lines :)
14:36 sftp left #perl6
14:37 sftp joined #perl6
14:38 hudnix left #perl6
14:38 hudnix joined #perl6
14:42 masak spectests PASS here as well. \o/
14:43 dalek tpfwiki: util++ | http://www.perlfoundation.org/per​l6/index.cgi?perl_6_delta_tablet
14:46 kaare_ joined #perl6
14:48 dalek rakudo: 13b405c | pmichaud++ | build/PARROT_REVISION:
14:48 dalek rakudo: Bump PARROT_REVISION to 3.0.0 release.
14:48 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/13b405c9bb
14:48 dalek tpfwiki: util++ | http://www.perlfoundation.org/per​l6/index.cgi?perl_6_delta_tablet
14:49 colomon masak: Array, Hash was meant purely to illustrate.  Positional, Associative might make more sense.  Or something else altogether.
14:50 colomon or it's just as likely the entire idea of Scalar is nonsense.  :)
14:51 pmurias joined #perl6
14:51 pmurias niecza: say "hi"
14:51 p6eval niecza v1-149-g56c80b0: OUTPUT«Unhandled exception: Unable to resolve method keys in class Array␤  at /home/p6eval/niecza/boot/lib/SAFE.setting line 922 (SAFE keys @ 2)␤  at /home/p6eval/niecza/src/Metamodel.pm6 line 192 (Metamodel Namespace.list_stash @ 7)␤  at
14:51 p6eval ../home/p6eval/niecza/src/Metamodel.pm6 line 603 (Me…
14:51 pmurias who runs the evalbot?
14:52 masak colomon: all I can say is I don't see the point of Scalar, and nothing in the spec makes me see the point of it.
14:52 gtsafas_ is now known as elb0w
14:53 pmichaud Scalar is the name of the type for Scalar containers, I suspect.
14:53 flussence masak: it's mentioned as the return type for Array.pop, is there any other way of doing that?
14:53 araujo left #perl6
14:53 pmichaud Array.pop should return Mu, I think.
14:53 araujo joined #perl6
14:53 pmichaud defining Array.pop to return Scalar is almost certainly wrong.
14:54 pmichaud flussence: where did you see that for Array.pop, ooc?
14:54 mux what is Mu?
14:54 flussence S32/Containers:603 (and 680)
14:54 pmichaud "Mu" corresponds to what other languages call "Object"
14:54 flussence and there's a similar one in S32/Str:512
14:54 pmichaud i.e., it's the "most general" type
14:55 mux oh, Isee, forall a. a
14:55 mux :-)
14:55 masak flussence: that's just plain wrong.
14:55 pmichaud the primarily way to think of Scalar at the moment is:    my $x is Scalar
14:55 pmichaud "is Scalar" is the default type associated with the $ sigil
14:55 masak as opposed to what?
14:55 pmichaud just like  "is Array" is the default type associated with the @ sigil
14:56 colomon but can't a $ sigil'd variable hold absolutely anything?
14:56 pmichaud as opposed to:   my $x is TiedHash
14:56 mux funny that perl 6 calls this Mu
14:56 masak ah.
14:56 pmichaud note the difference between  "my $x is Scalar"   and  "my $x of Foo"
14:56 pmichaud "is" identifies the container type.  "of" defines the value constraint
14:57 pmichaud my Int $x   is basically like     my $x is Scalar of Int
14:57 pmichaud my $x is TiedHash of Int   would say that $x is a TiedHash that is constrained to hold Int values
14:57 tylerni7 left #perl6
14:58 masak *nod*
14:58 pmichaud so, at the moment "Scalar" is the name we give to the default scalar container type
14:59 pmichaud and no, it doesn't get used much
14:59 dalek tpfwiki: util++ | http://www.perlfoundation.org/per​l6/index.cgi?perl_6_delta_tablet
15:01 masak it definitely shouldn't be used in S32 siggies.
15:01 flussence S29:680/724 say "S32-setting-library/Scalars.pod", but that file doesn't exist. kinda worries me...
15:01 masak there might have been one at one point, but it got renamed or fractured into other parts.
15:02 pmichaud S32 and S29 were drafted long before we had good clarity on the container/value model.
15:02 pmichaud so I suspect any mention of "Scalar" in those documents was highly speculative
15:02 masak also, neither of S29 or S32 should be taken as absolute truth.
15:02 flussence oh I see, it looks like all the stuff in that section is inside S32/Basics
15:02 masak granus salis applies.
15:03 mberends left #perl6
15:03 masak more than a granus, even.
15:03 wamba joined #perl6
15:03 pmichaud I like spicy specs.
15:04 flussence rakudo: say 1 ~~ Scalar
15:04 p6eval rakudo 388eed: OUTPUT«Could not find sub &Scalar␤  in main program body at line 22:/tmp/GKyQe7RQK0␤»
15:04 flussence well at least I don't have to worry about it in rakudo :)
15:05 dalek tpfwiki: util++ | http://www.perlfoundation.org/per​l6/index.cgi?perl_6_delta_tablet
15:05 mux the only time I've heard of "Mu types" is in the context of recursive types, where Mu is often given to the type-level fixed-point combinator
15:05 mux I really wonder why they chose this name in Perl 6
15:07 mathw there was a reason
15:07 mathw but I can't remember what it was
15:08 flussence everything's an object, but it's shorter to type "Mu" than "Object" every time
15:08 masak it was TheDamian who suggested it, and TimToady liked it.
15:08 mux that's a reason for the existence of "Mu", not a reason for its name
15:08 masak in Japanese, 'Mu' means 'nothingness'.
15:08 mux ah
15:08 pmichaud "Mu" is meant to also indicate a level of undefinedness
15:08 masak it's the punchline of an old koan.
15:08 mux that makes sense, thanks
15:08 pmichaud i.e., it's the most undefined type
15:08 flussence also there's the concept of µ meaning small, and there's almost nothing attached to a Mu object by itself
15:09 pmichaud indeed, "Mu" is a bit of an anagram for "most undefined"
15:09 masak it can be seen as standing for a number of thing, among others 'Most Undefined'.
15:09 mux I should learn more japanese
15:09 masak not anagram; initialism.
15:09 mux masak: I thought this was called an acronym
15:09 masak aye.
15:10 pmichaud right, acronym
15:10 pmichaud or initialism
15:10 pmichaud pay no attention to my ramblings this morning :)
15:10 flussence and it's a nicer name than "UNIVERSAL"
15:11 mux sure is
15:11 * pmichaud hears a sinusoidal hum coming from his desktop tower and thinks the fan may be about to fail
15:11 masak Perl 7 will bring in the best of Perl 5 and Perl 6, and will call it "MUniversal". :P
15:12 mux I would have called it "Top", but that's probably because I like CS-oriented names :-)
15:13 masak mux: are you implying that deriving a class is a downwards act? half of the CS people would disagree :)
15:13 masak after all, Base is at the bottom of things.
15:13 mux masak: in theory, what perl 6 calls "Mu" and other languages call "Object" is the top type
15:13 mux this is not me making things up
15:14 masak I didn't say it was.
15:14 molaf joined #perl6
15:14 masak I'm saying there's no perfect consensus.
15:14 mux simply because any other type is a subtype of it
15:14 mux anyways, I like the reference to japanese
15:14 mathw it's both ways
15:14 pmichaud I'm not certain that Perl 6 has a "top type", though.
15:15 pmichaud Yes, Mu is the base class for nearly everything -- I just don't know how big "nearly" is :)
15:15 tzhs joined #perl6
15:15 masak mux: MJD has a post where he defends 'derived == upwards', but I can't find it right now.
15:15 Util tadzik: ping
15:15 masak pmichaud: we won't know until Parrot lets Rakudo talk to other implementations.
15:16 mberends joined #perl6
15:16 dalek tpfwiki: util++ | http://www.perlfoundation.org/perl​6/index.cgi?perl_6_operator_tablet
15:16 wtw left #perl6
15:17 mux masak: this makes sense; I'm just following the usual CS conventions myself.
15:17 pmurias masak: re best of Perl 5 and Perl 6, Perl 6 is intended the best of Perl 5
15:17 pmurias s/intended/intended to be/
15:18 * mux wonders how many years will pass until he gets to write Perl 6 code for companies
15:18 Util masak, mux: MJD post is http://blog.plover.com/CS/contravariant.html
15:18 pmichaud masak: even Parrot doesn't have a "most base" type  :-(
15:18 MayDaniel joined #perl6
15:19 flussence an object hierarchy with a defined top and bottom won't make sense when you're coding in a zero-G environment anyway.
15:19 masak Util: thank you.
15:19 mux Util: cheers
15:19 mux makes me wonder, does Perl 6 allows covariant/contravariant type annotations?
15:19 masak pmurias: yes. I might not have been entirely serious.
15:20 masak mux: there's nothing to enforce Liskov et al. in Perl 6.
15:20 masak mux: feels like a module or some tooling could, though.
15:20 mux poor Barbara ;-)
15:23 * masak looks forward to getting his hands on an implementation that does PRE and POST on methods
15:23 masak maybe I should get into Niecza development and try to put that in place...
15:23 masak or I could just push Yapsi in that direction.
15:23 masak or Rakudo. so many choices! :)
15:23 mux never been a huge fan of contract programming, I guess I never stumbled upon a good use of it yet
15:23 * pmurias votes for Niecza ;)
15:24 * moritz_ votes against democracy :-)
15:25 plobsing left #perl6
15:25 masak mux: reason I thought about it was that you mentioned covariance/contravariance, and PRE and POST do those.
15:26 mux masak: I don't quite see how pre- and postconditions gains you covariance/contravariance
15:26 p6eval left #perl6
15:26 mux but then again, I'm not very familiar with those
15:27 TimToady left #perl6
15:27 mux or did you mean that you could use pre- and postconditions to enforce covariance/contravariance on methods?
15:27 dalek left #perl6
15:27 masak mux: consider inheritance. a subclass should honour at least all the POSTs of the parent class(es), and may loosen their PREs.
15:28 mux alright, but then it's as I said, you can use such constructs to implement covariance/contravariance, but it does not come for free
15:29 sorear_ left #perl6
15:29 pmurias mux: what do you mean by having convariance and contravariance implemented?
15:30 mux pmurias: being able to say that such method is covariant or contravariant in its return type -- the usual meaning as far as I know
15:30 masak yeah, Perl 6 doesn't by default.
15:30 masak should be addable to Real Perl 6 as a pragma, though.
15:31 masak and implementable in pure Real Perl 6, too.
15:31 mux I'm not blaming Perl 6 for not having it, I'm mostly being curious about Perl 6, I know very little about it yet
15:31 rod joined #perl6
15:32 diakopter left #perl6
15:32 masak mux: you give off very strong Haskell vibes. I like that. :)
15:32 mux heh. :)
15:33 diakopter joined #perl6
15:33 p6eval joined #perl6
15:36 dalek joined #perl6
15:36 sorear joined #perl6
15:36 TimToady joined #perl6
15:37 mtk left #perl6
15:38 masak mux: part of the reason it's not being enforced, I believe, is that the Perl 6 type system is too "powerful", and enforcing co/contravariance in the general case would get one sucked into the Halting Problem.
15:38 masak but I might be wrong, and rambling.
15:38 mtk joined #perl6
15:39 mux masak: if you have pointer to discussions about it, I'd be interested
15:41 masak not really.
15:41 cogno joined #perl6
15:41 mux it seems there is stuff about it in http://perlcabal.org/syn/S06.html
15:41 masak just that things like 'where' clauses tend to destroy the "purity" (from a H-M point of view) of the type system.
15:43 mux masak: what kind of 'where' clauses are we talking about? those I know about don't do that
15:43 masak rakudo: subset Even of Int where { $_ %% 2 }; say 42 ~~ Even
15:43 p6eval rakudo 388eed: OUTPUT«Bool::True␤»
15:44 MayDaniel left #perl6
15:44 jnthn pmichaud: (base for nearly everything) you can have more than one strange loop in the model. :)
15:44 masak rakudo: subset Even of Int where { $_ %% 2 }; subset DivisibleByFour of Int where { $_ %% 4 }; say DivisibleByFour ~~ Even
15:44 p6eval rakudo 388eed: OUTPUT«Bool::True␤»
15:44 mux masak: okay
15:44 masak o.O
15:44 masak jnthn: ^^
15:44 mux that's way over my head
15:45 mux need more introductory perl 6 material
15:45 masak mux: it's all in S12, I believe.
15:45 pmurias mux: that's a bug
15:45 hudnix left #perl6
15:45 jnthn masak: Subset is based on Int. Int numifies to 0. 0 is divisible by four.
15:45 masak jnthn: I meant to do something like a type inclusion test.
15:46 jnthn You did.
15:46 jnthn It just treated the LHS like a value.
15:46 masak yes, but between subtypes.
15:46 hudnix joined #perl6
15:46 jnthn Remember that 4 ~~ Numeric and Int ~~ Numeric are really the same operation.
15:46 gfldex_ is now known as gfldex
15:47 masak ok.
15:47 jnthn Since type objects are just empty instances.
15:47 masak not saying I like it, though.
15:47 jnthn I suspect the subset one maybe should warn but it boils down to whether my Int $a; say $a %% 4 warns.
15:47 jnthn rakudo: my Int $a; say $a %% 4
15:47 p6eval rakudo 388eed: OUTPUT«Bool::True␤»
15:48 jnthn Anyway, computing subset inclusion is the halting problem. :)
15:48 masak what I said.
15:48 jnthn So there's little point in drawing out special case semantics for a :U on the LHS, imho.
15:48 mux you know, type inference in haskell is undecidable, just like the halting problem. it doesn't cause much problems in practice :-)
15:49 jnthn As one couldn't make it do anything that useful anyway.
15:50 masak mux: by analogy, it should be possible to do some type inference in Perl 6 as well. and as far as I understand, jnthn is building towards that. :)
15:50 mux that sounds cool
15:51 masak walk &
15:52 jnthn Yes, it's in with the whole bunch of type goodness I@m building the foundations for.
15:52 mux yay for type goodness :-)
15:53 pmurias jnthn: what sort of type inference do you plan to implement
15:53 pmurias ?
15:55 cogno left #perl6
15:57 justatheory joined #perl6
15:59 jnthn pmurias: Haven't thought about it in great detail yet, tbh. Will probably start out with some really simple cases (like, variable that's only ever assigned once from a literal).
16:01 tzhs left #perl6
16:01 pmurias do you want to that for optimalisation purposes or catching type errors?
16:02 jnthn Both
16:02 jnthn I suspect a lot of the analysis for the two is the same or very similar.
16:08 cogno joined #perl6
16:19 slavik1 left #perl6
16:22 slavik1 joined #perl6
16:27 slavik2 joined #perl6
16:28 risou joined #perl6
16:30 pmurias jnthn: it will be interesting to see how does the usefullness catching stuff that is guaranteed to be incorrect compare with preventing stuff that might fail
16:30 slavik2 left #perl6
16:30 slavik2 joined #perl6
16:32 slavik1 left #perl6
16:32 colomon jnthn: I've got to say, I'm not very comfortable with my Int $a; say $a %% 4 not warning, and completely spooked that my Rat $al; say $a %% 4 is a hard crash instead.
16:32 hanekomu left #perl6
16:32 colomon rakudo: my Rat $a; say $a %% 4
16:32 p6eval rakudo 388eed: OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!numerator␤  in 'infix:</>' at line 4197:CORE.setting␤  in 'infix:<%>' at line 3711:CORE.setting␤  in 'infix:<%%>' at line 501:CORE.setting␤  in main program body at line 22:/tmp/X2FoRkP5vu␤»
16:33 slavik2 left #perl6
16:33 slavik1 joined #perl6
16:34 risou_ joined #perl6
16:34 colomon Speaking for my own programming, I think I'd generally rather have the Int version fail as well.
16:34 jnthn colomon: I agree they should be consistent.
16:34 plobsing joined #perl6
16:34 slavik1 left #perl6
16:34 slavik1 joined #perl6
16:35 risou left #perl6
16:35 cogno left #perl6
16:36 snearch joined #perl6
16:36 colomon I kind of feel like they should be consistent and the consistent behavior should be user-selectable.
16:37 colomon TimToady is right that if you're doing a big hyper operation or something, you don't want one piece of data killing the entire operation.
16:37 jnthn Well, it should warn rather than die.
16:37 colomon But by the same token, declaring a variable and then using its value without initializing it is probably an error in normal circumstances.
16:38 colomon I'm not convinced at a warning is useful at all.
16:39 TimToady I think the only good argument for a warning is that it's what a P5er would expect
16:40 TimToady but we'd probably be better off settling on failure semantics
16:40 snearch left #perl6
16:40 colomon Just as a for instance, I was routinely running 1000+ test cases for masak's p4.  If one warning had crept in there, I probably wouldn't even have noticed it.
16:40 snearch joined #perl6
16:40 dukeleto left #perl6
16:40 slavik1 left #perl6
16:40 slavik1 joined #perl6
16:40 dukeleto joined #perl6
16:42 colomon maybe if you could easily log warnings, or something like that...
16:43 slavik1 left #perl6
16:43 slavik1 joined #perl6
16:46 TimToady well, you can supposedly catch warning exceptions
16:48 * jnthn -> home
16:52 slavik2 joined #perl6
16:52 slavik1 left #perl6
17:01 estrabd_waac is now known as estrabd
17:02 envi left #perl6
17:04 tadzik ~
17:04 tadzik Util: pong
17:06 toebu left #perl6
17:16 * arnsholt likes the TimToady quote in the GNU awk manual
17:16 arnsholt A loaded Uzi indeed ^_^
17:18 tadzik link?
17:18 cogno joined #perl6
17:18 arnsholt http://www.gnu.org/manual/​gawk/gawk.html#Array-Intro
17:35 impious joined #perl6
17:36 pmurias left #perl6
17:36 cogno left #perl6
17:38 dukeleto there is a typo in the quote "tryinng"
17:38 dukeleto otherwise, hilarious :)
17:52 dakkar left #perl6
17:53 dukeleto left #perl6
17:54 impious left #perl6
17:54 Util tadzik: added META.info for Perl6-Math-Quaternion module - https://github.com/Util/Perl6-Mat​h-Quaternion/raw/master/META.info
17:54 dukeleto joined #perl6
17:55 thundergnat joined #perl6
17:57 thundergnat Rakudo: use Test; is ~(42,).sort: { 0 }, "42";
17:57 tadzik Util++
17:57 tadzik thundergnat: "Rakudo".lcfirst
17:58 thundergnat tadzik: oops
17:58 thundergnat rakudo: use Test; is ~(42,).sort: { 0 }, "42";
17:58 p6eval rakudo 388eed: OUTPUT«Too many positional parameters passed; got 3 but expected between 1 and 2␤  in 'Parcel::sort' at line 1401:CORE.setting␤  in main program body at line 22:/tmp/eEFl3q57vQ␤»
17:58 thundergnat Is this a precedence / parsing issue rather than an error?
17:58 thundergnat rakudo: use Test; is ~((42,).sort: { 0 }), "42";
17:58 p6eval rakudo 388eed: OUTPUT«ok 1 - ␤»
17:59 thundergnat That is a fudged test in roast.
17:59 thundergnat https://github.com/perl6/roast/b​lob/master/S32-list/sort.t#L202
18:00 thundergnat Seems like the test itself is faulty.
18:02 thundergnat std: use Test; is ~(42,).sort: { 0 }, "42";
18:02 p6eval std 625303c: OUTPUT«Compiled lib/Test.pm6␤ok 00:01 123m␤»
18:04 thundergnat BTW tadzik: I've added META.info files to my modules in ecosystem as well.
18:04 tadzik thundergnat: on it
18:05 tadzik yay, versions
18:07 tadzik pushed, thundergnat++
18:08 thundergnat tadzik: is there any recommendations anywhere for META.info files, or is it "figure it out from S22."?
18:08 thundergnat I mostly just looked at others and copied them...
18:09 tadzik thundergnat: well, that's until I do and specify it a bit
18:10 thundergnat ah... :-)
18:10 bluescreen joined #perl6
18:11 tadzik you're welcome to write specs too, or just a start
18:11 arnsholt It never ceases to amaze me how Python and Ruby don't see the utility of name declaration
18:12 tadzik you mean declaration with my/our?
18:12 arnsholt Yeah. I hate how I can't do the equivalent of use strict in Python and Ruby
18:12 tadzik everytime I'm tempted to try Ruby/Python there's just too many things missing to me
18:12 tadzik But I may be biased ;)
18:13 arnsholt Hehe
18:14 arnsholt Python is ok, as long as the philosophical differences (one way to do it, rather than more than one) don't drive you nuts
18:14 arnsholt At least python.org has a set of easy-to-use spec and standard lib docs
18:15 arnsholt Ruby is a bit harder to get along with for me, since it's so hard to find authoritative docs that don't drive me nuts =)
18:18 thundergnat I've been messing around with the sort method/sub, trying to get support for arrays of comparators working.
18:18 cogno joined #perl6
18:18 thundergnat I've got something that works and still passes passes roast sort tests ( https://github.com/perl6/roas​t/blob/master/S32-list/sort.t )
18:19 masak thundergnat: when you do '.sort:' like that, the whole rest of the statement becomes arguments to the .sort method.
18:19 thundergnat At least, it passes all the tests that unmodified Rakudo does plus a bunch of test for comparator arrays.
18:19 thundergnat But it's dismally slow. And ugly.
18:19 masak thundergnat: that little subtlety was what made me use the invocant colon (for calling) a *lot* more restrictively.
18:20 masak in other words, the string "42" is sent in to .sort as well.
18:20 thundergnat masak: makes sense, I'm just pointing out that that test is in roast, and fugded because it is failing.
18:20 masak thundergnat: the test is wrong.
18:21 thundergnat nod
18:21 arnsholt masak: I started doing the same, a bit. But I'm still a bit sad you can't use the colon for invoking normal subs as well =)
18:23 * jnthn hem
18:23 masak "hemma" :)
18:23 thundergnat Anyway, if anyone is interested, here is my comparator array trial: https://gist.github.com/784835 sub/method is named msort so as not to collide with built in sort.
18:23 colomon #Phasers in 37m?
18:23 * jnthn extracts more free Swedish edukashun from masak++
18:24 jnthn colomon: Yes, I think so.
18:24 masak arnsholt: hum? without the colon, you already have that semantics for listop subs...
18:24 thundergnat Comment / criticism welcome.
18:24 masak colomon: thanks for reminding me.
18:24 colomon masak: That's a big part of the reason why I ask here.  ;)
18:24 jnthn :)
18:24 * jnthn had actually remembered, for once.
18:25 arnsholt masak: Excellent point =)
18:25 masak colomon: how tactful of you :)
18:25 tadzik > 60% of modules on META.list :)
18:26 masak wow.
18:26 colomon tadzik: \o/
18:26 tadzik well, that's not me actually :)
18:26 tadzik Util++ and thundergnat++ did it today
18:26 * jnthn signs up for YAPC::EU 2011 o/
18:26 masak tadzik: what's a quick way to learn how to write a META.list for one's project?
18:27 tadzik masak: that's META.info. My blag toast is a quick introduction
18:27 colomon Oooo, that reminds me, I may have volunteered to do a Perl talk / workshop at Penguicon this year.
18:28 masak tadzik: ok, I've seen that one.
18:28 tadzik masak: sadly, not much more is written. I promised myselt to write a kinda-spec after all this mess on my Uni
18:29 masak :)
18:29 * masak signs up for YAPC::EU 2011 o/
18:30 dukeleto Riga sounds fun...
18:30 jnthn It is.
18:30 risou_ left #perl6
18:31 tadzik where does one sign up?
18:31 jnthn tadzik: http://yapceurope.lv/
18:31 masak Riga is one of my absolute favourite latvian capitals.
18:31 jnthn Yeah. The others just don't cut it.
18:31 masak literally.
18:32 jnthn I mean, where other Latvian capital has an Asparagus Boulevard?
18:32 masak Asparagus Boulevard \o/
18:32 masak and quite nice steamed buns. and a way underappreciated Indian place.
18:32 jnthn Oh, yes. That Indian place rocked.
18:32 jnthn We can go again. \o/
18:33 masak \o/
18:33 masak twice!
18:33 jnthn And to the pay-by-weight nommery with the many nice things. :)
18:33 masak yes, those were the ones with the buns.
18:33 jnthn Ah, yes, that's right. :)
18:33 jnthn It had other things too though :)
18:33 masak (Rigan nommeries)++
18:34 masak << This commercial was brought to you by Moscow.pm >>
18:34 jnthn :D
18:35 * jnthn nips to the shop before #phasers
18:38 cjk101010 joined #perl6
18:38 takadonet /join #phashers
18:38 takadonet ...
18:38 tadzik Password:
18:38 cogno left #perl6
18:38 thundergnat left #perl6
18:40 broquaint joined #perl6
18:40 Weathros is now known as Tedd1
18:43 kaare_ left #perl6
18:44 * tadzik signed in for YAPC::EU too
18:44 kaare_ joined #perl6
18:49 jnthn tadzik: Yay! :)
18:51 bluescreen left #perl6
18:51 tadzik (and then I saw the prize :))
18:54 jnthn tadzik: Submit a talk, get it accepted and you get in free. :)
18:55 molaf left #perl6
18:56 tadzik heh
18:57 tadzik I think I'll just sit and listen in the first year :)
19:03 cdarroch joined #perl6
19:03 cdarroch left #perl6
19:03 cdarroch joined #perl6
19:04 bluescreen joined #perl6
19:07 tri1 joined #perl6
19:11 cogno joined #perl6
19:17 dukeleto left #perl6
19:17 dukeleto joined #perl6
19:18 hercynium joined #perl6
19:20 nadim_ joined #perl6
19:22 cogno left #perl6
19:24 Zach_Mazolt joined #perl6
19:26 tri1 left #perl6
19:27 masak tadzik: you should do a lightning talk. if you don't want to do one alone, I'll do one with you. :)
19:28 tadzik how is lightning talk different from a normal one, besides being lightspeed and not buying me a ticket? :)
19:28 tadzik masak: that'd be an awesome experience :)
19:29 masak tadzik: it doesn't take as much preparation, and thus the barrier of entry is smaller.
19:29 tadzik fair enough. Works for me :)
19:29 masak tadzik: first YAPC I went to, viklund and I unveiled November in a lightning talk :)
19:30 REPLeffect left #perl6
19:30 masak I'm still getting warm fuzzies from the reception it got :)
19:31 tadzik yet the only thing coming to my mind (for today) is the modules stuff
19:32 tadzik although many things will probably happen til august
19:33 masak ...you could become a Yapsi contributor...
19:33 masak ...or I could hook you on Druid...
19:33 tadzik that sounds fun :)
19:33 tri2 joined #perl6
19:33 tadzik (yapsi)
19:33 masak ...or show you the awesomeness of GGE...
19:33 tri2 left #perl6
19:33 masak ...or convert you to pls...
19:34 tadzik hmm
19:34 tadzik maybe after neutro/metainfo becomes neutro/master, it's time for neutro/pls to come
19:34 Zach_Mazolt Which GUI toolkit binding will be used in perl six?
19:34 tadzik but! exams first
19:34 masak neutro is proto resurrected. pls is what proto would've been if I'd known better at the time.
19:35 masak Zach_Mazolt: any toolkit that someone writes bindings for.
19:35 tadzik Zach_Mazolt: whatever gets implemented. I don't think there'll be any Main Toolkit
19:35 masak Zach_Mazolt: pmichaud says that whenever someone asks "what's the official..." the answer is "no".
19:36 masak except for "...spec" and "...spectest suite".
19:37 Zach_Mazolt i mean no official but any. i thought there was some work someone did so i can participate
19:37 dalek tpfwiki: util++ | http://www.perlfoundation.org/per​l6/index.cgi?bruce_gray_s_notepad
19:38 coldhead` is now known as coldhead
19:39 slavik2 left #perl6
19:40 slavik1 joined #perl6
19:42 masak Zach_Mazolt: people come in sometimes asking the question.
19:42 masak Zach_Mazolt: I guess that'll keep happening until someone gets motivated enough to start :)
19:44 Zach_Mazolt masak: assume I will start on one, which one you see more appropriate? qt, tk, wx?
19:45 masak answering this might require some research.
19:45 masak anything with C bindings is at least possible through zavolaj.
19:45 tadzik Zach_Mazolt: you have to be aware of zavolaj aka NativeCall's current limitations
19:45 snearch left #perl6
19:45 slavik2 joined #perl6
19:46 slavik1 left #perl6
19:46 Zach_Mazolt I guess I will start by doing the research then..
19:47 tadzik ++Zach_Mazolt
19:47 masak looking forward to seeing some cool proof-of-concept. :)
19:47 masak didn't Su-Shee++ do something GUI-y with Perl 6 a year or so ago?
19:48 Su-Shee no, I've tried out Tene's enlightenment lib stuff and discussed perl 6 and gui here and there
19:49 Su-Shee I think the last common denominator was to go with dammit how was it called..
19:49 Su-Shee GIR!
19:49 * masak would like a GUI toolkit called "dammit"
19:49 tylercurtis joined #perl6
19:49 masak :)
19:50 masak and then Teratogen would use it to put up a dialog box asking "When is Perl 6 going to be released?" :P
19:50 Su-Shee well the GIR thing from all the gtk libs makes it exceptionally easy as far as I've read about.. they managed to bind entire gnome basically against js that way ("seed" it's called)
19:50 jnthn :D
19:51 jnthn Zavolaj's main limitation at the moment for GUI stuff, afaik, is lack of callbacks.
19:52 Su-Shee I think you might not need to bridge zavolaj and gtk but zavolaj and GIR
19:52 rbuels joined #perl6
19:52 Zach_Mazolt now I am feeling tempted to do some work.. :)
19:52 * masak cheers Zach_Mazolt on
19:53 Su-Shee "gnome/gtk libs and stuff" export symbols and stuff via GIR, GIR gets "handled somehow" in the target lang.
19:53 REPLeffect joined #perl6
19:53 Su-Shee and gir is something xml-ish afaik. so it'll probably be a gir grammar..
19:55 Su-Shee so if this works, you can take either gtk (3) and make that a p6 widget binding or write you own because you decide to bind clutter instead. or both.
19:58 Zach_Mazolt Su-Shee: thanks for the insight.
20:00 Su-Shee well that was just gtk. :) there's also qt available to write bindings for. ;)
20:00 Su-Shee or really do something native.
20:00 flussence the problem I see (with GTK stuff) is that interaction's mostly callback-based... I have no idea how that works via NativeCall.
20:00 masak it doesn't, last I heard.
20:01 tadzik when "last heard" is 9 minutes ago :)
20:01 * flussence needs to read the whole log next time :)
20:02 slavik1 joined #perl6
20:02 flussence getting the GladeXML stuff to run should be pretty easy though. That only needs about half a dozen functions to display a window, iirc
20:02 slavik2 left #perl6
20:03 Su-Shee Zach_Mazolt: that's deprecated. go for what's it called.. gtkbuilder I think..
20:03 flussence oh right, yeah
20:03 masak tadzik: ah. oh. ...I didn't hear that one. :)
20:03 Zach_Mazolt :)
20:03 flussence (I haven't done any GTK in a year or two)
20:04 Zach_Mazolt my contact is mazt.zach at gmail.com . I may not be here so often but I will be back if something worked. feel free to contact me anytime. you know what i will be working on :)
20:04 Su-Shee go ask #gtk-perl (gtkperl?), there's emanuelle bassi who is a core gtk devel anyways _and_ does a couple of perl modules. he should really know how to go about the best way
20:04 flussence good luck with it, anyway
20:04 Su-Shee (irc.perl.org)
20:04 Zach_Mazolt Su-Shee: heading there in a moment
20:05 slavik1 left #perl6
20:05 tadzik Zach_Mazolt: how about opening a public git repo on github so we can watch the process?
20:05 slavik1 joined #perl6
20:05 Zach_Mazolt tadzik: sure.
20:05 Su-Shee ugh, emmanuele ;)
20:06 Su-Shee Zach_Mazolt: have a little patience, they idle for hours sometimes ;)
20:06 Su-Shee Zach_Mazolt: and here's basic reading: http://live.gnome.org/GObjectIntrospection
20:07 Su-Shee Zach_Mazolt: and here's how it's actually done (js) http://library.gnome.org/devel/seed/unstable/
20:08 Zach_Mazolt Su-Shee: Sounds fun.. I hope I will see some active community in #introspection
20:09 Su-Shee browse through seed. it's _amazing_ what they've managed in like.. short under 2 years I think. it's basically everything from gnome to network to dbus wrapped in js
20:10 tadzik jnthn: does Configure.pl build a proper Makefile for you in nqp-rx/nom?
20:10 tadzik jnthn: I think #370 needs a proper tab
20:10 slavik1 left #perl6
20:10 slavik1 joined #perl6
20:10 jnthn tadzik: oh, dar
20:10 jnthn n
20:11 masak dar\n :)
20:11 jnthn tadzik: My make program doesn't care for such differences.
20:11 dukeleto are there any perl6/nqp syntax highlighters?
20:11 jnthn Yes, yes, I'm just a big pile of whitespace fail. :P
20:11 masak jnthn: the black space of the family...
20:12 moritz_ the blank space of the family :-)
20:12 jnthn tadzik: Feel free to commit a fix if you have a moment.
20:12 tadzik dukeleto: si
20:12 tadzik jnthn: Makefile is generated by Configure.pl somehow, I don't know where to look. Plus I have no commit bit anyway
20:12 jnthn build/Makefile.in
20:12 jnthn Oh
20:13 jnthn hugme: add tadzik to nqp-rx
20:13 hugme jnthn: You need to register with freenode first
20:13 mtk left #perl6
20:13 dukeleto tadzik: where do they live?
20:13 moritz_ hugme: add tadzik to nqp-rx
20:13 hugme moritz_: ERROR: Can't add tadzik to nqp-rx:  HTTP/1.1 401 Unauthorized
20:13 jnthn hugme: add tadzik to nqp-rx
20:13 moritz_ fuck
20:13 hugme jnthn: ERROR: Can't add tadzik to nqp-rx:  HTTP/1.1 401 Unauthorized
20:13 jnthn darn
20:13 tadzik dukeleto: good question, I don't remember
20:13 tadzik github somewhere. Perl6.org should have some links
20:13 jnthn OK, I fix itlater.
20:14 moritz_ jnthn: it's because perl6 is an organization account now
20:14 jnthn (not hugme, I mean. the whitespace)
20:14 dukeleto there is a new organization API on github
20:14 tadzik dukeleto: http://perl6.org/whatever/ there
20:14 moritz_ added tadzik via web interface
20:14 tadzik thank you moritz_
20:14 Zach_Mazolt nice to meet you gents. see you soon.
20:14 tadzik but that's 6model
20:15 jnthn tadzik: No, I added you there already :)
20:15 masak Zach_Mazolt: ladies and gents. :)
20:15 jnthn Then realized...wrong repo :)
20:16 * diakopter missed #phasers
20:16 Zach_Mazolt masak: don't recall seeing ladies here. but I wish them a nice day too :)
20:17 masak Su-Shee is one. :)
20:17 dalek nqp-rx/nom: 88e53e7 | tadzik++ | build/Makefile.in:
20:17 dalek nqp-rx/nom: Fix a whitespace-o in Makefile.in
20:17 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/88e53e7efe
20:20 Zach_Mazolt o so I forgot to thank the one who helped the most. thanks Su-Shee :)
20:22 tri1 joined #perl6
20:22 tri1 left #perl6
20:22 mtk joined #perl6
20:23 slavik1 left #perl6
20:23 slavik1 joined #perl6
20:23 tadzik jnthn: running ./nqp gives me PARROT VM: Could not initialize new interpreterPackFile_Header_validate: This Parrot cannot read bytecode files with version 10.0.
20:23 tadzik fresh checkout
20:26 jnthn tadzik: Did you use --gen-parrot?
20:26 moritz_ tadzik: seems like there's an old installation somewhere
20:26 tadzik jnthn: in rakudo, yes
20:26 wamba left #perl6
20:26 tadzik moritz_: yep. But my ~/src/rakudo/parrot_install/bin is higher in $PATH
20:26 [Coke] does no one listen to me? ;)
20:27 moritz_ [Coke]: of course not. What did you say?
20:27 tadzik what? :)
20:27 [Coke] tadzik, jnthn: please either 1) update to a parrot that fixes that bug (post 3.0.0, sadly), or remove your parrot install dir and try again.
20:27 jnthn fwiw, it works here :)
20:27 jnthn Oh
20:27 jnthn PARROT_REVISION may be awfully out of date in nqp-rx/nom
20:28 Zach_Mazolt left #perl6
20:28 moritz_ it likely is
20:28 [Coke] until just now, if you had a preinstalled parrot and installed a new one over it, the libparrot symlink didn't update on re-install.
20:28 dip left #perl6
20:28 dip joined #perl6
20:29 fhelmberger left #perl6
20:30 slavik1 left #perl6
20:31 jferrero joined #perl6
20:33 dip left #perl6
20:33 dip joined #perl6
20:34 dip left #perl6
20:34 dipthegeezer joined #perl6
20:40 slavik1 joined #perl6
20:45 mtk left #perl6
20:46 mtk joined #perl6
20:46 simon__ joined #perl6
20:47 simon__ hey, can someone explain to me why there is a colon required for higher order methods?
20:47 masonkramer joined #perl6
20:47 colomon simon__: example?
20:48 simon__ like (1,2,3).map: *+1
20:48 simon__ instead of just (1,2,3).map *+1
20:48 jnthn simon__: You could call that with (1,2,3).map(*+1) too
20:48 masak simon__: for methods, you must use either parens or colon.
20:48 jnthn It's not to do with higher orderness. It's just to do with method argument parsing.
20:49 simon__ oh so it's simply a shortcut for when the only argument is a block?
20:49 jnthn No, it applies generally
20:49 colomon It's only a shortcut, but the argument doesn't have to be a block.
20:49 tylercurtis rakudo: $*OUT.say: 1, 2, 3
20:49 jnthn rakudo: say ("omg", "bbq").join: "wtf"
20:49 colomon like @array.push: 10
20:49 simon__ ah, i see, thanks
20:49 p6eval rakudo 388eed: OUTPUT«123␤»
20:49 p6eval rakudo 388eed: OUTPUT«omgwtfbbq␤»
20:49 masak '(1,2,3).map *+1' doesn't work because a term may never follow upon another term in Perl 6.
20:50 cjk101010 left #perl6
20:50 masak std: 1 2
20:50 p6eval std 625303c: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/an9jrDKioO line 1:␤------> [32m1 [33m⏏[31m2[0m␤    expecting any of:␤ bracketed infix␤        infix or meta-infix␤    statement modifier loop␤Parse failed␤FAILED 00:01 119m␤»
20:50 masak std: (1,2,3).map *+1
20:50 p6eval std 625303c: OUTPUT«ok 00:01 121m␤»
20:50 colomon doh!
20:50 masak o.O
20:50 tadzik ha-ha
20:50 jnthn lol
20:50 masak TimToady!
20:50 masak oh wait.
20:50 jnthn masak: (1,2,3).map * +1
20:50 masak aye. :)
20:50 masak not what I wanted, but it does parse :)
20:50 jnthn rakudo: (1,2,3).map * +1
20:50 masak TimToady: never mind. :)
20:50 tadzik I don't get it
20:50 p6eval rakudo 388eed: OUTPUT«No candidates found to invoke for method 'map' on object of type 'Parcel'; available candidates have signatures:␤:(Mu : &block;; *%_)␤:(Mu : %block;; *%_)␤␤  in main program body at line 22:/tmp/oUzgYa5ESn␤»
20:50 jnthn :)
20:51 jnthn But it's a runtime error. :)
20:51 tadzik map with no arguments?
20:51 masak right.
20:51 jnthn yeah
20:51 tadzik so "copy this array for me"?
20:51 colomon oh, so it's like (1, 2, 3).map() * +1
20:51 colomon ?
20:51 tadzik si
20:52 colomon not even "copy this array", the answer will be 3, right?
20:52 colomon rakudo: say  (1, 2, 3).map() * +1
20:52 p6eval rakudo 388eed: OUTPUT«No candidates found to invoke for method 'map' on object of type 'Parcel'; available candidates have signatures:␤:(Mu : &block;; *%_)␤:(Mu : %block;; *%_)␤␤  in main program body at line 22:/tmp/R7SWeV6occ␤»
20:52 jnthn colomon: map requires an argument.
20:52 colomon rakudo: say  (1, 2, 3).map(+*) * +1
20:52 p6eval rakudo 388eed: OUTPUT«3␤»
20:52 colomon I think I was imagining it would be ...
20:52 tadzik is map with no args a LHF?
20:53 colomon rakudo: say  (1, 2, 3).map({}) * +1
20:53 jnthn tadzik: I think it should be an error.
20:53 p6eval rakudo 388eed: OUTPUT«Can't call map() with a Hash argument, Callable required␤You probably wrote a Hash composer accidentally - try to␤disambiguate it with a ; directly after the opening brace␤  in 'Any::map' at line 1483:CORE.setting␤  in main program body at line 22:/tmp/lodE0OmOeu␤»
20:53 colomon rakudo: say  (1, 2, 3).map({;}) * +1
20:53 p6eval rakudo 388eed: OUTPUT«3␤»
20:53 tadzik jnthn: so why should (1,2,3).map * +1 work?
20:53 jnthn tadzik: It shouldn't.
20:53 tadzik ah, it should just parse?
20:53 jnthn tadzik: std says that it parses. Rakudo agrees.
20:53 tylercurtis tadzik: it is syntactically valid, though.
20:53 tadzik I see
20:53 jnthn tadzik: But std doesn't know about whether it'll work at runtime. :)
20:54 tadzik std can run code too :)
20:54 tadzik std: say "ok 00:01 {150.rant.Int}m"
20:54 p6eval std 625303c: OUTPUT«ok 00:01 119m␤»
20:54 tadzik whoops
20:54 jnthn :P
20:54 mtk left #perl6
20:55 tadzik (maybe no one will notice)
20:55 jnthn .rant should be, like, an alias for .uc.say
20:55 y3llow_ joined #perl6
20:55 y3llow left #perl6
20:55 y3llow_ is now known as y3llow
20:56 rod rakudo: say "ok 00:01 {150.rant.Int}m"
20:56 p6eval rakudo 388eed: OUTPUT«Method 'rant' not found for invocant of class 'Int'␤  in main program body at line 22:/tmp/NhwvNKIwSu␤»
20:58 rod std: say relog
20:58 p6eval std 625303c: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared routine:␤ 'relog' used at line 1␤Check failed␤FAILED 00:01 118m␤»
20:59 tadzik std: 150.rant
20:59 p6eval std 625303c: OUTPUT«ok 00:01 118m␤»
20:59 tadzik hrm, *
21:00 rod std: say rebot
21:00 p6eval std 625303c: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared routine:␤ 'rebot' used at line 1␤Check failed␤FAILED 00:01 118m␤»
21:00 rod std: say block "24"
21:00 p6eval std 625303c: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared routine:␤ 'block' used at line 1␤Check failed␤FAILED 00:01 119m␤»
21:02 rod std: .map({:})
21:02 p6eval std 625303c: OUTPUT«[31m===[0mSORRY![31m===[0m␤Preceding context expects a term, but found infix : instead at /tmp/nS1pvGvhOG line 1:␤------> [32m.map({[33m⏏[31m:})[0m␤Parse failed␤FAILED 00:01 120m␤»
21:03 rod std: .map({1-4})
21:03 p6eval std 625303c: OUTPUT«ok 00:01 120m␤»
21:03 rod std: .map({1-9})
21:03 p6eval std 625303c: OUTPUT«ok 00:01 120m␤»
21:03 rod std: .map({^})
21:04 p6eval std 625303c: OUTPUT«[31m===[0mSORRY![31m===[0m␤Prefix requires an argument at /tmp/j59vhI5Xwz line 1:␤------> [32m.map({^[33m⏏[31m})[0m␤Parse failed␤FAILED 00:01 119m␤»
21:04 plobsing left #perl6
21:05 hanekomu joined #perl6
21:06 V15170R joined #perl6
21:06 V15170R hello
21:07 tadzik hello
21:07 masak hello, visitor.
21:07 V15170R i was looking at some perl6 code and i saw things like ":=" and "map:" and i wonder.... what's the colon for?
21:07 masak different things.
21:07 PerlJam V15170R: depends on the context.
21:07 tadzik it depends
21:08 tadzik := is a binging rather than an assignment
21:08 PerlJam V15170R: in ":="  it's part of the binding operator
21:08 V15170R like some sort of "symbolic link"?
21:08 PerlJam tadzik: heh, are you saying that microsoft is influencing Perl design with the binging op?  :)
21:08 PerlJam V15170R: something like that.
21:08 tadzik rakudo: my $a = 5; my $b := $a; $a += 2; say $b
21:08 p6eval rakudo 388eed: OUTPUT«7␤»
21:08 tadzik PerlJam: ah :)
21:09 V15170R and in "map" or "reduce", whats the effect?
21:09 tadzik that saves you typing the parens
21:09 tadzik my @a; @a.push: 5 is the same as @a.push(5)
21:09 PerlJam V15170R: That's just the invocant designator.  The stuff before the : is the invocant, the stuff after is an arg
21:09 V15170R perl6: my $a = 5; my $b := a; $b = 9; say $a;
21:09 p6eval niecza v1-149-g56c80b0: OUTPUT«Unhandled exception: Unable to resolve method keys in class Array␤  at /home/p6eval/niecza/boot/lib/SAFE.setting line 922 (SAFE keys @ 2)␤  at /home/p6eval/niecza/src/Metamodel.pm6 line 192 (Metamodel Namespace.list_stash @ 7)␤  at
21:09 p6eval ../home/p6eval/niecza/src/Metamodel.pm6 line 603 (Me…
21:09 p6eval ..rakudo 388eed: OUTPUT«Could not find sub &a␤  in main program body at line 22:/tmp/UZDVwpO3eK␤»
21:09 p6eval ..pugs: OUTPUT«*** No such subroutine: "&a"␤    at /tmp/pXRtOXyLVO line 1, column 12-22␤»
21:10 tadzik wooooo
21:10 V15170R perl6: my $a = 5; my $b := $a; $b = 9; say $a;
21:10 p6eval pugs, rakudo 388eed: OUTPUT«9␤»
21:10 p6eval ..niecza v1-149-g56c80b0: OUTPUT«Unhandled exception: Unable to resolve method keys in class Array␤  at /home/p6eval/niecza/boot/lib/SAFE.setting line 922 (SAFE keys @ 2)␤  at /home/p6eval/niecza/src/Metamodel.pm6 line 192 (Metamodel Namespace.list_stash @ 7)␤  at
21:10 p6eval ../home/p6eval/niecza/src/Metamodel.pm6 line 603 (Me…
21:10 tadzik forgive niecza, it's still broken on the evalserver
21:11 PerlJam V15170R: actually binding is more like a hard link than a symbolic one.  You could think of it as an aliasing operator.  It gives one thing two names.
21:12 PerlJam V15170R: Also, you might want to use rakudo: rather than perl6:  to execute code here   :)
21:13 V15170R oh thanks... ok a hard link.... isn't that, like, dangerous? can you bind to another program's variable? or a variable in another package/namespace?
21:15 masak sure, but the normal scoping restrictions apply.
21:27 dalek tpfwiki: util++ | http://www.perlfoundation.org/per​l6/index.cgi?bruce_gray_s_notepad
21:28 plobsing joined #perl6
21:36 kensanata left #perl6
21:39 tylercurtis V15170R: Binding to a variable in another package/namespace is only dangerous if you then modify it, in which case it's exactly as dangerous as directly modifying it.
21:39 V15170R can you do a "read only" bind?
21:41 V15170R rakudo: my @a=<a b c>; sub test { return 9 }; @a[1] := &test; @a.say;
21:42 p6eval rakudo 388eed: OUTPUT«atestc␤»
21:43 alester joined #perl6
21:44 colomon rakudo: my @a=<a b c>; sub test { return 9 }; @a[1] := &test; @a.say; @a[1]().say
21:45 p6eval rakudo 388eed: OUTPUT«atestc␤9␤»
21:45 tylercurtis infix<::=> is a readonly bind, although I'm not sure exactly how it's supposed to work in the case of $foo ::= $bar where $bar is not readonly.
21:45 masak rakudo: my $a := 42; say $a; $a = 5; say $a
21:45 p6eval rakudo 388eed: OUTPUT«42␤Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 22:/tmp/MGCApxaqVB␤»
21:45 masak V15170R: that bind could be considered "read-only".
21:46 masak V15170R: since it's directly to a value, not to another variable.
21:49 tylercurtis V15170R: if you simply want to create a readonly variable, the "is readonly" trait on the variable declaration works.
21:49 tylercurtis rakudo: my $foo is readonly; my $bar := $foo; $bar++;
21:49 p6eval rakudo 388eed: OUTPUT«Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 7386:CORE.setting␤»
21:50 klunky joined #perl6
21:50 colomon Not to speak for V15170R, but it seems to me the interesting question would be about how to make a readonly binding to a readwrite variable.
21:50 V15170R yep... that is, exactly
21:51 masak colomon: pass it to a subroutine? :)
21:51 colomon something like my $bar = 42; my $foo is readonly := $bar; $bar++; $foo++; # first works, second is an error
21:51 masak rakudo: my $bar = 42; my $foo is readonly := $bar; $bar++; $foo++
21:51 p6eval rakudo 388eed:  ( no output )
21:51 colomon masak: would signature binding be endough?
21:51 colomon rakudo: my $bar = 42; my $foo is readonly := $bar; say  $bar++; say $foo++
21:51 p6eval rakudo 388eed: OUTPUT«42␤43␤»
21:51 masak colomon: hm, I've never done that manually...
21:52 V15170R rakudo: my $a = 10; my $b ::= $a; say $b; $a = 20; say $b;
21:52 p6eval rakudo 388eed: OUTPUT«10␤20␤»
21:52 colomon V15170R: I suspect what masak and I just did is the right way to do it, but the readonly check there is not yet implemented in Rakudo.
21:52 jnthn rakudo: my $a = 10; my $b ::= $a; say $b; $b = 20; say $b
21:52 p6eval rakudo 388eed: OUTPUT«10␤Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 22:/tmp/Fp38MVlKG4␤»
21:53 jnthn There, $a is rw but $b is readonly
21:53 colomon what is ::=   ?
21:53 jnthn rakudo: my $a = 10; my $b := $a; say $b; $b = 20; say $b
21:53 p6eval rakudo 388eed: OUTPUT«10␤20␤»
21:53 jnthn There it's OK
21:53 cjk101010 joined #perl6
21:53 jnthn ::= creates a readonly binding
21:53 jnthn iirc
21:53 colomon jnthn++
21:53 colomon well, it seems to work that way, anyway.  ;)
21:54 jnthn I think the real point is that if the compiler sees ::= it can make a bunch more assumptions.
21:54 jnthn Or at least, a point. :)
22:06 slavik1 left #perl6
22:06 slavik1 joined #perl6
22:07 sorear good * #perl6
22:08 jnthn o/ sorear
22:09 colomon \o
22:11 simon__ do metaoperators always apply or only for a predefined set of operators?
22:12 jnthn simon__: It's down to the meta-operator.
22:12 simon__ for instance, if infix <= weren't defined, would $a <= $b be equivalent to $a = $a < $b?
22:13 jnthn simon__: Some of them look at various traits of the op to decide whether the meta-op applies to it.
22:13 simon__ and is there a way to use them when they are overwritten by an infix function?
22:15 jnthn You can use the bracketed infix syntax, but that doesn't get around the constraints.
22:15 jnthn e.g. R[+] is the same as R+
22:15 simon__ k thanks
22:15 jnthn To understand the trait requirements better see in STD.pm, e.g. around line 3329/3330 there's an example
22:16 jnthn Meta-ops generally boil down to higher order function calls, fwiw.
22:24 simon__ p6eval: my $a = 1; my $b = 2; $a ,= $b;
22:25 simon__ what's happening here? it says recursion depth exceeded
22:25 jnthn rakudo: my $a = 1; my $b = 2; $a = $a, $b; say "alive"
22:25 p6eval rakudo 388eed: OUTPUT«alive␤»
22:25 jnthn rakudo: my $a = 1; my $b = 2; $a ,= $b; say "alive"
22:25 p6eval rakudo 388eed: OUTPUT«alive␤»
22:26 jnthn simon__: Those two should be equivalent...
22:26 * jnthn wonders what they produce
22:26 jnthn Oh wait
22:26 jnthn I don't think they quite are...
22:26 jnthn rakudo: my $a = 1; my $b = 2; $a = ($a, $b); say "alive"
22:26 p6eval rakudo 388eed: OUTPUT«alive␤»
22:27 jnthn That is same as $a ,= $b
22:27 jnthn rakudo: my $a = 1; my $b = 2; $a = ($a, $b); say $a.perl
22:27 p6eval rakudo 388eed: OUTPUT«maximum recursion depth exceeded␤  in 'Block::count' at line 6077:CORE.setting␤  in 'Block::count' at line 6077:CORE.setting␤  in 'Any::join' at line 1␤  in 'List::perl' at line 2792:CORE.setting␤  in <anon> at line 2792:CORE.setting␤  in 'Any::join' at line 1␤  in
22:27 p6eval ..'List::perl' at …
22:27 jnthn rakudo: my $a = 1; my $b = 2; $a ,= $b; say $a.perl
22:27 p6eval rakudo 388eed: OUTPUT«maximum recursion depth exceeded␤  in 'Block::count' at line 6077:CORE.setting␤  in 'Block::count' at line 6077:CORE.setting␤  in 'Any::join' at line 1␤  in 'List::perl' at line 2792:CORE.setting␤  in <anon> at line 2792:CORE.setting␤  in 'Any::join' at line 1␤  in
22:27 p6eval ..'List::perl' at …
22:27 jnthn Bug.
22:28 masak a known one, no?
22:28 jnthn masak: I dunno, you're the human bug database. :P
22:28 cjk101010 left #perl6
22:28 masak rakudo: my $a = 1; my $b = 2; $a ,= $b; say 'alive!'
22:28 p6eval rakudo 388eed: OUTPUT«alive!␤»
22:28 masak it's a bug in .perl -- how boring.
22:29 * masak submits, Justin Case
22:29 jnthn rakudo: my $a = 1; my $b = 2; $a ,= $b; $a.say
22:29 p6eval rakudo 388eed:  ( no output )
22:29 jnthn That looks...rather dubious too
22:29 masak rakudo: my $a = 1; $a ,= 2; say $a.perl
22:29 jnthn rakudo: my $a = 1; my $b = 2; $a ,= $b; say ~$a
22:29 p6eval rakudo 388eed: OUTPUT«maximum recursion depth exceeded␤  in 'Block::count' at line 6077:CORE.setting␤  in 'Block::count' at line 6077:CORE.setting␤  in 'Any::join' at line 1␤  in 'List::perl' at line 2792:CORE.setting␤  in <anon> at line 2792:CORE.setting␤  in 'Any::join' at line 1␤  in
22:29 p6eval ..'List::perl' at …
22:29 p6eval rakudo 388eed: OUTPUT«maximum recursion depth exceeded␤  in 'List::at_pos' at line 2872:CORE.setting␤  in 'List::at_pos' at line 2872:CORE.setting␤  in 'Any::postcircumfix:<[ ]>' at line 1761:CORE.setting␤  in 'Any::join' at line 1464:CORE.setting␤  in 'Any::join' at line 1469:CORE.setting␤  in
22:29 p6eval ..'List::S…
22:29 jnthn It's more than just .perl it seems
22:30 masak aye.
22:30 masak jnthn++
22:30 * jnthn suspected so
22:30 masak let's call it a bug in ,=
22:30 jnthn :(
22:30 jnthn wait
22:30 * masak waits
22:30 jnthn rakudo: my $a = 1; my $b = 2; $a = ($a, $b); say ~$a
22:30 p6eval rakudo 388eed: OUTPUT«maximum recursion depth exceeded␤  in 'List::at_pos' at line 2872:CORE.setting␤  in 'List::at_pos' at line 2872:CORE.setting␤  in 'Any::postcircumfix:<[ ]>' at line 1761:CORE.setting␤  in 'Any::join' at line 1464:CORE.setting␤  in 'Any::join' at line 1469:CORE.setting␤  in
22:30 p6eval ..'List::S…
22:30 jnthn Darn.
22:30 jnthn It's a bug in parcel construction and assignment when the parcel contains the assignee it seems... :/
22:30 jnthn Or something.
22:31 jnthn Well, maybe.
22:31 jnthn I note that stack trace has join in it, and the .perl one did too.
22:31 jnthn rakudo: my $a = 1; my $b = 2; $a = ($a, $b); say $a.WHAT
22:31 p6eval rakudo 388eed: OUTPUT«Seq()␤»
22:31 jnthn rakudo: my $a = 1; my $b = 2; $a = ($a, $b); say $a[0]
22:32 p6eval rakudo 388eed:  ( no output )
22:32 jnthn rakudo: my $a = 1; my $b = 2; $a = ($a, $b); say $a[1]
22:32 p6eval rakudo 388eed: OUTPUT«2␤»
22:32 jnthn I wonder if something that should decontainerize is failing to do so.
22:33 jnthn Though if so, it's hard to say what. Since l-value parcels surely shouldn't decontainerize on construction, or we break list assignment forms like ($a, $b) = 1,2
22:33 * jnthn 's brain asplodes
22:33 jnthn Well, file it. :)
22:34 kaare_ left #perl6
22:35 masak the bug's in the bag.
22:36 jnthn masak++
22:36 [particle]1 joined #perl6
22:37 MayDaniel joined #perl6
22:38 [particle] left #perl6
22:44 V15170R damn, perl6 is so cool.... we use a lot the Mod 11 Check Digit algorithm in my country... now here is on one line!!!!!
22:44 sorear If that kind of stuff interests you you should check out J
22:44 V15170R rakudo: my $rut = "13294087"; my $checksum = (0 .. 9,'K', 0)[ 11 - ( [+] $rut.split('').reverse <<*>> (2..7) ) % 11 ]; say $rut~'-'~$checksum;
22:44 p6eval rakudo 388eed: OUTPUT«13294087-8␤»
22:48 sorear jnthn: in ideal TimToadian Perl 6, that line doesn't crash, because = calls .item and Parcel.item decontainerizes while converting to Seq
22:48 jnthn sorear: Oh, *that's* where it should decontainerize.
22:48 jnthn sorear: Thanks.
22:49 jnthn sorear: It's doing the Seq conversion, just not the decontainerizing.
22:49 jnthn I suspect I can fix that.
22:49 sorear OTOH, .perl really ought to do cycle detection
22:58 vmspb left #perl6
22:58 Vlavv left #perl6
22:58 colomon sorear: you think?  That seems like a lot of conceptual overhead to add to each .perl method...
23:03 helv12 left #perl6
23:07 sftp left #perl6
23:08 MayDaniel left #perl6
23:09 Vlavv joined #perl6
23:10 sftp joined #perl6
23:16 cafesofie joined #perl6
23:16 sorear conceptually, .perl is already chained to the standard parser, since it's defined in terms of parsable Perl 6
23:16 plobsing left #perl6
23:17 helv12 joined #perl6
23:17 simon__ left #perl6
23:22 V15170R left #perl6
23:24 sftp left #perl6
23:28 pmurias joined #perl6
23:31 bluescreen left #perl6
23:31 hanekomu left #perl6
23:32 pmurias sorear: .perl definitly should handle cycles
23:32 pmurias otherwise we will need a Data::Dumper
23:32 kjeldahl left #perl6
23:33 masak +1
23:35 colomon okay, here's an example .perl:
23:35 colomon multi method perl() '[' ~ self.map({ $^a.perl }).join(', ') ~ ']'; }
23:35 colomon How do you change that to properly detect and handle cycles?
23:36 colomon (remembering also that we want to make .perl a reasonably easy method for people to add to their own classes.)
23:36 * colomon is really hoping TimToady or sorear has a brilliant answer to this question....
23:37 TimToady the question is where you're gonna store the state
23:38 risou joined #perl6
23:38 sftp joined #perl6
23:38 TimToady probably in a contextual
23:39 slavik1 left #perl6
23:40 colomon does that work?  what happens when you do >>.perl?
23:40 TimToady so it'll look something like $*seen{self.WHICH} ?? fake_tag(self) !! $*seen{self.WHICH} = what you have there already
23:40 Vlavv left #perl6
23:42 sorear colomon: .perl can't be a simple homomorphism
23:44 colomon TimToady: How do you make fake_tag(self) do the right thing?
23:45 TimToady just has to generate a tag based on the identity of self
23:45 TimToady coulda passed self.WHICH to that too, probably
23:46 TimToady hmm, that's not really quite right
23:46 TimToady it's only a boolean flag whether we've seen it
23:47 TimToady don't have to store the existing tag, assuming it's reproducable from the self's identity
23:47 TimToady so just $*seen{self.WHICH}++ ?? fake_tag(self) !! what you had already
23:47 hercynium left #perl6
23:48 TimToady where $*seen probably needs a better name like $*PERLSEEN or some such
23:48 TimToady $*seen-by-perl
23:48 TimToady whatever
23:48 Chillance joined #perl6
23:48 TimToady could get rid of that
23:49 TimToady hid the variable
23:49 Vlavv joined #perl6
23:49 TimToady so it's just seen-by-perl(self) || '[' ~ self.map({ $^a.perl }).join(', ') ~ ']';
23:49 TimToady and seen-by-perl either returns a tag or false
23:50 plobsing joined #perl6
23:50 TimToady if the method is in mu, we could have .seen-by-perl || ..
23:51 TimToady *...
23:51 rgrau joined #perl6
23:51 TimToady well, maybe 'or' is better than ||
23:52 TimToady so it won't be much of a burden for anyone to add ".seen-by-perl or" to their perl method
23:52 slavik1 joined #perl6
23:54 colomon I like where this is going.
23:55 masak I've now reviewed all the p1 submissions. but I'm tired now, and will put off blogging till the morning.
23:55 masak 'night, #perl6.
23:55 masak left #perl6
23:55 colomon But (even ignoring threading issues that scare me), it seems like more is still needed?  at least, what are the strings that .perl returns going to look like in these cases?
23:57 colomon Like the my $a = 1; my $b = 2; $a = ($a, $b); example.  what would $a.perl look like?
23:59 Tene itym :=

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

Perl 6 | Reference Documentation | Rakudo