Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-08-21

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 wayland76 sjohnson: The author of the Zompist Phrasebook has also written stuff on how to do conlang :)
00:17 jnthn joined #perl6
00:17 japhb joined #perl6
00:17 [particle] joined #perl6
00:17 eldragon2 joined #perl6
00:17 cognominal joined #perl6
00:17 mee joined #perl6
00:17 leedo joined #perl6
00:17 drbean joined #perl6
00:17 lucs joined #perl6
00:17 spinclad joined #perl6
00:17 nicomen joined #perl6
00:17 andreasg_ joined #perl6
00:17 christine joined #perl6
00:21 tak11 joined #perl6
00:34 xomas_ joined #perl6
00:35 carlin joined #perl6
00:35 ihrd joined #perl6
00:42 jaldhar joined #perl6
01:01 ruz joined #perl6
01:03 ruz perl6: class X {}; my $o = X.new; say $o.WHO
01:03 p6eval rakudo 0d4fe0: OUTPUT«Method 'WHO' not found for invocant of class 'X'␤»
01:03 p6eval ..elf 28042: OUTPUT«Can't locate object method "WHO" via package "X" at (eval 124) line 9.␤ at ./elf_h line 5881␤»
01:03 p6eval ..pugs: OUTPUT«*** No such method in class X: "&WHO"␤    at /tmp/nij4Zjabqr line 1, column 32 - line 2, column 1␤»
01:05 jnthn ruz: Seems .WHO ain't implemetned yet...by any implementation.
01:05 jnthn ruz: It is spec though.
01:06 ruz jnthn: should return name of the class, right?
01:06 jnthn No
01:06 ruz introspection spec is empty
01:06 ruz I was guessing
01:07 jnthn let me check the spec
01:07 jnthn It's 3am here so I'll nly remember wrong...
01:07 jnthn WHO         the package supporting the object, stringifies to long name
01:08 jnthn .WHAT returns the type object, stringifies to the short name (that one is implemented); .WHO strinfigies to the long name.
01:08 ruz ah, ok
01:08 jnthn spec'd in S12: http://svn.pugscode.org/pugs/d​ocs/Perl6/Spec/S12-objects.pod
01:08 jnthn Actually Rakudo doesn't do too badly on the Introspection part of the spec
01:08 ruz I thought that it's S20
01:08 taur1an joined #perl6
01:09 wayland76 ruz: Well, things don't always go quite according to plan, and that includes S12/S20 :)
01:10 jnthn ruz: Ah, now I see what you meant by "introspection spec is empty".
01:10 ruz probably simple S20 with link to chapter in S12 help people find existing docs
01:11 jnthn Things don't always quite map to the Camel chapters, though it is a reasonable guideline.
01:11 jnthn Yeah, could do that.
01:17 japhb joined #perl6
01:20 ruz see thing that may require more coding in some code
01:20 ruz .WHAT returns X()
01:20 jnthn ruz: Yes
01:20 ruz spec suggest to use .perl
01:21 ruz look at http://lastofthecarelessmen.blogspot.com/​2009/08/vector-str-and-perl.html#comments
01:21 sjohnson rakudo:  say given.WHAT
01:21 p6eval rakudo 0d4fe0: OUTPUT«say requires an argument at line 2, near "given.WHAT"␤in Main (src/gen_setting.pm:2510)␤»
01:21 sjohnson rakudo:  say when.WHAT
01:21 p6eval rakudo 0d4fe0: OUTPUT«say requires an argument at line 2, near "when.WHAT"␤in Main (src/gen_setting.pm:2510)␤»
01:21 sjohnson rakudo:  say given(){}.WHAT
01:21 jnthn sjohnson: given and when are not functions/objects etc.
01:21 p6eval rakudo 0d4fe0: OUTPUT«Could not find non-existent sub given␤»
01:22 ruz class redefines .perl
01:22 sjohnson jnthn: o i c
01:22 ruz perl6: class X {}; my $o = X.new; say $o.WHAT
01:22 p6eval elf 28042, pugs: OUTPUT«X␤»
01:22 p6eval ..rakudo 0d4fe0: OUTPUT«X()␤»
01:23 jnthn ruz: A class is free to redefine .perl as it wishes.
01:23 jnthn ruz: It's just a way of giving a Perl-ish representation of itself.
01:24 ruz yep, and that blog post it's used
01:24 jnthn Aye.
01:24 jnthn I think the default .perl could be a bit smarter in the future, though.
01:25 ruz that code doesn't respect inheritance
01:25 jnthn How so?
01:25 jnthn Oh, hang on
01:25 ruz it always print Vector.new
01:25 jnthn Yeah, I see that now
01:25 ruz s/print/returns/
01:25 jnthn self.perl ~ '.new()' maybe is better.
01:26 ruz oh
01:26 jnthn oh no
01:26 jnthn gah
01:26 jjpx joined #perl6
01:26 jnthn sorry, I really should not be concious right now :-)
01:26 jnthn self.WHAT.perl
01:26 jnthn rakudo: say 42.WHAT; say 42.WHAT.perl
01:26 p6eval rakudo 0d4fe0: OUTPUT«Int()␤Int␤»
01:27 ruz cool
01:27 ruz counterintuitive, but cool
01:28 ruz thanks
01:28 jnthn .WHAT gives you back the type object for the class.
01:28 jnthn So you're calling .perl on the type object.
01:29 jnthn It's easy to forget that .WHAT doesn't just hand back a string, so most of the time people just print it out to help debug and similar.
01:29 jnthn But you can do things like:
01:29 jnthn rakudo: class A { }; my $x = A.new; my $y = $x.WHAT.new;
01:29 p6eval rakudo 0d4fe0:  ( no output )
01:29 jnthn rakudo: class A { }; my $x = A.new; my $y = $x.WHAT.new; say $y.WHAT
01:29 p6eval rakudo 0d4fe0: OUTPUT«A()␤»
01:29 jnthn That is, get the type object of some variable and then call .new on it to create another one of the same type.
01:30 ruz sounds good, looks like S12 behind implementation :)
01:32 jnthn S12 has a _lot_ of stuff in it. But we're getting there. :-)
01:34 jjpx left #perl6
01:38 cognominal wayland76, what was your discussion about French something?
01:39 jnthn cognominal: Où est le bordel?
01:39 cognominal where did he got that from?
01:40 wayland76 cognominal: Leaving the funny stuff aside, alester wanted help with doing perl101 multilingual, and sjohnson was thinking about it
01:40 jnthn cognominal: Well, I know the most useful phrases in all languages. ;-)
01:40 wayland76 If you want the funny stuff, find that link for the zompist phrasebook
01:40 jnthn http://www.zompist.com/phrases.html
01:40 wayland76 http://www.zompist.com/phrases.html
01:41 wayland76 ...and look for the phrase that mentions cathedrals, and you'll see what I was talking about :)
01:41 sjohnson or opinions on films
01:41 jnthn The films one is grat.
01:41 jnthn *great
01:41 jnthn Especially the German!
01:41 wayland76 sjohnson: That won't help him see what *I* was talking about.  But they're funny :)
01:42 wayland76 Well, it's a pity, then, that Ich sprechen deutsch wie italienisch Fußballtrainer.
01:43 cognominal jnthn, except there is supposedly no bordel in France since after WW2  :   see http://en.wikipedia.org/wiki/Marthe_Richard
01:43 jnthn :-D
01:43 sjohnson cognominal++ reference material
01:43 cognominal bordel is used as a interjecction like "shit"
01:44 jnthn cognominal: Yeah! And there's been no grèves in France since...oh wait...
01:44 cognominal or you say "c'est le bordel", meaning "that's a mess
01:45 cognominal jnthn, grèves are a national  sport
01:45 sjohnson cognominal: vous parlez francais aussi?
01:45 cognominal I am French
01:45 sjohnson de France ou Canada?
01:45 sjohnson ou Belgique
01:45 sjohnson ... ou l'Afrique
01:46 cognominal with BooK, we initiated jnthn to French strong alcool :)
01:46 cognominal born in  Paris, France (not Paris Texas, catch the cinephilic reference if you can)
01:48 wayland76 Ooh, I must be cool now :)
01:48 sjohnson ca ne te derange pas si on parle en francais parfois, oui?
01:48 cognominal you are all welcome to join #perlfr on irc.perl.org
01:48 sjohnson .. I'll keep it in English here then
01:49 jnthn oui oui! Je voudrais le chatreaux!
01:49 wayland76 I think people here are language geeks enough that they don't mind some non-english, as long as it doesn't overwhelm the channel
01:49 cognominal I suppose that jnthn does speak of "chateaux d'eau" but of some wine  :)
01:50 cognominal s/does/does not/
01:50 wayland76 And you can tell the monolingual English speakers "We're making lots of progress here", and they'll never know the difference :)
01:51 sjohnson heh
01:51 wayland76 I thought he was saying he'd like some houses.  Wouldn't mind them myself :)
01:52 jnthn That'd be chateaux, no?
01:52 jnthn Houses are overrated. 55% alcohol is far better.
01:52 jnthn On that note, it's almost 4am so I'm going to sleep.
01:52 wayland76 jnthn: Yes, but cognominal said "chateaux"
01:52 wayland76 ooh, goodnight :)
01:52 jnthn night!
01:52 jnthn don't expect me early tomorrow ;-)
01:52 cognominal night
01:53 wayland76 I'll expect you tommorrow my time :)
01:54 ruz is self.new() still valid concept in perl6? is it proper way to honor inheritance?
01:54 sri_kraih joined #perl6
01:54 Topic for #perl6is now »ö« | http://perl6-projects.org/ | nopaste: http://paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: http://irc.pugscode.org/ | UTF-8 is our friend!
01:54 sjohnson .. always wanted to change that
01:58 wayland76 ruz: Just a note that the next 6 hours or so are probably the worst time of day for asking questions
02:01 cognominal french translations are quite creative in zompist
02:03 KyleHa joined #perl6
02:03 ruz wayland76: I used to silence, it's fine when you just play with things and don't expect much :)
02:03 cognominal I must compliment you on your understanding of our language.
02:03 cognominal Tu n'entends donc rien, espèce de con ?
02:03 cognominal that would be "you don't dig anything, you cunt"
02:04 KyleHa Ouch.
02:04 wayland76 ruz: He's not talking to you, he's commenting on a funny document we found
02:04 sjohnson isn't that closer to "you don't undestand shit, you idiot"
02:04 cognominal soory, KyleHa :)
02:05 cognominal yes, sjohnson
02:05 wayland76 sjohnson: it's probably be more idiomatic for the subculture in question to s/understand/know/
02:05 KyleHa cognominal: No sweat.  It's just been a while since I've been around anyone who talks like my mom.
02:05 sjohnson yeah, know
02:05 sjohnson i agree wayland76
02:06 _jaldhar joined #perl6
02:06 ruz wayland76: :)
02:12 jauaor hello?
02:13 Anaphora joined #perl6
02:13 KyleHa jauaor: Hello!
02:13 sjohnson hello jauaor
02:13 yoblz joined #perl6
02:14 araujo joined #perl6
02:14 cognominal rakudo:  given True {  when True, False { say "test if list of value is ok in a when" }}
02:14 p6eval rakudo 0d4fe0:  ( no output )
02:15 cognominal rakudo:  given True {  when True { say "test if list of value is ok in a when" }}
02:15 p6eval rakudo 0d4fe0: OUTPUT«test if list of value is ok in a when␤»
02:15 KyleHa rakudo: given True { when True|False { say "Junction?" } }
02:15 p6eval rakudo 0d4fe0: OUTPUT«Junction?␤»
02:15 cognominal KyleHa++
02:16 KyleHa rakudo: given True { when any(True, False) { say "Junction from list?" } }
02:16 p6eval rakudo 0d4fe0: OUTPUT«Junction from list?␤»
02:17 cognominal my tentative was stupid, but as we say in French  "prêcher le faux pour savoir le vrai"   preach falsehood to learn about the truth
02:17 KyleHa Nah, not stupid.  I half expected it to work before I saw the (non) output.
02:18 cognominal well, True does not match (True, False)
02:19 jauaor hi KyleHa sjohnson !
02:19 jauaor :)
02:21 cognominal the doc about smarmatching is intimidating     DWIDKIM   it Does What I Did Not Know I Meant
02:22 justatheory joined #perl6
02:22 Cataztrohpy joined #perl6
02:31 sjohnson going to play pool, fun chats today :)
02:31 sjohnson see ya guys
02:36 cognominal rakudo:  given $*IN {  when :r { say "*" }}
02:36 p6eval rakudo 0d4fe0: OUTPUT«Method ':r' not found for invocant of class 'IO'␤»
02:36 qp_pq joined #perl6
02:36 cognominal I don't remember the new way "(
02:38 wayland76 rakudo:  given $*IN {  when .r { say "*" }}
02:38 p6eval rakudo 0d4fe0: OUTPUT«Method 'r' not found for invocant of class 'IO'␤»
02:38 wayland76 May be NYI on handles
02:39 wayland76 I don't know that, I'm just randomly guessing
02:39 cognominal rakudo: say "/etc" ~~ :r
02:39 p6eval rakudo 0d4fe0: OUTPUT«Method ':r' not found for invocant of class 'Str'␤»
02:41 KyleHa rakudo: say "/etc".IO ~~ :d
02:41 p6eval rakudo 0d4fe0: OUTPUT«Method 'IO' not found for invocant of class 'Str'␤»
02:41 KyleHa I think that's the one that's in the spec, but it's not implemented.
02:41 KyleHa The spec changed recently.
02:42 cognominal I got that from S03:2231
02:43 KyleHa Let me see if I'm hallucinating...
02:44 KyleHa Here it is:  http://dev.pugscode.org/changeset/27503
02:44 araujo joined #perl6
02:45 wayland76 rakudo:  say $*IN^methods
02:46 p6eval rakudo 0d4fe0: OUTPUT«Could not find non-existent sub methods␤»
02:46 wayland76 rakudo:  say $*IN.^methods
02:46 p6eval rakudo 0d4fe0:
02:46 p6eval ..OUTPUT«inseoflinessayprintgetprintfslurpcloseSc​alarreverseisapolarucfirstcombfmtfirsttranschopri​ndexvaluessubstelemschompindexkeyschrpairskvcapit​alizepickevalfilep5choplcjoincharscanlcfirstroots​reduceComplextrim:dmap:ecis:flogminrandtruncatema​xbytessortsqrtIntgrepabsenducceilingp5chompunp…
02:46 wayland76 rakudo:  say join ", ", $*IN.^methods
02:46 p6eval rakudo 0d4fe0: OUTPUT«ins, eof, lines, say, print, get, printf, slurp, close, Scalar, roots, uc, reverse, keys, isa, ucfirst, 1, fmt, bytes, 2, 1, join, trim, chr, floor, rand, 1, round, 1, 1, 1, split, 1, grep, words, values, can, lcfirst, 1, srand, 1, map, cis, kv, samecase, 1, min, capitalize,
02:46 p6eval ..max, t…
02:46 wayland76 rakudo:  say join ", ", grep { !/^\d+$/ } $*IN.^methods
02:46 p6eval rakudo 0d4fe0: OUTPUT«Statement not terminated properly at line 2, near "$*IN.^meth"␤in Main (src/gen_setting.pm:3390)␤»
02:47 wayland76 rakudo:  say join ", ", grep { !/^\d+$/ }, $*IN.^methods
02:47 cognominal rakudo: say $*IN.^methods.perl
02:47 p6eval rakudo 0d4fe0: OUTPUT«slurp, close, Scalar, ins, eof, lines, say, print, get, printf, end, ceiling, trim, p5chomp, pairs, unpolar, ord, rand, grep, values, roots, reverse, isa, ucfirst, kv, samecase, capitalize, fmt, bytes, flip, does, p5chop, lc, reduce, chr, comb, floor, round, chop, split,
02:47 p6eval ..words, can…
02:47 p6eval rakudo 0d4fe0: OUTPUT«[{ ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ...
02:47 p6eval ..}, { …
02:47 cognominal :)
02:47 wayland76 rakudo:  say join ", ", grep { !/^\d+$/ and /^.$/ }, $*IN.^methods
02:47 p6eval rakudo 0d4fe0: OUTPUT«Can't set self from this type␤in regex PGE::Grammar::_block62 (/tmp/FLsipYjmz9:2)␤called from method Any::grep (src/gen_setting.pm:172)␤called from sub grep (src/gen_setting.pm:295)␤called from Main (/tmp/FLsipYjmz9:2)␤»
02:47 xomas_ joined #perl6
02:47 arthur-_ joined #perl6
02:47 obra_ joined #perl6
02:47 omega_ joined #perl6
02:47 broquaint joined #perl6
02:47 ascent joined #perl6
02:47 ingy joined #perl6
02:47 dalek joined #perl6
02:48 wayland76 rakudo:  say join ", ", grep { /^.$/ }, $*IN.^methods
02:48 p6eval rakudo 0d4fe0: OUTPUT«Can't set self from this type␤in regex PGE::Grammar::_block57 (/tmp/rP2PspiV0d:2)␤called from method Any::grep (src/gen_setting.pm:172)␤called from sub grep (src/gen_setting.pm:295)␤called from Main (/tmp/rP2PspiV0d:2)␤»
02:48 wayland76 No idea
02:52 protorom joined #perl6
02:54 protorom joined #perl6
03:02 nixfu joined #perl6
03:07 ihrd hi
03:07 ihrd rakudo: 1.^methods.^methods.join(', ').say
03:07 p6eval rakudo 0d4fe0: OUTPUT«values, delete, Scalar, , shift, Array, splice, exists, push, unshift, item, pop␤»
03:08 ihrd why I have no 'name' in this list?
03:09 ihrd 1.^methods>>.name.join(', ').say
03:09 dukeleto joined #perl6
03:10 ihrd ah, I missed
03:10 molaf joined #perl6
03:11 ihrd rakudo: 1.^methods.[0].^methods.join(', ').say
03:11 p6eval rakudo 0d4fe0: OUTPUT«Scalar, multi␤»
03:13 ihrd rakudo:1.^methods.[0].name
03:13 ihrd rakudo: 1.^methods.[0].WHAT.say
03:13 p6eval rakudo 0d4fe0: OUTPUT«Code()␤»
03:13 ihrd rakudo:1.^methods.[0].name.say
03:16 ihrd joined #perl6
03:17 ihrd left #perl6
03:27 japhb joined #perl6
03:30 tak11 joined #perl6
03:34 jaldhar_ joined #perl6
03:38 justatheory joined #perl6
03:40 alester joined #perl6
03:43 molaf joined #perl6
03:49 khisanth_ joined #perl6
04:11 fridim_ joined #perl6
04:12 cognominal rakudo: say Any.defined( Pattern )
04:12 p6eval rakudo 0d4fe0: OUTPUT«Could not find non-existent sub Pattern␤»
04:12 cognominal rakudo: say Any.defined( ::Pattern )
04:12 p6eval rakudo 0d4fe0: OUTPUT«too many arguments passed (2) - 1 param expected␤in Main (src/gen_setting.pm:3390)␤»
04:13 rjh joined #perl6
04:23 jrockway joined #perl6
04:30 mikehh rakudo (ae56d02) builds on parrot r40685 - make test/make spectest (up to 28042) PASS - Ubuntu 9.04 amd64
04:39 zloyrusskiy joined #perl6
04:48 cognominal what is this method with an empty name?
04:48 cognominal my %a ;  say  join ', ', sort map { "'$_'" },  %a.^methods
04:48 cognominal rakudo: my %a ;  say  join ', ', sort map { "'$_'" },  %a.^methods
04:48 p6eval rakudo 0d4fe0: OUTPUT«'', 'ACCEPTS', 'Hash', 'Scalar', 'contains', 'delete', 'exists', 'hash', 'invert', 'push'␤»
04:49 zloyrusskiy joined #perl6
04:50 japhb joined #perl6
05:05 fridim__ joined #perl6
05:06 spinclad KatrinaTheLamia: re JPerl6: possibly of interest: pugs had a working javascript-emitting backend (likely badly bitrotten now). i seem to recall people at the time saying javascript was a fair piece friendlier environment for dynamic langs than JVM.  nothing a few layers of abstraction wouldn't cure, i expect.
05:14 frew__ joined #perl6
05:17 finanalyst joined #perl6
05:32 bpetering joined #perl6
05:41 orafu joined #perl6
05:41 szabgab joined #perl6
05:49 * missingthepoint wonders what an "impedance mismatch" is...
05:50 * missingthepoint guesses though that an "impetdance mismatch" is when petdance is required, but not present. :)
05:50 Tene it's not usually used as a specific technical term, just a general idea that two conflicting worldviews are colliding.
05:50 missingthepoint oh hai Tene
05:50 Tene technology A does things one way, B does things a very different way, so they can't fit together.
05:51 Tene horizontal tab inserted into vertical slot.
05:51 Tene etc.
05:51 Tene that help?
05:51 Tene OH HAI MTP
05:52 missingthepoint does... Tene++ # meme education
05:52 missingthepoint missingthepoint-- # #perl6 -> meme school
05:52 Tene eh, nothing else important was going on ATM
05:53 wayland76 Well, impedance mismatch does have a specific sense in electronic engineering, and audio stuff, and things like that
05:54 Tene Right.
05:54 Tene I just meant that its use elsewhere isn't a specific concept.
05:54 wayland76 But my Dad's the EE, not me, so I can't remember what at the moment :)
05:55 Tene http://en.wikipedia.org/wiki/Impedance_matching
05:55 Tene http://en.wikipedia.org/wiki/Obje​ct-relational_impedance_mismatch is an example of a specific programming-related failure described by that term.
05:55 Tene wikipedia++
05:56 Tene missingthepoint: any other memes for me?  I'm (hopefully) going to sleep soon.
05:57 missingthepoint no, sleep well :)
05:58 Tene Just recently found out I'm going on a surprise trip to Seattle next week, for work.  Taking the gf with me this time.
05:58 missingthepoint ooh, have fun...
05:59 missingthepoint (if that's possible on a work trip)
05:59 Chillance joined #perl6
05:59 wayland76 Actually, now that I think about it, the impedance mismatch meme means that they can be made to sort of fit if you push hard enough
05:59 Tene missingthepoint: sure is.
06:06 missingthepoint night Tene, afk for a bit
06:08 mikehh_ joined #perl6
06:08 cotto joined #perl6
06:08 moritz_ good localtime() Perl 6 folks
06:09 Tene hi moritz
06:10 missingthepoint hi moritz_ :)
06:15 rfordinal joined #perl6
06:30 * moritz_ just found a weird bug in array attribute initialization, and wonders if he can reduce it to a usable size
06:31 moritz_ rakudo: class A { has @.b; method d { say @.b.perl } }; A.new(b => ([3, 4], [5, 6]))
06:31 p6eval rakudo 0d4fe0:  ( no output )
06:31 moritz_ rakudo: class A { has @.b; method d { say @.b.perl } }; A.new(b => ([3, 4], [5, 6])).d
06:31 p6eval rakudo 0d4fe0: OUTPUT«[[3, 4], [5, 6]]␤»
06:32 moritz_ ok, not so easy :/
06:47 wayland76 ping ruz: if you're still around, good question time starts now :)
06:50 Su-Shee joined #perl6
06:50 Su-Shee good morning. :)
06:50 moritz_ good morning Su-Shee
06:51 Su-Shee the ircserver should serve coffee...
06:53 wayland76 But then if the Internet was down, you'd have no coffee :)
06:54 * Su-Shee fell into the office a little early...
06:54 finanalyst good localtime everyone
06:55 rfordinal joined #perl6
06:58 * Su-Shee looks at 10 years old perl.
06:59 missingthepoint Su-Shee: my condolences. (at least it's perl.)
07:00 Su-Shee actually, it's rather ok. I've expected much much worse.
07:01 Su-Shee and *hihi* from an archeological point of view it's interesting seeing a perl project which runs constantly for a decade now.
07:02 moritz_ Rakudo's spectest graph, recreated in Perl 6: http://moritz.faui2k3.org/tmp/progress-graph.svg
07:02 Su-Shee *plopp* nice :)
07:03 * wayland76 remembers seeing some perl4 once, and giving up quickly :)
07:03 moritz_ there seem to be some small rounding errors
07:04 moritz_ which lead to sub-pixel whitespaces between the bars
07:04 moritz_ and when you zoom out, you see waves in the luminosity
07:11 drbean joined #perl6
07:29 finanalyst moritz_: how was graph created? can i see program?
07:29 szbalint ooo moritz_++
07:29 moritz_ finanalyst: with my SVG::Plot module...
07:30 moritz_ finanalyst: http://github.com/moritz/svg-plot/ in the examples/ directory
07:30 finanalyst moritz_:++
07:30 Su-Shee some day, there will be a Cairo binding...
07:32 moritz_ rakudo: say 1/7
07:32 p6eval rakudo 0d4fe0: OUTPUT«0.142857142857143␤»
07:33 finanalyst moritz_: typo line 69 s/Dez/Dec/
07:33 moritz_ rakudo: printf "%.30f", 1/7
07:33 p6eval rakudo 0d4fe0: OUTPUT«0.142857142857142849212692681249»
07:34 moritz_ finanalyst: thanks. Actually language confusion ;-)
07:41 finanalyst moritz_: where is SVG.pm?
07:41 moritz_ finanalyst: in masak's github repo
07:41 wayland76 He has a plot to keep it for himself.  That's why it's called SVG::Plot :)
07:46 szbalint and SVG stands for Superbly Veiled Grand
07:46 szbalint :)
07:51 cotto Does Rakudo take advantage of Parrot's fact opcode yet?
07:53 moritz_ cotto: a quick grep says "no"
07:53 moritz_ what does fact do?
07:53 cotto It wasn't a very serious question.
07:54 cotto factorial
07:54 moritz_ oh.
07:54 cotto I'm surprised it hasn't been removed.
07:55 moritz_ sounds like a thing one would write to win in a specific benchmark ;-)
07:55 cotto I'm pretty sure that's why it was put there.
07:56 finanalyst in SVG.pm I found '$svg = :svg[...]' I havent come across :xx[]. Is this the same as 'xx'=>[] ?
07:57 moritz_ yes (and currently broken)
07:59 charsbar joined #perl6
08:05 reqamst I'm looking for perl6 bundle for textmate, anyone knows?
08:05 payload joined #perl6
08:06 * moritz_ only know of Perl 6 support for vim, emacs and padre
08:09 * missingthepoint is thinking of trying to add it to komodo... that may or may not involve solving the problem for other editors.... <o
08:09 ejs joined #perl6
08:10 rfordinal joined #perl6
08:10 rfordinal left #perl6
08:18 ejs1 joined #perl6
08:20 * sri_kraih would like a perl6 bundle for textmate too
08:22 missingthepoint well, buy me a mac and i'll work on textmate :P
08:23 reqamst I am using textmate bundles in e editor for windows
08:23 reqamst many editors use textmate bundles and themes
08:23 payload left #perl6
08:24 cj_ joined #perl6
08:26 dukeleto joined #perl6
08:30 payload joined #perl6
08:37 Chillance_ joined #perl6
08:54 flip915 joined #perl6
08:55 flip915 Does someone know if there's something like a PASM to C converter or anything like that?
08:55 flip915 I'd like to compile perl6 into native code.
08:56 moritz_ flip915: http://perlgeek.de/blog-en/pe​rl-6/my-first-executable.html
08:56 moritz_ I don't know if that works at the moment
08:56 cotto There was one built into Parrot quite a while ago, but it bitrotted from lack of love.
08:56 flip915 Yes, but that only puts the bytecode after some loader, doesn't it?
08:56 moritz_ yes, but it's an executable ;-)
08:57 flip915 I'm asking about letting a compiler run over it - with all available optimizations, like inlining and so on
08:57 cotto It's a "fakecutable".
08:57 moritz_ cotto: what about that parrot runcore that creates executables?
08:57 cotto flip915, we're also hoping to use LLVM as a backend, but that's a long-term project.
08:57 flip915 Because I believe that the accessor functions for classes would get a major performance boost if they'd get reduced to "load int from base+X"
08:58 flip915 instead of having to call a bytecode function
08:58 flip915 and yes, I know about JIT ... but I think that a compiler could/should do that *one* time, and not at each run
08:59 flip915 LLVM sounds interesting
08:59 flip915 http://llvm.org/
08:59 cotto We need to do a lot of groundwork first.
08:59 cotto but yes, it is
09:00 cotto moritz_, I think that's the one that got bitrotted and removed.
09:01 moritz_ actually we has a Summer of Code project planned for that - but real life got in the student's way
09:01 moritz_ (for an llvm JIT backend, that is)
09:02 cotto flip915, if you're interested in helping, head on over to #parrot on irc.perl.org and help us figure out what needs to go into Lorito.
09:02 dalek rakudo: c06ba3a | moritz++ | docs/release_guide.pod:
09:02 dalek rakudo: [docs] small udapte to release_guide.pod, mentioning tools/test_summary.pl
09:02 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​06ba3a0c5d747e9bc039e33d5d43315d8ed3dab
09:04 cotto https://trac.parrot.org/parrot/wiki/L1Recap (Lorito is the currently favored name for L1).  Also, I'll stop with the non-perl 6 stuff now.
09:12 flip915 cotto: Yes, I'm interested, but I won't find any free time for that ... I'm already overbooked 4 times in RL ;-[
09:13 moritz_ well, you found time for IRC ;-)
09:13 mikehh rakudo (ae56d02) builds on parrot r40688 - make test/make spectest (up to 28042) PASS - Ubuntu 9.04 amd64
09:14 flip915 that's just while switching through the desktops
09:15 M_o_C joined #perl6
09:24 zamolxes joined #perl6
09:29 masak joined #perl6
09:31 szabgab joined #perl6
09:40 masak std: class A { method .new() {} }
09:40 p6eval std 28042: OUTPUT«[31m===[0mSORRY![31m===[0m␤Malformed block at /tmp/MrPXoPfOoE line 1:␤------> [32mclass A { method [33m⏏[31m.new() {} }[0m␤    expecting any of:␤      block␤  subscript signature␤        terminator␤FAILED 00:02 37m␤»
09:40 masak std: class A { method !new() {} }
09:41 p6eval std 28042: OUTPUT«ok 00:02 38m␤»
09:41 masak a case could be made for the '.new' form (as a synonym for 'new') being a logical extension of the '!new' syntax.
09:42 moritz_ a case could be made indeed.
09:42 moritz_ however I don't know if there's much benefit from increased punctuation
09:49 masak me neither.
09:50 masak but I saw Kevan's method declaration syntax on p6l, and I had this thought.
09:59 rfordinal joined #perl6
10:01 reqamst http://paste.lisp.org/display/85787
10:02 reqamst Is it bug? I am getting spaces beetween numbers.
10:02 sjohnson how's it going masak
10:02 moritz_ reqamst: not a bug, that's how arrays stringify
10:02 masak sjohnson: fine. a bit hectic today, but not too bad.
10:02 moritz_ 0,0,0 creates an array (a list, actually), not a string
10:03 masak sjohnson: how're you doing?
10:03 sjohnson pretty good :)
10:07 masak food &
10:15 jnthn oh hai
10:16 moritz_ OLOLITSJNTHN
10:21 szabgab joined #perl6
10:26 abra joined #perl6
10:28 guest_007 joined #perl6
10:36 mikehh rakudo (c06ba3a) builds on parrot r40691 - make test/make spectest (up to 28042) PASS - Ubuntu 9.04 amd64 (g++)
10:37 ihrd joined #perl6
10:44 * jnthn looks at xkcd today and groans
10:47 * wayland76 thinks xkcd website is slow due to OS upgrades using his internet connection :)
10:49 pugs_svn r28043 | moritz++ | [S02] small clarifications on Whatever comprehensions
10:50 wayland76 I experience a strange feeling when reading moritz_'s commit message :)
10:51 wayland76 (out of context)
10:52 colomon joined #perl6
10:52 wayland76 I mean, how often do you tell  people that you've been clarifying the whatever comprehensions? :)
10:56 reqamst We need nice module for bouild XML structure for Tufte. Scruffy uses http://builder.rubyforge.org
10:56 moritz_ reqamst: masak's SVG.pm (which is actually an XML writer) might do for a start
10:57 xomas_ joined #perl6
10:58 reqamst moritz_: Oh, I see.
10:59 mtve joined #perl6
11:03 moritz_ std: **
11:03 p6eval std 28043: OUTPUT«ok 00:02 37m␤»
11:17 pugs_svn r28044 | moritz++ | [t/spec] tests for whatever codes with multiple stars
11:18 jnthn moritz_: Do you know what is ** parsing as?
11:18 jnthn rakudo: **
11:18 p6eval rakudo 0d4fe0: OUTPUT«Statement not terminated properly at line 2, near "*"␤in Main (src/gen_setting.pm:3390)␤»
11:19 moritz_ jnthn: probably as * * <missing term>
11:19 moritz_ rakudo: say (** 3).(5)
11:19 p6eval rakudo 0d4fe0: OUTPUT«15␤»
11:19 moritz_ yes
11:19 jnthn moritz_: Wouldn't the missing term be a parse error though?
11:19 moritz_ ah wait, you meant STD.pm
11:19 jnthn moritz_: Right
11:19 moritz_ there's a term ** that's HyperWhatever
11:20 jnthn oh my...
11:20 jnthn OK.
11:20 moritz_ I wanted to add that to the grammar, but I couldn't find out how the * term is parsed
11:21 jnthn moritz_: Line 664
11:21 jnthn Inside token term
11:22 moritz_ jnthn: thanks
11:30 pmurias joined #perl6
11:34 fridim_ joined #perl6
11:40 jnthn ooh, shiny
11:40 jnthn > multi trait_mod:<is>(AttributeDeclarand $a, :$mentioned!) { say "declared " ~ $a.name }
11:40 lambdabot <no location info>: parse error on input `)'
11:40 jnthn > class Test { has $.x is mentioned }
11:40 lambdabot <no location info>: parse error on input `class'
11:40 jnthn > Test.new
11:40 lambdabot Not in scope: `Test.new'
11:40 jnthn declared $!x
11:40 jnthn /kick lambdabot
11:41 jnthn (And yes, if you do Test.new again, it doesn't re-apply the trait. We get the applied-once semantics right-ish. :-))
11:42 jnthn oh, akshually we kinda won't...but we're close. ;-)
11:43 ihrd hi there
11:43 jnthn oh hai
11:43 ihrd I just try make for test in lat rakudo and got
11:43 ihrd A method named 'clone' already exists in class 'Perl6Object'. It may have been supplied by a role.
11:44 moritz_ ihrd: it seems you don't have a pugs commit bit yet - do you want one? (to apply the test patch)
11:44 jnthn ihrd: In latest Rakudo from git?
11:44 Zloyrusskiy joined #perl6
11:45 ihrd I checked it this morning, will check now again
11:45 moritz_ ihrd: did you do a 'make clean'?
11:45 ihrd yes, only pod updated
11:46 ihrd I done make realclean
11:46 ihrd for rakudo and parrot, both
11:46 moritz_ and try to delete the installed parrot (rm -rf parrot_install if you built with Configure --gen-parrot)
11:46 ihrd okay, I will do
11:47 ihrd and yes, I like to have pusg commit bit
11:47 moritz_ ihrd: them tell (or /msg) me your email address
11:48 moritz_ and desired nickname, if different from 'ihrd'
11:48 moritz_ oh, I thin I found it on the november maling list
11:49 ihrd ok
11:49 moritz_ ihrd: you have mail. It's a custom to add yourself to the AUTHORS file as first commit (and to check your commit bit)
11:49 carlin joined #perl6
11:50 carlin rakudo: say Temporal.WHAT;
11:50 p6eval rakudo 0d4fe0: OUTPUT«Null PMC access in getprop()␤in Main (src/gen_setting.pm:3390)␤»
11:51 moritz_ that's less than awesome.
11:51 jnthn moritz_: Yeah, it's the general "if I declare class A::B then A.WHAT is has an explode".
11:51 jnthn Already ticketed (I saw the ticket a couple of days ago)
11:52 kidd_ joined #perl6
11:52 moritz_ rakudo: say *(42)
11:52 p6eval rakudo 0d4fe0: OUTPUT«invoke() not implemented in class 'Undef'␤in Main (/tmp/b42gX0yOwO:2)␤»
11:52 carlin rakudo: Temporal
11:52 p6eval rakudo 0d4fe0: OUTPUT«Null PMC access in getprop()␤in Main (src/gen_setting.pm:3390)␤»
11:53 eiro hello there
11:53 moritz_ helleiro ;-)
11:54 eiro long time ago, i complain here about the fact that there is no .parsehandle method for grammar classes. Afaik, jnthn said that it could be a good addition
11:55 eiro did someone worked on it? how to know ?
11:55 carlin Ah, so it's already known?
11:55 moritz_ eiro: in perfect Perl 6 one can simply write that as Grammar.parse(cat $handle)
11:55 moritz_ or $handle.cat or whatever it's called
11:55 moritz_ but rakudo doesn't do Cat objects yet
11:56 jnthn moritz_: cat?
11:57 moritz_ jnthn: I forgot what the syntax for creating Cat objects is
11:57 wayland76 Yes, you didn't think all those examples in the specs that say Cat.meow() were just window dressing, did you? :)
11:57 moritz_ http://perlcabal.org/syn/S05.ht​ml#Matching_against_non-strings
11:57 jnthn Ah, found it in S03.
11:58 jnthn So Perl 6 can haz cheezburger?
11:58 wayland76 And various S32 docs
11:59 jnthn Anyway, it looks like cat would indeed deal with the issue.
11:59 dalek rakudo: f39e739 | moritz++ | src/parser/ (2 files):
11:59 dalek rakudo: parse ** (HyperWhatever)
11:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​39e7396a6160175fbd1a1e54a06a07c378eb325
11:59 jnthn moritz_: Going to implement HyperWhatever somewhat too? :-)
12:00 moritz_ jnthn: I don't think it makes sense until we have multi-dimensional arrays ;-)
12:00 moritz_ jnthn: but I don't like it when NYI features cause mis-parses
12:00 jnthn moritz_: Fair enough.
12:00 jnthn I see that you dind't just make it parse, but also put in an NYI message.
12:00 jnthn So that's fine. :-)
12:01 jnthn Well, I actually prefer that over silently failing.
12:01 jnthn But yes, parsing and saying NYI is even better.
12:01 moritz_ parsing **** as * ** * is plain wrong (although that would make an obfu much nicer)
12:02 moritz_ jnthn: but I could have made the commit message clearer, for sure
12:03 eiro re (chat with boss)
12:03 eiro moritz_, thanks
12:04 * jnthn rips out a bunch of special case code, replaces it with a call to a trait_mod, and sees what the spectests make of it
12:04 eiro so now: what's the best strategy to build a filter that uses a grammar? i can grab all the content of stdin
12:04 moritz_ development by experiment ;-)
12:04 eiro but it can be huge
12:04 moritz_ eiro: right now that's your only option (unless you can do something line by line)
12:05 eiro moritz_, i can't as my parser will use more than one line
12:06 moritz_ eiro: then you have to live with that restriction for now, and wait for lazy lists and streams to be implemented
12:06 takadonet joined #perl6
12:06 takadonet morning all
12:06 eiro moritz_, no pb: it's just for test :)
12:11 ihrd moritz_: I reinstall rakudo
12:11 pugs_svn r28045 | wayland++ | [S02,S03,S09,S11] Changed any example that had the animal "Cat" to have "Squirrel"
12:11 pugs_svn r28045 | wayland++ | instead (both have kittens), because we already have a type called Cat and a
12:11 pugs_svn r28045 | wayland++ | method called "cat", and I could see some potential for confusion.
12:11 ihrd still the same error there
12:12 meppl joined #perl6
12:12 jnthn hm
12:12 jnthn has $.inst is rw;
12:12 jnthn has $!priv is rw;
12:13 * jnthn wonders what the "is rw" means on the private.
12:13 masak it's a no-op, no?
12:13 jnthn masak: Well, it's a "omg trait dispatch fail" right now... :-/
12:13 masak oh.
12:13 jnthn Well, in my branch that actually applies traits.
12:14 jnthn Not in master which doesn't try to do anything other than the compiler handled ones.
12:14 jnthn I guess I can just write a no-op trait multi to handle that though.
12:14 moritz_ sounds sensible
12:14 jnthn OK, good, thanks for the sanity check. :-)
12:14 moritz_ wayland76: +     %cats\   .{'fluffy'} = Squirrel.new;
12:15 jnthn Squirrel is not a type of cat?
12:15 moritz_ well, it would be sensible to name the variable %squirrels in that case ;-)
12:17 jnthn Please note that
12:17 moritz_ anyway, I'lll fix that
12:17 jnthn +    # to the type Fish and either the Squirrel or Dog type...
12:17 jnthn +    my Squirrel|Dog Fish $mitsy = new Fish but { Bool.pick ?? .does Squirrel
12:17 jnthn +                                                           !! .does Dog };
12:17 jnthn Is not valid Perl 6.0.0.
12:17 moritz_ neither was the previous example, right?
12:17 jnthn No
12:17 jnthn You can't have multiple prefix constraints.
12:18 wayland76 Oops, I've fixed it too :)
12:18 pugs_svn r28046 | moritz++ | [S03] store Squirrels in %squirrels, not in %cats
12:18 * moritz_ was faster ;-)
12:19 wayland76 Oh well :)
12:19 jnthn I suspect for now we're best keeping the spectests just having 6.0.0 stuff in them. :-)
12:19 moritz_ somehow my commit messages sound a bit surrealistic today
12:20 * jnthn likes surrealism.
12:20 * masak fish surrealism
12:25 masak is there a way to neutralize the caught exception in a CATCH {} block?
12:25 masak (I know the current behaviour is a Rakudobug, I'm looking for workarounds.)
12:25 payload joined #perl6
12:26 jnthn Wasn't there some $!.handled = 1 thingummy?
12:28 masak jnthn: heh, that put the CATCH block in an infinite loop. :P
12:28 dalek rakudo: 527cb8f | moritz++ | src/setting/NYI.pm:
12:28 dalek rakudo: NYI-message for cat($)
12:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​27cb8fdba9d618b72e68748f46fc1000b9e6afc
12:29 jnthn *snort*
12:29 ihrd left #perl6
12:29 jnthn masak: Wait, do CATCH blocks re-throw exceptions?
12:30 masak jnthn: in Rakudo, it seems they do currently, yes.
12:30 jnthn wtf
12:30 jnthn that makes them, erm, vaguely uesless, no?
12:30 masak rakudo: die "ouch!"; CATCH { say "Gotcha!" }
12:30 p6eval rakudo 0d4fe0: OUTPUT«Gotcha!␤ouch!␤in Main (/tmp/1J46ZU1NsE:1)␤»
12:30 masak jnthn: aye.
12:30 jnthn rakudo: sub foo { die "ouch!"; CATCH { say "Gotcha!" } }; foo
12:30 p6eval rakudo 0d4fe0: OUTPUT«Gotcha!␤ouch!␤in sub foo (/tmp/lY3kLWxGOw:2)␤called from Main (/tmp/lY3kLWxGOw:2)␤»
12:31 jnthn aww shiesse
12:31 jnthn Tene: See ^^
12:32 masak rakudo: die "ouch!"; CATCH { say "Gotcha!"; $!.handled = 1 }
12:32 p6eval rakudo 0d4fe0:
12:32 p6eval ..OUTPUT«Gotcha!␤Gotcha!␤Gotcha!␤Gotcha!␤Gotcha!␤​Gotcha!␤Gotcha!␤Gotcha!␤Gotcha!␤Gotcha!␤Gotcha!␤G​otcha!␤Gotcha!␤Gotcha!␤Gotcha!␤Gotcha!␤Gotcha!␤Go​tcha!␤Gotcha!␤Gotcha!␤Gotcha!␤Gotcha!␤Gotcha!␤Got​cha!␤Gotcha!␤Gotcha!␤Gotcha!␤Gotcha!␤Gotcha!␤Gotc​ha!␤Gotcha!␤Gotcha!␤Gotcha!␤Gotcha!␤Gotcha!␤Go…
12:32 masak well, at least it doesn't re-throw... :P
12:34 Satish joined #perl6
12:35 Satish left #perl6
12:37 frettled moritz_: You know, the cats may disagree and think that squirrels _should_ be stored in cats.  Just mentioning it.
12:37 jnthn wantfud!
12:38 wayland76 well, those cats can go clarify their Whatever comprehensions for all I care :)
12:38 payload1 joined #perl6
12:38 masak one would think that cats have been evolved to store rodents.
12:39 wayland76 I doubt the rodents think of it as "storage" :)
12:40 unitxt joined #perl6
12:54 masak squirrels have kittens? this is news to me.
12:59 wayland76 Or maybe kits -- I thought it was kittens, but I didn't check :)
13:03 NegativeParallax joined #perl6
13:10 frettled masak: they also have [citation needed], according to the Wikipedia article on kittens.
13:10 frettled wayland76:      3: young of any of various fur-bearing animals; "a fox kit"
13:10 frettled seems right, according to Wordnet
13:12 masak I learn something new every day, it seems. thanks, frettled.
13:16 masak Matt-W++ # http://use.perl.org/comments​.pl?sid=43556&amp;cid=70195
13:19 jnthn That's a very good response.
13:19 jnthn What it was in response to kinda pissed me off.
13:20 masak it was written in a style meant to piss people off.
13:20 masak I'm toying with the idea of creating a blog around that comment and its (so far) three responses.
13:21 masak er, blog entry. :>
13:21 masak (I'm ambitious, but not _that_ ambitious...)
13:21 jnthn "I'm writing this because I care about Perl, about the community, about Perl 6" => bluntly, those of us who are actually doing the work are showing a heck of a lot more care for all of those than somebody who writes a factually inaccurate comment on a blog post that mis-interprets some really quite clear statements
13:22 masak nod.
13:22 masak I've been thinking long about the dynamics of outsider misunderstanding of this kind.
13:25 masak I think it's inevitable, because the bottle neck that we can communicate through to outsiders is extremely narrow.
13:25 carlin joined #perl6
13:26 jnthn Misunderstanding is fine. Being an ass is less fine.
13:26 wayland76 If my Web connections start working again, I'm very tempted to say "You obviously have no clue about what's going on with Rakudo.  Based on the fact that a single article doesn't tickle your fancy, you write the whole project off :)"
13:26 masak I'm not saying we should tolerate it, I'm saying it'll happen.
13:26 wayland76 But I should probably restrain myself
13:26 jnthn Sure.
13:27 masak wayland76: yes, I think you should.
13:27 wayland76 OTOH, he might respond well to people who write like him :)
13:28 masak wayland76: the three answers so far are impressing because they don't talk about the commenter. instead, they clarify the situation itself, and why it's a lot less dystopian than the commenter thinks.
13:28 jnthn Aye.
13:28 frettled Yep.
13:28 wayland76 But I will refrain.  Don't worry :)
13:28 frettled I think it's best to leave it at that.
13:28 jnthn I didn't bother commetning because so many @other had written far better comments than I could.
13:28 * frettled just thought "what a jerk".
13:29 masak note, also, that this is the type of account seemingly created just to troll.
13:29 payload joined #perl6
13:29 frettled «furry_marmot (9372) is all alone in the world.»
13:29 frettled hee-hee.
13:29 masak when I looked, the activity was limited to that comment.
13:30 wayland76 Bedtime for me.  'night all
13:30 frettled I don't even have a use Perl account, I think, so it's very easy to refrain from answering.
13:30 masak wayland76: o/
13:30 frettled wayland76: sleep well
13:31 jnthn masak: Yeah, I noted taht.
13:31 wayland76 Will do my best, sah!
13:33 masak rakudo: "foo" ~~ /bar/; say $/.from; say $/.to
13:33 p6eval rakudo 0d4fe0: OUTPUT«3␤-2␤»
13:33 masak I see that the 3 is the length of the target, but what's -2?
13:34 ejs2 joined #perl6
13:34 moritz_ .from and .to of an unsuccessful match are meaningless
13:35 nihiliad joined #perl6
13:35 masak hokay.
13:35 moritz_ masak: speaking of which, have you seen my match object visualizations?
13:36 moritz_ http://github.com/moritz/s​vg-matchdumper/tree/master
13:36 moritz_ I wanted to blog about it, but I first have to fix some technical issues with my blog
13:36 masak no, I haven't. but I will, immediately.
13:37 masak moritz_: did you add the project to proto's projects.list yet?
13:38 moritz_ masak: don't think so - but I'll do
13:38 masak moritz_: great.
13:39 masak make sure to put svg in deps.proto in the project when you do. ;)
13:39 frew__ joined #perl6
13:39 jnthn awww...so close and then Null PMC Access. :-/
13:39 masak ...so that the small benefit of using proto can work its insufficient magic. :)
13:40 jnthn rakudo: subset Even of Int where { $^n % 2 == 0 }; class Foo { has Even $.x }; Foo.new(x => 3)
13:40 p6eval rakudo 0d4fe0: OUTPUT«Assignment type check failed; expected , but got Int␤in Main (/tmp/ehru9l0rls:2)␤»
13:41 Su-Shee left #perl6
13:43 masak .oO( less than awesome error... probably ticketed already... )
13:43 jnthn masak: nod
13:47 jnthn heh
13:47 jnthn When you know you really screwed it up: a test fails with "Assignment type check failed; expected C, but got C"
13:48 masak o_O
13:48 masak I'd call that a meta-error.
13:50 jnthn it might be a punny bug
13:51 jnthn We've also been silently getting away with one or two things up until now...
13:52 jnthn I won't be too surprised if when I push, somebody's code somewhere breaks...
13:52 frettled And you know who will report it, don't you?  *grins at masak*
13:53 masak well...
13:53 jnthn Temporal.pm in the setting was actually getting away with one of those "looked OK but actually was not working" things...
13:53 jnthn :-/
13:53 ejs1 joined #perl6
13:54 jnthn In a nutshell, there were various cases where you could write has SomeType $.x
13:54 jnthn And if we failed in the lookup of that SomeType we'd silently ignore that.
13:55 masak ooh.
13:55 jnthn Well, we stored a Null PMC, which was then taken to mean "untyped".
13:55 masak rakudo: class A { has SomeType $.x }
13:55 p6eval rakudo 0d4fe0: OUTPUT«Malformed declaration at line 2, near "SomeType $"␤in Main (src/gen_setting.pm:3390)␤»
13:55 jnthn Which was OK when we had a special code-path that took care of typed attributes.
13:56 jnthn But now I've ripped that out and made it just work the standard way...it's broked. :-(
13:56 jnthn masak: No, no, you need more subtle than that.
13:56 jnthn masak: Declaring a lexical subtype was what Temporal.pm does.
13:56 jnthn my subset ...
13:56 masak subtle... ok, I can do subtle... :P
13:56 jnthn Then because of the lexicals over class boundaries issue, the lookup failed.
13:56 payload joined #perl6
13:58 masak rakudo: subset Subtle of Int where { $^n % 7 == 0 }; class A { has Subtle $.error }; say A.new(:subtle(14)).error.WHAT
13:58 p6eval rakudo 0d4fe0: OUTPUT«()␤»
13:59 frettled That was subtle.
13:59 jnthn rakudo: subset Subtle of Int where { $^n % 7 == 0 }; class A { has Subtle $.error }; say A.new(:subtle(13)) # should fail
13:59 p6eval rakudo 0d4fe0: OUTPUT«A()<0xb5686b58>␤»
13:59 jnthn fails at failing.
13:59 masak that's ticketed, I'm sure.
14:00 jnthn It is.
14:00 jnthn Thing is, it's fatal now.
14:00 jnthn Rather than a silent failure.
14:01 jnthn If that really bothers people, I may be able to put in a hack to make it not so.
14:01 masak doesn't bother me.
14:04 sri_kraih_ joined #perl6
14:12 KyleHa joined #perl6
14:12 * jnthn crosses his fingers and spectests again
14:14 takadonet jnthn: what are you changing ?
14:15 finanalyst left #perl6
14:15 moritz_ big scary trait changes, as I know him ;-)
14:16 jnthn Well, not that big and scary
14:16 jnthn Basically, traits on variables.
14:17 jnthn Which in itself doesn't seem so bad in that we haven't really supported it before officially, but actually  "my Int $x" is just sugar for "my $x of Int".
14:17 jnthn Which means it's a dispatch to trait_mod:<of>
14:17 jnthn But also I've been tidying up how trait_mod:<of> worked.
14:18 jnthn Before we had to have some inline PIR.
14:19 jnthn So it was a bit of "fun" making sure we could do that stuff from Perl 6.
14:19 jnthn But deeper, we were really cheating on "has Int $.x"
14:19 _jaldhar joined #perl6
14:19 jnthn We weren't even doing it in terms of the trait_mod
14:19 jnthn Nor were we supporting traits on attributes at all.
14:19 jnthn So it was a bit of a shuffle around to make that all work.
14:20 jnthn More special case code got deleted along the way though, so I think it's an overall win. :-)
14:24 sri_kraih joined #perl6
14:25 moritz_ I'm sure pmichaud agrees ;-)
14:25 Tene jnthn: thanks for the note about the exception bug.  I'll look into it.
14:26 jnthn Tene: Awesome, thanks. :-)
14:26 jnthn Tene++
14:26 jnthn Tene: While you're looking at these things...
14:26 jnthn Tene: a return in CATCH I think goes infinite-ish too.
14:26 jnthn Tene: Plus return should look for a handler in the lexical rather than the dynamic scope.
14:26 Tene I gave up on working on exceptions stuff a while back when I couldn't get any feedback from anyone on how they should work.
14:27 jnthn Ah, the control exception vs non-control exception stuff?
14:28 Tene No.  Just basic stuff like "In Perl 6, I want to catch an exception, and resume it.  What's the API for that?"
14:28 Tene "What's the API for marking an exception as handled or not?
14:28 Tene etc.
14:29 omega joined #perl6
14:30 Psyche^ joined #perl6
14:31 Matt-W masak: I get ++ for telling the truth? cool!
14:32 jnthn Tene: I'd imagine they're both going to be method calls on the exception object.
14:32 jnthn Tene: Ah, see here
14:32 jnthn http://svn.pugscode.org/pugs/docs/Perl6​/Spec/S32-setting-library/Exception.pod
14:32 masak Matt-W: no, you get ++ for putting the truth in a form that not everyone can.
14:33 ruoso joined #perl6
14:33 Matt-W masak: Oh so it has to be recognisable truth. Damn.
14:33 Matt-W That's just hard work that is :P
14:34 jnthn Tene: Admittedly it needs some fleshing out though. :-/
14:34 Tene A bit. :)
14:35 Tene OK, sounds great.
14:35 Tene AFK, class.
14:35 jnthn Tene: Don't feel you aren't allowed to do that fleshing out. :-)
14:37 masak Matt-W: no, I thought the tone and the maturity of the response were admirable. certainly way above what such a poster actually deserves.
14:39 jnthn I think that we have people who can write responses like that, and that others who can't have the restraint not to, is a real strength of the Perl 6 community.
14:40 * masak works himself through that maze of negations
14:40 masak oh, I misparsed. :) it wasn't as bad as I read it.
14:40 jnthn Sorry. :-)
14:41 masak not your fault. :) my parser had a glitch.
14:41 jnthn It could have been slightly better put too. :-)
14:41 masak how to I force a {} block to be a hash block?
14:42 jnthn hash
14:42 jnthn rakudo: say (hash {}).WHAT
14:42 p6eval rakudo 0d4fe0: OUTPUT«Hash()␤»
14:42 masak rakudo: say (map { hash( 1, 2 ) }, 1, 2, 3).perl
14:42 p6eval rakudo 0d4fe0: OUTPUT«["1" => 2, "1" => 2, "1" => 2]␤»
14:43 masak I want a list of hashes.
14:43 jnthn Should that really flatten, I wonder...
14:44 jnthn say (map { { 1 => 2 } }, 1, 2, 3).perl
14:44 jnthn rakudo: say (map { { 1 => 2 } }, 1, 2, 3).perl
14:44 p6eval rakudo 0d4fe0: OUTPUT«[{"1" => 2}, {"1" => 2}, {"1" => 2}]␤»
14:44 masak that's all good and well, but I don't have literal pairs in my code.
14:44 masak so I can't use that form of coercion.
14:45 jnthn "don't have literal pairs"?
14:45 jnthn Oh, you already have pair objects?
14:46 masak actually, I'm making them with an inner map.
14:46 Matt-W jnthn: It was good when that comment first appeared that there were people saying no, I can't reply to that properly. The instinctive urge to start a flame war was averted with no apparent effort.
14:46 masak but essentially, yes.
14:46 kidd_ joined #perl6
14:46 masak there will be more situations like that before Perl 6 proves itself to everyone.
14:47 Matt-W Naturally
14:47 Matt-W I'm continually correcting misconceptions and spreading the word
14:48 Matt-W This morning that nearly verged on translating #songsincode posts on Twitter...
14:48 Matt-W Probably taking things a bit far, but a lot of them look better in Perl 6 :)
14:52 jnthn OK, so I have my branch and I want to merge.
14:52 jnthn I've done git rebase master
14:52 jnthn And all looks good.
14:52 masak great.
14:52 masak rakudo: my %hash = a => "b"; say (map { {%hash} }, 1, 2, 3).perl
14:52 p6eval rakudo 0d4fe0: OUTPUT«["a" => "b", "a" => "b", "a" => "b"]␤»
14:53 masak it flattens!
14:53 masak what should I do?
14:53 jnthn Ouch, that doesn't look right.
14:53 masak "All I want for Christmas is an Array of Hashes..." :P
14:53 jnthn rakudo: my %hash = a => "b"; say (map { \%hash }, 1, 2, 3).perl
14:53 p6eval rakudo 0d4fe0: OUTPUT«[{"a" => "b"}, {"a" => "b"}, {"a" => "b"}]␤»
14:54 masak ah, there you go. jnthn++
14:54 jnthn Matt-W: OK, so I know I could do git-gui and just merge in there.
14:54 jnthn I'm curious what the magical incantation is from the command line though.
14:54 * Matt-W thinks jnthn meant masak
14:54 Matt-W tab completion strikes again
14:54 jnthn yes, I wanted masak...sorry
14:55 jnthn Matt-W: If you know the answer you can tell me though. ;-)
14:55 masak jnthn: oh, it's just (in master) 'git merge <branch>'
14:55 Matt-W no I don't, sorry
14:55 Matt-W not really done git merging yet
14:55 jnthn masak: Wow.
14:55 jnthn masak: It appears to have Just Worked.
14:56 masak jnthn: I'm teeling you!
14:56 masak it's heavenly.
14:56 jnthn masak: Do I need to now do any kind of commit, or is it just a push?
14:56 masak just a push.
14:56 jnthn OK
14:56 jnthn oh wait
14:56 jnthn I broke the occasional workingness of //=
14:56 jnthn With my
14:56 pmichaud good morning, #perl6
14:57 masak pmichaud: o/
14:57 adam-pwgsc joined #perl6
14:57 jnthn Morning, pm
14:57 KyleHa The way git Just Works scares me sometimes.  It Works but doesn't Say anything, and I think, "OMG!  Is it OK?"
14:58 mkelly32 just add -v to everything, then
14:58 pmichaud KyleHa: you would prefer "I just did what you asked me to.  I encountered a few problems, but took care of them for you.  Yes, really, it works!  You can thank me later."
14:58 pmichaud ?
14:58 KyleHa I think -v is what I want.
14:59 KyleHa svn and svk are so much more chatty.  It's comforting.
14:59 masak git is like chocolate and ponies and a good shower.
14:59 pmichaud I wonder if we should put an error message in Rakudo that says  "Unable to find suitable error exception at foo.pl line 275"
14:59 masak I want to hug git with oven mittens!
15:03 masak joined #perl6
15:03 lionWrk joined #perl6
15:03 adam-pwgsc joined #perl6
15:03 kidd_ joined #perl6
15:03 ruoso joined #perl6
15:03 Patterner joined #perl6
15:03 omega joined #perl6
15:03 sri_kraih joined #perl6
15:03 _jaldhar joined #perl6
15:03 KyleHa joined #perl6
15:03 payload joined #perl6
15:03 nihiliad joined #perl6
15:03 meppl joined #perl6
15:03 takadonet joined #perl6
15:03 fridim_ joined #perl6
15:03 mtve joined #perl6
15:03 xomas_ joined #perl6
15:03 colomon joined #perl6
15:03 guest_007 joined #perl6
15:03 abra joined #perl6
15:03 rfordinal joined #perl6
15:03 zamolxes joined #perl6
15:03 M_o_C joined #perl6
15:03 cj_ joined #perl6
15:03 charsbar joined #perl6
15:03 drbean joined #perl6
15:03 cotto joined #perl6
15:03 mikehh joined #perl6
15:03 orafu joined #perl6
15:03 japhb joined #perl6
15:03 jrockway joined #perl6
15:03 rjh joined #perl6
15:03 Khisanth joined #perl6
15:03 dalek joined #perl6
15:03 ingy joined #perl6
15:03 ascent joined #perl6
15:03 broquaint joined #perl6
15:03 obra_ joined #perl6
15:03 arthur-_ joined #perl6
15:03 araujo joined #perl6
15:03 Cataztrohpy joined #perl6
15:03 ruz joined #perl6
15:03 christine joined #perl6
15:03 andreasg_ joined #perl6
15:03 nicomen joined #perl6
15:03 spinclad joined #perl6
15:03 lucs joined #perl6
15:03 leedo joined #perl6
15:03 mee joined #perl6
15:03 cognominal joined #perl6
15:03 eldragon2 joined #perl6
15:03 [particle] joined #perl6
15:03 jnthn joined #perl6
15:03 synth^2 joined #perl6
15:03 simcop2387 joined #perl6
15:03 Caelum joined #perl6
15:03 he_ joined #perl6
15:03 p6eval joined #perl6
15:03 tarbo2_ joined #perl6
15:03 cxreg joined #perl6
15:03 wayland76 joined #perl6
15:03 literal joined #perl6
15:03 carlin_ joined #perl6
15:03 cj joined #perl6
15:03 PZt joined #perl6
15:03 tomaw_- joined #perl6
15:03 silug joined #perl6
15:03 Woody2143 joined #perl6
15:03 cls_bsd joined #perl6
15:03 Grrrr joined #perl6
15:03 mkelly32 joined #perl6
15:03 jisom joined #perl6
15:03 RonOreck joined #perl6
15:03 athomason joined #perl6
15:03 gfldex joined #perl6
15:03 pmichaud joined #perl6
15:03 chipdude joined #perl6
15:03 IRSeekBot joined #perl6
15:03 pjcj joined #perl6
15:03 hatseflats joined #perl6
15:03 breinbaas joined #perl6
15:03 yath joined #perl6
15:03 diakopter joined #perl6
15:03 TimToady joined #perl6
15:03 Helios joined #perl6
15:03 Trey joined #perl6
15:03 lambdabot joined #perl6
15:03 adhoc joined #perl6
15:03 hcchien joined #perl6
15:03 huf joined #perl6
15:03 mattp joined #perl6
15:03 reqamst joined #perl6
15:03 solarion joined #perl6
15:03 youwin joined #perl6
15:03 PerlJam joined #perl6
15:03 patmat joined #perl6
15:03 Ingmar joined #perl6
15:03 felipe joined #perl6
15:03 awwaiid joined #perl6
15:03 cookys joined #perl6
15:03 kst joined #perl6
15:03 zol joined #perl6
15:03 sunnavy joined #perl6
15:03 bloonix_ joined #perl6
15:03 bigpresh_ joined #perl6
15:03 edenc joined #perl6
15:03 cosimo joined #perl6
15:03 c9s joined #perl6
15:03 krunen_ joined #perl6
15:03 integral joined #perl6
15:03 mberends joined #perl6
15:03 Maddingue joined #perl6
15:03 rafl joined #perl6
15:03 shachaf joined #perl6
15:03 Tene joined #perl6
15:03 Aisling joined #perl6
15:03 sbp joined #perl6
15:03 nsh joined #perl6
15:03 gabiruh joined #perl6
15:03 kolibrie_ joined #perl6
15:03 Gothmog_ joined #perl6
15:03 kent\n joined #perl6
15:03 jantore joined #perl6
15:03 frew joined #perl6
15:03 baest joined #perl6
15:03 BinGOs joined #perl6
15:03 wolverian joined #perl6
15:03 KatrinaTheLamia joined #perl6
15:03 gbacon joined #perl6
15:03 eiro joined #perl6
15:03 moritz_ joined #perl6
15:03 ilogger2 joined #perl6
15:03 Juerd joined #perl6
15:03 jjore joined #perl6
15:03 xinming joined #perl6
15:03 mj41 joined #perl6
15:03 cono joined #perl6
15:03 dmpk2k joined #perl6
15:03 buu joined #perl6
15:03 elmex joined #perl6
15:03 lisppaste3 joined #perl6
15:03 PacoLinux joined #perl6
15:03 s1n joined #perl6
15:03 krakan joined #perl6
15:03 antiphase joined #perl6
15:03 renormalist joined #perl6
15:03 akl joined #perl6
15:03 nothingmuch joined #perl6
15:03 Matt-W joined #perl6
15:03 Eevee joined #perl6
15:04 justatheory joined #perl6
15:06 adam-pwgsc masak: What gui toolkits are supported? Where can I find this out?
15:07 masak adam-pwgsc: I know Tene has something Enlightenment-y working. Su-Shee had something also, I think.
15:08 * Matt-W &
15:08 Tene Yes, if you want to use a pretty but obscure and awkward to obtain toolkit, I have bindings for some of the enlightenment libraries.
15:08 MoC` joined #perl6
15:10 adam-pwgsc Cool. I'll have to look up what it's like compared to GTK+ (what I'm familiar with)
15:10 pmichaud Tene: rdice has been wanting to learn more about NCI stuff in Parrot, could I get him in touch with you?  (and perhaps japhb also?)
15:11 gfldex_ joined #perl6
15:11 Tene pmichaud: Yes, that would be fine.
15:11 pmichaud okay, great.  I'll send email.
15:13 jnthn meh, //= and friends dumped the LHS's PAST nodes into the PAST tree twice.
15:13 jnthn No wonder it was messed.
15:14 * jnthn spectets again and hopes this will be the last thing he needs to do before pushing.
15:14 alester joined #perl6
15:15 jnthn afk for 20-30 mins or so
15:16 alester joined #perl6
15:18 japhb pmichaud, you are welcome to pass my nick on.
15:18 pmichaud japhb:  excellent!
15:20 Tene NO SHUT UP I GET TO HELP HIM
15:25 carlin sub foo {}; say foo.WHAT;
15:25 carlin oops
15:25 carlin rakudo: sub foo {}; say foo.WHAT
15:25 p6eval rakudo 0d4fe0: OUTPUT«List()␤»
15:26 * adam-pwgsc is confused how that is anything
15:26 pmichaud it's the same as
15:26 pmichaud rakudo:  sub foo {};  say foo().WHAT;
15:26 p6eval rakudo 0d4fe0: OUTPUT«List()␤»
15:27 moritz_ shouldn't that be Nil?
15:27 pmichaud I'm still waiting to find out if Nil is a type.  As of YAPC::NA, it wasn't.  :-)
15:28 masak Nil feels like a subtype to me.
15:29 adam-pwgsc So it's nothing, and nothing can't be a scalar because a scalar is something, so it needs to be a list? Why is is a list?
15:29 * adam-pwgsc should read more about perl6
15:29 pmichaud adam-pwgsc: I wouldn't take Rakudo as being accurate on this point.
15:30 pmichaud There are still parts of the specification regarding lists and return values that are being fleshed out, so Rakudo is in a quasi-state of "do what seems to work even if it's not accurate by the spec"
15:31 adam-pwgsc Nifty. So Rakudo.state.WHAT eq "List()"? ;)
15:32 pmichaud "Yes."   :-)
15:34 jnthn oh yay
15:34 jnthn Eliminating the special case code also eliminated a bug in it.
15:34 jnthn We win 2 TODO spectests
15:34 takadonet good job jnthn!
15:35 masak jnthn++
15:36 jnthn That means I can close another masakticket. ;-)
15:36 jnthn KyleHa++ # writing spectests and noting which RT ticket they related to next to them
15:39 KyleHa In my documentation dream world, every bug refers to a spec/requirement that it violates and to the test that shows its presence or absence.  Every requirement refers to the test that demonstrates it and vice versa.  In the real world, I dream a lot.  8-)
15:40 adam-pwgsc In the future, would it be possibly for me to, theoretically, use a python library but write perl code that interfaces with it? Or do I not understand Rakudo and Parrot?
15:40 masak adam-pwgsc: you understand correctly.
15:40 Tene adam-pwgsc: that's exactly right.
15:40 jnthn adam-pwgsc: That is a goal of Parrot, yes.
15:40 PerlJam adam-pwgsc: if both python and perl are running on parrot.
15:41 jnthn adam-pwgsc: In fact, there's already (not for Python, but Ruby) been some early proof of concept demonstration.
15:41 Tene Today, you can write Perl 6 code that interfaces with any of Ruby, Scheme, and TCL.
15:41 Tene I started adding support for Python, but lost momentum and didn't finish.
15:41 jnthn See http://blogs.gurulabs.com/stephen/2009/​05/cross-language-library-loading.html
15:42 adam-pwgsc That's awesome.
15:42 PerlJam yeah, Tene++
15:42 adam-pwgsc Is it automatic, or will devs have to add specific interfaces for each language?
15:42 jnthn Happily, both TCL and Ruby on Parrot I know are seeing active development too. Scheme may well also be...
15:42 jnthn Tene++ indeed.
15:43 Tene adam-pwgsc: the language just needs to support a single interface.
15:43 Tene and all languages can use that same interface from any other.
15:43 Tene So you just need "inter-language library loading support", instead of support for each other individual language.
15:45 pugs_svn r28047 | jnthn++ | [t/spec] Unfudge a couple of tests for Rakudo.
15:46 jnthn KyleHa: Dreams of making things even better aren't a bad thing to have. :-)
15:46 jnthn oops
15:46 jnthn That dalek flood was me comitting too much in one go.
15:46 jnthn ;-)
15:47 dalek joined #perl6
15:47 jnthn dalek: You need to speak more slowly when there's a lot of commits. :-)
15:47 jnthn Not self-exterminate.
15:48 Infinoid joined #perl6
15:51 carlin rakudo: sub foo; # wrong ofc
15:51 p6eval rakudo 0d4fe0: OUTPUT«Malformed routine definition at line 2, near "foo; # wro"␤in Main (src/gen_setting.pm:3390)␤»
15:51 carlin rakudo: say foo;
15:51 p6eval rakudo 0d4fe0: OUTPUT«Could not find non-existent sub foo␤»
15:52 carlin bah
15:52 carlin on the command line, when executed after each other I get
15:52 carlin maximum recursion depth exceeded
15:52 carlin ?
15:52 jnthn That's quite an achievement.
15:52 * jnthn tries it
15:52 dalek rakudo: 59cb023 | jnthn++ | src/parser/actions.pm:
15:52 dalek rakudo: Fix //=, ||= and &&= to only evaluate the LHS once. Fixes various quirks, including a failure exposed by recent refactors as a result of the double-evanluation.
15:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​9cb0232159cac5bd0be828eb791514fdd733fce
15:52 jnthn carlin: bwaha
15:53 jnthn Can reproduce it here too.
15:53 PerlJam carlin: that's what I get too.
15:53 adhoc_ joined #perl6
15:53 jnthn carlin: File rakudobug.
15:53 nihiliad joined #perl6
15:59 * carlin filed bug
15:59 carlin I finally found one that wasn't already known, heh
16:00 jnthn Congrats. :-)
16:02 rfordinal joined #perl6
16:02 PerlJam carlin: I bet you can find more in the same vein.  Try it again with methods and submethods.
16:02 nErVe joined #perl6
16:08 jauaor joined #perl6
16:10 jan_ joined #perl6
16:20 pugs_svn r28048 | jnthn++ | [t/spec] Revise tests for traits on variables, and add tests for traits on attributes.
16:21 duke_leto joined #perl6
16:22 duke_leto Hi! I have a problem using rakudo, I’m afraid… I installed it from git yesterday and added the install directory to $PATH
16:23 duke_leto but whenever I try to run perl6, I get the message “Null PMC access in isa()”
16:23 dalek rakudo: 99f4e45 | jnthn++ | t/spectest.data:
16:23 dalek rakudo: Add S14-traits/attributes.t and S14-traits/varialbes.t to spectest.data.
16:23 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​9f4e450130e4a8e56f23d5f4351ac7d37f4bc61
16:23 duke_leto I don’t think that one is new, but I haven’t found a solution :-(
16:23 duke_leto does anyone know how to fix this?
16:24 jnthn duke_leto: make install
16:24 jnthn And then use the installed version.
16:25 duke_leto okay, I'll try :-) thanks.
16:25 * duke_leto is happy.
16:25 jnthn :-)
16:26 duke_leto is that a common problem?
16:26 jnthn It's a change from how things used to be, so quite a few people have been asking about it.
16:26 duke_leto How to get Rakudo Perl 6 | Rakudo.org <http://rakudo.org/how-to-get-rakudo> says nothing about “make install”
16:26 PerlJam duke_leto: now that there's an install target, it's becoming common  :)
16:26 jnthn It was noted in the release announcement and README.
16:26 duke_leto :-/
16:26 jnthn Oh, that page wasn't updated yet?
16:26 duke_leto I thought I had read those
16:26 jnthn I've got an edit bit there...
16:27 PerlJam it does say "$make install"
16:27 duke_leto oh, yes…
16:27 duke_leto seems it has been too late yesterday :-/ sorry …
16:28 jnthn no probs :-)
16:28 jnthn PerlJam: Yeah, it does already.
16:28 jnthn :-)
16:28 jnthn I figure people will just get used to it with time. Just one of those changes. :-)
16:29 PerlJam Hrm. when I try to login to rakudo.org it takes me to a blank page: http://rakudo.org/node?destination=node
16:29 duke_leto I heard rakudo is quite usable for some time now. Gonna start a new project in p6 :-) So probably you'll see more of me for the time being ;-)
16:29 jnthn Cool
16:30 PerlJam duke_leto: what's the project?
16:32 carlin how difficult would it be to make it say about "make install" rather than just giving a Null PMC message?
16:32 jnthn Not sure
16:32 pmichaud very.
16:32 jnthn I guess we'd not handle it where it throws
16:32 pmichaud the underlying problem is that parrot doesn't throw an exception when a .load_library fails.
16:32 jnthn But instead figure out what it's fidning as null and just chck it at startup.
16:32 duke_leto PerlJam: ticgit is borked, so I put my tickets in a plain text file. I liked the style, so I'll put something together. Not a big thing
16:33 pmichaud We *could* do a test at the beginning to make sure the library got loaded.
16:33 jnthn pmichaud: It'd not hurt to do taht.
16:33 jnthn *that
16:33 duke_leto The plan is that the system can be used without the program, too… And *still* look good ;-)
16:33 pmichaud agreed.  You want to do it or me?
16:33 pmichaud make it part of the :load :init in perl6.pir
16:34 pmichaud right before/after doing the load_bytecode of PCT
16:34 jnthn I can do it.
16:34 jnthn Do you know what specifically it finds null, off hand?
16:34 jnthn If not, I'll go hunt it down.
16:34 Front_slash joined #perl6
16:34 pmichaud we don't need to check for null
16:34 pmichaud we need to make sure that the Rakudo PMC types are available and that the opcodes are available.
16:35 pmichaud trapping the individual null exception is more of a symptom than the underlying problem.
16:35 jnthn No no
16:36 jnthn I meant, try and get the Rakudo PMC type or something
16:36 jnthn And if it gives us a null, that's how we know.
16:36 pmichaud any of the pmc types should be sufficient.
16:36 jnthn Aye.
16:43 takadonet Anyone else having trouble using a class with role when both are in different files in the same directory? The class cannot seem to find the Role.
16:43 jnthn takadonet: What error are you seeing?
16:44 takadonet Unable to parse class definition at line 1, near "does role1"
16:44 takadonet in Main (src/gen_setting.pm:1548)
16:44 jnthn takadonet: You did write a use statement, yes?
16:45 takadonet ......
16:45 jnthn If it's not that, I'd be interested to see a nopaste (or cut down nopaste if you prefer) of the code.
16:45 jnthn (or you can pass one over anyway if you like)
16:45 jnthn If you are going to use some code from a different file, you need a "use" statement to load that module.
16:46 jnthn So file MyRole.pm has like role MyRole { ... }
16:46 jnthn Then in MyClass.pm you need
16:46 jnthn use MyRole;
16:46 jnthn class MyClass does MyRole { ... }
16:46 takadonet jnthn: I forgot my use statement..... hate doing stupid mistakes....
16:46 jnthn :-)
16:46 jnthn Phew, not a Rakudo bug this time. ;-)
16:46 PerlJam "unable to parse" probably needs to read "unable to find role X"
16:47 PerlJam (that might point to the problem a little better)
16:48 jnthn std: class MyClass does MyRole { }
16:48 p6eval std 28048: OUTPUT«ok 00:02 37m␤»
16:48 jnthn erm, wtf?
16:48 jnthn std: my MyRole $x
16:48 p6eval std 28048: OUTPUT«[31m===[0mSORRY![31m===[0m␤In "my" declaration, typename MyRole must be predeclared (or marked as declarative with :: prefix) at /tmp/nsMAbYyAKZ line 1:␤------> [32mmy MyRole[33m⏏[31m $x[0m␤FAILED 00:02 37m␤»
16:48 jnthn ...that's more like it...
16:49 jnthn TimToady: std surprised me a little by not barfing in class declaration above...
16:50 TimToady currently std doesn't check anything resembling a trait
16:50 jnthn TimToady: Ah, does trait_mod:<does> not look to parse a typename?
16:51 TimToady currently parses as module_name, fwiw
16:52 jnthn ok
16:53 dalek rakudo: ef035f4 | jnthn++ | perl6.pir:
16:53 dalek rakudo: Check for when we have missing dynexts at startup and emit a nice error message.
16:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​f035f471b9fd2c1686bbd28bf341c3cfe56432c
16:53 bionoid joined #perl6
16:55 fridim__ joined #perl6
17:05 pmurias joined #perl6
17:07 reqamst moritz_: I am trying to write simple SVG tree generator for tufte
17:07 reqamst moritz_: but it's no based on the svg-plot
17:07 reqamst not
17:08 adam-pwgsc How soon should we be expecting Perl6 books, do you guys think?
17:08 reqamst eee... I am pretty sure that I saw one
17:08 moritz_ reqamst: that's good. svg-plot is a quick shot and not very good architecture
17:09 reqamst http://oreilly.com/catalog/9780596004996/
17:09 Front_slash joined #perl6
17:09 TimToady that's getting pretty outdated
17:09 reqamst hmm... 2003... huh, yes
17:10 adam-pwgsc Hm
17:10 reqamst google for Perl 6 Books and Media
17:10 TimToady adam-pwgsc: I think next year we will have at least one good book. :)
17:10 reqamst first match
17:10 adam-pwgsc TimToady: I'll be buying yours, that's for sure :)
17:11 Su-Shee joined #perl6
17:11 Su-Shee back.
17:11 cdarroch joined #perl6
17:12 moritz_ wb Su-Shee
17:15 * TimToady fails his social skills roll again...
17:18 takadonet what did you do TimToday?
17:18 TimToady saw Su-Shee come back and fail to welcome her; fortunately, moritz_++ stepped up to do it
17:19 TimToady at least I didn't roll a critical failure :)
17:19 TimToady I always liked Teenagers From Outer Space, where you could also roll "Overdoing It"
17:20 reqamst first match
17:20 TimToady can't, you already first matched 10 minutes ago
17:20 reqamst uhm
17:21 * Su-Shee is perfectly fine with trading "greetings" for "getting perl 6 done" :)
17:21 * TimToady is gratified to hear it, and hopes backlogging counts :)
17:23 takadonet Can you determine if an attribute has been set before like 'predicate' in Moose?
17:24 PerlJam takadonet: you mean you want to distinguish between the default undef you get from "has $.foo" and an undef that was explicitly put there?
17:24 PerlJam (because otherwise, you just do a definedness check)
17:24 takadonet PerlJams: Yes
17:26 PerlJam takadonet: I don't know of a way right off
17:26 TimToady takadonet: unfortunately that will probably depend on the representation
17:26 TimToady a C struct is unlikely to be able to tell you that, for instance
17:27 takadonet TimToday: The attribute is an int and assigning 0
17:28 TimToady a P6opaque can *probably* tell you, if it's based on a hash
17:28 molaf joined #perl6
17:28 takadonet P6opaque?
17:28 TimToady it really comes down to whether the container supports "exists" or not
17:28 TimToady the default P6 object representation
17:29 TimToady not even the object is supposed to care what's inside a P6opaque
17:29 TimToady unlike in P5, where you might know it's a hash
17:30 jnthn If you promise to always change it by the accessor, you could have an accessor that mixes in a "changed" attribute on assign or something like that.
17:30 TimToady so basically, we could reserve some way to ask the question, but we cannot guarantee that the question has an answer
17:30 jnthn erm, s/attribute/property/
17:30 TimToady yes, but a C struct probably won't support such mixins very easily
17:31 TimToady in general it's better to rely on BUILDs firing off in the right order
17:31 jnthn True.
17:31 TimToady which is why we have BUILDALL as a builtin
17:52 dalek rakudo: 0a5b07e | jnthn++ | src/ (2 files):
17:52 dalek rakudo: Fix up add_method on the metaclass to be more inline with the HOW API proposed by smop.
17:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​a5b07e1ac84a78c356a73d0dfdffe223b86bbd6
18:19 Front_slash joined #perl6
18:21 hercynium joined #perl6
18:22 hercynium perl6: @foo = <x y z>.pick(); say @foo
18:22 rindolf joined #perl6
18:22 rindolf Hi all.
18:22 p6eval elf 28048: OUTPUT«Global symbol "$a_foo" requires explicit package name at (eval 123) line 3.␤Global symbol "$a_foo" requires explicit package name at (eval 123) line 4.␤ at ./elf_h line 5881␤»
18:22 p6eval ..rakudo 0d4fe0: OUTPUT«Symbol '@foo' not predeclared in <anonymous> (/tmp/dRLQjoYfVr:2)␤in Main (src/gen_setting.pm:3390)␤»
18:22 p6eval ..pugs: OUTPUT«*** ␤    Unexpected " ="␤    expecting "::"␤    Variable "@foo" requires predeclaration or explicit package name␤    at /tmp/DmpH3Uila6 line 1, column 5␤»
18:22 jnthn hi rindolf
18:22 rindolf jnthn: hi.
18:22 hercynium sorry... will try ahain in prv
18:22 rindolf jnthn: there's a jonathan__ on #perl now.
18:22 rindolf jnthn: but he seems to be a newbie.
18:22 rindolf jnthn: what's cooking?
18:26 jnthn rindolf: Ah, not me...
18:27 rindolf jnthn: you're not getting cooked?
18:27 jnthn rindolf: Well thankfully not, actually that was more in regard to the jonathan__ on #perl. ;-)
18:27 jnthn Well, been doing various Rakudo bits...
18:27 jnthn Traits stuff.
18:27 * rindolf cooks and eats jnthn
18:28 rindolf Q: What's cooking? A: You are!
18:28 rindolf jnthn: ah.
18:28 rindolf Been a while since I've played with Rakudo.
18:28 * jnthn wonders if he causes indigestion...
18:28 rindolf Maybe I'll convert the CPAN Math::GrahamFunction to Rakudo.
18:30 jnthn May be worth trying. :-)
18:30 Su-Shee hi rindolf
18:30 rindolf Hi Su-Shee
18:30 rindolf Su-Shee: what's up?
18:31 rindolf Su-Shee: how was your first week at your new job?
18:31 rindolf Today I finalised http://www.shlomifish.org/philosophy/co​mputers/open-source/foss-licences-wars/
18:31 jnthn rindolf: Yeah, I just saw the post about that.
18:31 jnthn (On the Israel PM list)
18:32 rindolf jnthn: ah.
18:32 jnthn I'm somehow still subscribed. :-)
18:32 rindolf jnthn: didn't know you were subscribed.
18:32 rindolf I'm subscribed to lots of PM groups.
18:32 Su-Shee rindolf: well I've been told today "well, you're new and have fresh eyes on our code, tell us what you don't like" (gladly :))
18:32 jnthn Yeah, I subscribed around the time I was coming to the Perl Workshop there.
18:32 rindolf Melbourne , Chicago, LA, Sydney, Windycity, NY, San-Fran.
18:32 rindolf Su-Shee: :-)
18:33 rindolf Not on London.pm, though.
18:33 Su-Shee rindolf: besides that: friendly, relaxed collegues, not too bad perl for "it's a decade old".
18:33 jnthn New blog post: http://use.perl.org/~Jonath​anWorthington/journal/39504
18:33 rindolf Su-Shee: ah.
18:34 jnthn rindolf: Are there any US cities you do like, 'cus you just named a lot of the ones I know. ;-)
18:34 rindolf jnthn: I recall liking San-Fransisco.
18:34 jnthn Oh wait, did you mean those are the PM groups you subscribe to?
18:34 rindolf And Charlotte wasn't too bad.
18:34 jnthn :-)
18:34 rindolf jnthn: yes.
18:34 jnthn Ah
18:34 jnthn I thought it was what you didn't like globally. ;-)
18:35 rindolf jnthn: oh, no.
18:35 rindolf jnthn: I'm also on Birmingham.pm
18:35 * jnthn isn't doing very well with the whole following conversations thing today.
18:35 rindolf But it's been awfully quiet lately.
18:36 rindolf Su-Shee: ah.
18:37 rindolf Su-Shee: is it using CGI.pm?
18:37 rindolf Su-Shee: is it really 1MegaLOCs?
18:37 duke_leto uhm… I knew I’d bug you ;-) What’s wrong with this line:
18:37 duke_leto my @tickets[* ; *];
18:37 duke_leto perl6 says: “Statement not terminated properly at line 7, near "[* ; *];\n\n"”
18:37 Su-Shee rindolf: it's short before CGI.pm - apache 1 with mod_perl 1 ;)
18:38 Su-Shee rindolf: 700.000 LOC
18:38 rindolf Su-Shee: ah.
18:38 rindolf Su-Shee: ah.
18:38 rindolf Impressive.
18:38 rindolf Su-Shee: lots of replacement for CPAN stuff?
18:38 rindolf replacements even.
18:38 jnthn duke_leto: It's probably just fine Perl 6, we just don't support that syntax in Rakudo yet.
18:38 Su-Shee rindolf: but they got their basic idea right, so it's actually really just cleaning up the code style and modernize the "we're doing web differently today"
18:39 duke_leto :-( What else can I do to get multi-dim arrays
18:39 duke_leto ??
18:39 jnthn duke_leto: For now, I think folks just nest arrays in arrays.
18:39 duke_leto oh, I see :-)
18:40 jnthn duke_leto: As far as I know though, @foo[1;2] and @foo[1][2] will probably give you the same thing.
18:40 jnthn When we do support the former.
18:40 rindolf How is @foo[1;2,1;3] defined?
18:41 jnthn See section Cascaded subscripting of multidimensional arrays
18:41 jnthn In S09.
18:41 jnthn And sections around it.
18:41 jnthn http://svn.pugscode.org/pugs/​docs/Perl6/Spec/S09-data.pod
18:41 jnthn Yes, S09 agrees with what I just said.
18:42 zamolxes joined #perl6
18:43 adam-pwgsc Hey Su-Shee, are you the su-shee on schreibsturm.org?
18:43 rindolf Hmmm...
18:44 Su-Shee adam-pwgsc: yes. :)
18:45 _Pb joined #perl6
18:45 adam-pwgsc Sweet! After reading your latest blog post "Pretty Perl" I was wondering if there's any real-time graphic libraries, perhaps specifically for games, that you know of?
18:45 rindolf Su-Shee: I had falafel this evening.
18:46 rindolf adam-pwgsc: there's SDL.pm
18:46 rindolf adam-pwgsc: which has recently resumed maintenance.
18:46 Su-Shee adam-pwgsc: SDL would also be my first tip.
18:46 duke_leto Uhm… and what does “No applicable candidates found to dispatch to for 'push'” want to tell me? :-(
18:46 adam-pwgsc Really! I thought it was dead. This is interesting news :)
18:47 PerlJam duke_leto: what does the code look like?
18:47 Su-Shee adam-pwgsc: pay special attention to "clutter", they look like the next "graphical toolkit to use" candidate.
18:47 duke_leto my @tickets;
18:47 duke_leto
18:47 duke_leto push(@tickets[$currentTicket], $line);
18:47 duke_leto
18:47 adam-pwgsc Would it be reasonable to use cairo for real-time graphics?
18:47 PerlJam duke_leto: no candidates means you have a multi, but what you tried passing didn't match any signatures.
18:48 PerlJam (I think)
18:48 Su-Shee adam-pwgsc: cairo does 2d svg vector and only that.
18:48 jnthn duke_leto: What is @tickets[$currentTicket] initialized to?
18:48 jnthn duke_leto: Oh, actually...
18:48 Su-Shee adam-pwgsc: and only generating it, not loading existing svg files.
18:48 * jnthn wonders if an array is meant to auto-vivify there anyway...
18:48 duke_leto jnthn: It isn’t…
18:49 adam-pwgsc Su-Shee: Oh, I see. So I would need some other library to merge the cairo stuff with bitmaps... hrm.
18:49 jnthn duke_leto: I can't remember off-hand if that is meant to auto-vivify, maybe smebody else does...
18:49 jnthn I see now why you wanted to declare a multi-dimensional array. :-)
18:49 duke_leto :-/ :-)
18:49 duke_leto well…
18:50 jnthn No doubt you can work around it with @tickets[$currentTicket] //= []
18:50 Su-Shee adam-pwgsc: hence me recommending clutter. take a look at it, it's kind of mix of cairo, gl and more
18:50 jnthn I'm sure others have been doing stuff with nested arrays of late...
18:51 duke_leto what does //= [] do?
18:51 adam-pwgsc Su-Shee: It does sound very nice! Thank you
18:51 PerlJam jnthn: I would *expect* it to autovivify there, dunno if that's what supposed to happen.
18:51 adam-pwgsc Probably exactly what I'm looking for actually.
18:51 jnthn // is "defined or"
18:51 jnthn [] is empty array
18:51 jnthn So it's just setting it - if it's undefined - to an empty array
18:51 jnthn Then the push would work.
18:51 jnthn Not ideal, I know.
18:52 jnthn PerlJam: Can't remember where the synopses say...
18:52 Su-Shee adam-pwgsc: and if you bind it to parrot and rakudo, I'll test every single line and write documentation.
18:52 jnthn =head1 Autovivification
18:52 jnthn In S09
18:53 duke_leto thanks, jnthn :-)
18:53 adam-pwgsc Su-Shee: I'll look into clutter a bit more, but I'll let you know if I do :) Thanks!
18:54 jnthn However, I need to eat something before I'm going to be able to understand that. :-)
18:54 * jnthn fried his brain sorting out traits today
18:58 Su-Shee and another round of perl 6 bashing.. gee, this is such a nice community and so very much helpful to bring perl forward as a whole..
19:01 _Pb hehe
19:01 _Pb my fault, i guess
19:02 Su-Shee _Pb: no. it's the same every time.
19:04 Su-Shee but who cares.. let the people decide.. ;)
19:06 [particle] joined #perl6
19:13 tann joined #perl6
19:14 tann rakudo: (1..5).[*-1].say
19:14 p6eval rakudo 0d4fe0: OUTPUT«5␤»
19:16 tann rakudo: (1..5).[3-*].perl.say
19:16 p6eval rakudo 0d4fe0: OUTPUT«undef␤»
19:19 duke_leto yay! So far, it works quite well :-) I’ll return in a couple of hours… good night :-)
19:19 duke_leto left #perl6
19:20 tann joined #perl6
19:22 explore joined #perl6
19:27 _Pb left #perl6
19:52 masak joined #perl6
20:01 masak TimToady: oh, I thought I was the only one who had seen "Teenagers from Outer Space". :)
20:03 sjohnson i think i should start a Perl 6 faq
20:03 jnthn yayitsmasak
20:03 sjohnson that answers the lesser known questions.. such as, "Will a Camel Book equivalent ever be available for Perl 6?"
20:03 Su-Shee sjohnson: wasn't there already one?
20:04 Su-Shee sjohnson: http://dev.perl.org/perl6/faq.html
20:07 sjohnson this is a good faq
20:07 sjohnson thanks Su-Shee
20:07 sjohnson i was worried most faq's would be like, "What is Perl 6?"
20:07 sjohnson as the only question
20:07 masak well... what is it? :)
20:07 Su-Shee maybe we can move it over to perl6-projects.org?
20:07 sjohnson masak: Perl 6 == a big deal
20:09 jrtayloriv joined #perl6
20:09 masak I want it to be known that Tene and I are no longer the only Perl 6 game developers: http://twitter.com/quietfanatic/status/3456400629
20:10 reqamst I'm rather new with perl6 and I think information should be stored in one place
20:10 masak reqamst: that's a laudable ideal; not so easy in practice.
20:10 reqamst it's difficult to search every other things on different places
20:10 masak reqamst: mostly beacuse this is a very distributed kind of effort.
20:11 reqamst masak: how about storing copies or links in one place?
20:11 masak that said, it could indeed be more centralized than it is today.
20:11 jnthn On http://dev.perl.org/perl6/ - does anyone actually have access to edit that?
20:11 masak reqamst: well, that's what perl6-projects is for.
20:12 jnthn I see a decent bit links to the wiki now...
20:12 sjohnson i would be happy to manage the faq, and ask some more questions
20:12 reqamst some are outdated and it's problematic for new ones
20:13 sjohnson ... noes
20:15 reqamst but it's something cool in this all chaos :)
20:16 Su-Shee no, it's not. It's really annoying if you're trying to start something and have to collect all the bits and pieces first. (I'd like to say "klauben" here, but I don't know it in english. ;)
20:19 masak Su-Shee: Google Translate says 'pick out'. maybe 'select' or 'weed out' is what you're looking for?
20:20 reqamst hmmm... right. I'm strenuous, but not everyone must be
20:20 Su-Shee masak: all not really fitting, I just checked my 2 kilo paper dictionary ;) too slang-ish in this context I think.
20:20 masak shame. I was curious. :)
20:21 reqamst digg?
20:21 rindolf joined #perl6
20:21 rindolf Hi all.
20:21 rindolf Su-Shee: here?
20:22 masak phenny: tell missingthepoint (when he's around) that I've made great progress on my Text::CSV module today. all but one TODO ideas have been implemented. would love to have chat about the merge soon.
20:22 phenny masak: I'll pass that on when missingthepoint is around.
20:22 Su-Shee ah, let's see what dict.leo.org says.. "to cull" hm.
20:22 Su-Shee rindolf: yes.
20:22 masak Su-Shee: I think 'cull' might be it, yes.
20:22 masak rindolf: oh hai.
20:22 rindolf masak: hai hai.
20:22 rindolf Su-Shee: what's up?
20:23 Su-Shee rindolf: planning the weekend between p6 and chores. ;)
20:23 rindolf Su-Shee: ah.
20:24 rindolf Su-Shee: what kind of chores?
20:25 Su-Shee rindolf: weekly round-up of washing clothes due to work and getting some real vegetables to eat.
20:25 rindolf Su-Shee: ah.
20:25 rindolf Su-Shee: are the stores open?
20:26 Su-Shee rindolf: yes. :)
20:26 rindolf Su-Shee: ah.
20:26 Su-Shee and I have to bake a bread, no good bread sucks.
20:27 rindolf Su-Shee: ah.
20:27 Su-Shee and I have to read the "dev lessons" from the office.
20:30 explore left #perl6
20:31 masak you can now get gamebase via github and proto. quietfanatic++ mikecanz++
20:31 Su-Shee it's starting to look like the need for cpan6.
20:32 masak oh, and a tip: please surprise the guy with lots of patches and pull requests. he's done a really awesome job so far, and this is one thing that deserves all the attention/help it can get from helpful volunteers. win-win.
20:33 masak but first and foremost, try his breakout game, written in Rakudo. I know I will.
20:34 Tene v. slow
20:34 Tene but, impressive.
20:35 masak yah, someone should speed Rakudo/Parrot up a bit. guys, is this a known issue? :P
20:36 Tene rakudo is something like 13% faster using latest parrot and rakudo than it is on the releases, iirc.
20:36 Tene I hear the pcc branch should speed some things up.
20:36 Tene but still failing some tests.
20:37 sjohnson along with parrot being a VM, is it also its own programming language?
20:37 masak hm, I'm getting "libSDL not found!" when trying to start the game. MacPorts tells me 'libsdl' is installed and active. what gives?
20:37 masak sjohnson: no. it's a VM.
20:37 Tene masak: probably installed under a different name
20:37 sjohnson what is rakudo written in then?
20:37 Tene a great deal of it is written in Perl 6. :)
20:38 masak sjohnson: there's something called PIR.
20:38 masak sjohnson: it's a sort of assembly language for Parrot.
20:38 sjohnson ahh i c
20:38 masak Tene: any idea of where I might find what name it's installed under, and what to change in SDL_.pir?
20:38 reqamst sjohnson: It's nice overview http://perlgeek.de/blog-en/​perl-6/rakudo-overview.html
20:38 * masak wants to play breakout :)
20:39 masak Tene: oh, found the answer to the latter question, no worries.
20:43 sjohnson thanks reqamst
20:43 Su-Shee good n8 all.
20:43 Su-Shee left #perl6
20:44 masak Tene: http://gist.github.com/172418 -- what should I try to make SDL_.pir find libSDL?
20:44 Tene libSDL.dylib
20:44 masak gotcha.
20:45 masak libSDL not found!
20:45 masak I'll just comment in passing that I have no idea how loadlib works under the hood.
20:47 Tene :)
20:47 Tene I'll look at it tonight.
20:47 masak gracias.
20:47 Tene taking the gf to get pieces cut out.
20:47 masak I see.
20:48 Tene Some guy talked her into it.  Called himself a "doctor" or something.
20:48 Tene dunno.
20:48 Tene :P
20:48 masak best of luck.
20:48 Tene Thanks.
20:50 masak rakudo: [+]
20:50 p6eval rakudo 0d4fe0: OUTPUT«Syntax error at line 2, near "[+]"␤in Main (src/gen_setting.pm:3390)␤»
20:53 payload joined #perl6
20:56 reqamst it should be 'too few arguments', I think
20:57 masak reqamst: no, actually, it shouldn't be a syntax error.
20:57 masak std: [+]
20:57 p6eval std 28048: OUTPUT«ok 00:02 37m␤»
20:58 reqamst is it not implemented yet?
20:58 masak reqamst: in the voodoo parlance of this channel, reduce-metaops parse like listops. :)
20:58 masak reqamst: well yes, but Rakudo seems to parse it slightly wrong.
21:02 reqamst i see
21:03 reqamst it's in builtins/op.pir to implement
21:06 reqamst or not... I don't get rakudo source
21:06 masak reqamst: in time, you will. :)
21:10 reqamst masak: I hope :)
21:12 masak reqamst: last summer, I sometimes dove into the Rakudo source to fix errors which bothered me. sometimes I succeeded, often I failed. I learned enough to find my way around, and it wasn't terribly difficult. so I think you will, too, if you're curious/motivated enough.
21:14 reqamst There is only problem with one thing - time.
21:14 masak you mean availability of same?
21:16 reqamst yes, only one week of vacation and school will begin
21:16 masak I understand.
21:16 masak still, you have to eat and sleep. :)
21:17 masak and no-one can stop you from coding Perl 6 while you eat or sleep. :)
21:17 reqamst last year of high school, big exams etc. ;)
21:17 masak nice!
21:17 masak hope you enjoy it.
21:18 reqamst thanks, I will
21:19 masak ...and you can always toy with Perl 6 (or come visit us here on #perl6) when time permits. :)
21:25 Jedai joined #perl6
21:31 masak` joined #perl6
21:40 Whiteknight joined #perl6
22:08 REPLeffect joined #perl6
22:14 * jnthn wonders just how many tests we're going to gain when we can bind named parameters to positionals.
22:15 jnthn I know it's somewhere in the hundreds. :-)
22:17 masak sounds like good news.
22:17 jnthn masak: Aye.
22:17 jnthn masak: Should happen at latest in October.
22:17 masak what's blocking that ability?
22:17 jnthn That's an intresting question now. :-)
22:18 jnthn What has blocked it: Parrot doesn't provide any support for it.
22:18 jnthn Where we're going is roughly...
22:18 masak yes, but what does it depend on?
22:18 masak ah.
22:18 jnthn 1) Parrot is going to gain a way to just give us something capture-like containing all of the args.
22:19 jnthn 2) We'll do all of the unpacking and binding ourselves based off the Perl 6 signatures.
22:19 jnthn 1 fits well with the work allison++ is doing at the moment becuase Parrot really is going to be doing something more capture-like.
22:19 jnthn I'm still working out how we're going to do 2.
22:20 masak nice.
22:20 jnthn My current feeling is that I'll do a 2-step refactor (that is, two medium sized refactors compared to one huge one).
22:20 jnthn Basically, Signature objects inside are going to become a bunch more low-level.
22:20 jnthn They're going to get a lot cheaper to work with, and a lot cheaper to construct.
22:21 jnthn So that'll involve re-working signature construction and the multi-dispatcher, but I'll do some compatibility interface so we can keep doing the normal binding as we do it now.
22:21 jnthn Then deal with the fallout of all of that, get it all pushed, etc.
22:21 jnthn In refacotr 2, we start using the signature objects for all binding.
22:22 jnthn In that step, we'll gain the binding of named params to positionals.
22:22 jnthn It may just naturally happen as I implement the binding algorithm anyway.
22:23 jnthn But into all of the design for this, I need to figure out the design for unpacking too.
22:23 masak huh.
22:23 jnthn Which bit was "huh"? :-)
22:24 masak just taking it all in. :)
22:24 jnthn Anyway, the goals are basically more speed and more features. :-)
22:25 masak what's 'the binding algorithm'?
22:26 jnthn Signature binding.
22:27 jnthn e.g. I have a signature :(Int $x, Num $y) and the capture \(1, 4.5).
22:27 masak ah, and when you talk about implementing that, you mean the specific part that binds nameds to positionals?
22:27 jnthn The binding algorithm is what gets us from the capture to $x and $y containing 1 and 4.5 respectively.
22:27 masak yesyes.
22:27 jnthn No, I mean the whole process, that has a signature and a capture as its inputs and a bunch of bound variables as its outputs.
22:28 jnthn Now, we basically
22:28 masak surely there must be something like that already?
22:28 jnthn 1) Have Parrot do some of the work.
22:28 zetta joined #perl6
22:28 jnthn 2) Run through the signature object - which isn't all that efficient to introspect today - and do extra fixups.
22:29 jnthn Parrot isn't all that fast at doing its bit of the work, but (2) is what really kills us.
22:29 jnthn Not least because we call another PIR routine to actually do it.
22:29 jnthn So every invocation of any signatured block = 2 Parrot level sub invocations right now.
22:29 jnthn And we've got Parrot doing a bunch of stuff to bind parameters, followed by Rakudo going and doing some extra bits.
22:30 jnthn So it's not *so* surprising we're a tad slow on calling. ;-)
22:30 Limbic_Region joined #perl6
22:30 jnthn "tad" :-)
22:31 masak looking forward to the speedups this'll bring.
22:31 jnthn I'd not like to speculate how big they'll be, but I'm hoping for a pretty decent win.
22:31 jnthn Now we do a ridiculous amount of work.
22:32 jnthn Also, I want to use something like MMD_Cache but for non-multis.
22:32 masak and MMD_Cache is...?
22:32 jnthn Oh, and re-write MMD_Cache to not construct a darn GC-able object for every single lookup we want to do it in.
22:32 jnthn *in it.
22:33 jnthn MMD_Cache is basically a type-based cache for multiple dispatch.
22:33 masak sounds like interesting code to look at.
22:33 jnthn I hacked it up in like less than an afternoon's worth of effort.
22:34 jnthn So it's stupid.
22:34 jnthn But it made a multi-dispatch benchmark I had at the time run 3-4 times faster anyway.
22:34 jnthn Anyway, I want to make it less stupid. :-)
22:35 jnthn I plan to try and cache the caches (well, share the caches) based upon an identical type tuple in a signature too...
22:35 jnthn That is, :(Int $a, Int $b) and :(Int $c, Int $d) are clearly different signatures.
22:35 masak I remember that afternoon. :) it was fun to watch at the sidelines.
22:35 jnthn But they could share a - I'm coining the term - "type acceptance cache".
22:35 masak ok.
22:36 sjohnson rakudo:  say (1, undef, 2, 3);
22:36 p6eval rakudo 0d4fe0: OUTPUT«1Use of uninitialized value␤23␤»
22:36 jnthn Because they both care about having (Int,Int)
22:36 sjohnson rakudo:  say (1, undef, 2, 3).WHAT;
22:36 masak oh right, under named binding those two signatures will not actually tie.
22:36 p6eval rakudo 0d4fe0: OUTPUT«List()␤»
22:36 jnthn Anyway, as you can see, I've had some productive brainstorming.
22:36 sjohnson rakudo:  say (1, undef, 2, 3).perl;
22:36 jnthn masak: Yeah.
22:36 p6eval rakudo 0d4fe0: OUTPUT«[1, undef, 2, 3]␤»
22:36 masak that's good.
22:36 sjohnson rakudo:  say (1, undef, 2, 3).collapse.perl;
22:36 p6eval rakudo 0d4fe0: OUTPUT«Method 'collapse' not found for invocant of class 'List'␤»
22:37 masak rakudo: sub foo($a,,$b) { say $a; say $b }; foo(1,2)
22:37 p6eval rakudo 0d4fe0: OUTPUT«Unable to parse multisig; couldn't find final ')' at line 2, near ",,$b) { sa"␤in Main (src/gen_setting.pm:3390)␤»
22:37 masak rakudo: sub foo($a,$,$b) { say $a; say $b }; foo(1,2,3)
22:37 p6eval rakudo 0d4fe0: OUTPUT«1␤3␤»
22:37 jnthn rakudo:  say (1, undef, 2, 3).grep(*.defined).perl
22:38 p6eval rakudo 0d4fe0: OUTPUT«set_integer_keyed() not implemented in class 'Sub'␤in Main (/tmp/b1SPyP1atn:2)␤»
22:38 TimToady std: sub foo($a,,$b) { say $a; say $b }; foo(1,2)
22:38 p6eval std 28048: OUTPUT«[31m===[0mSORRY![31m===[0m␤Malformed parameter at /tmp/IwfJIGTaHH line 1:␤------> [32msub foo($a,[33m⏏[31m,$b) { say $a; say $b }; foo(1,2)[0m␤    expecting any of:␤  name␤   parameter␤ signature␤       whitespace␤FAILED 00:03 41m␤»
22:38 jnthn std++ on the error :-)
22:38 TimToady until recently it was the same a rakudo
22:38 TimToady *as
22:39 jnthn masak: I think above in that grep example is a Rakudo bug?
22:39 jnthn TimToady: I'll try and remember to steal it. :-)
22:39 masak jnthn: looks like.
22:39 masak somebody should ticket that.
22:39 * masak submits rakudobug
22:40 jnthn How on earth did it managed to try and keyed index into a sub?!
22:40 jnthn rakudo:  say (1, undef, 2, 3).map(*.defined).perl
22:40 p6eval rakudo 0d4fe0: OUTPUT«set_integer_keyed() not implemented in class 'Sub'␤in Main (/tmp/NOjT5edFML:2)␤»
22:40 jnthn rakudo:  say (1, 2, 3).grep(*.defined).perl
22:40 p6eval rakudo 0d4fe0: OUTPUT«set_integer_keyed() not implemented in class 'Sub'␤in Main (/tmp/c1oQPcGXbf:2)␤»
22:41 jnthn rakudo:  say (1, 2, 3).grep(*.defined)
22:41 p6eval rakudo 0d4fe0: OUTPUT«set_integer_keyed() not implemented in class 'Sub'␤in Main (/tmp/DdlMCyn6Co:2)␤»
22:41 jnthn rakudo:  say (-1, -2, -3).map(*.abs)
22:41 p6eval rakudo 0d4fe0: OUTPUT«123␤»
22:41 jnthn rakudo:  say (-1, -2, -3).map(*.defined)
22:41 p6eval rakudo 0d4fe0: OUTPUT«set_integer_keyed() not implemented in class 'Sub'␤in Main (/tmp/J7VIjSRvCY:2)␤»
22:41 jnthn oh, very odd.
22:41 masak live minimizing going on.
22:42 jnthn rakudo: say (*.defined).WHAT
22:42 p6eval rakudo 0d4fe0: OUTPUT«set_integer_keyed() not implemented in class 'Sub'␤in Main (/tmp/xgOaXEzI3J:2)␤»
22:42 jnthn rakudo: *.defined
22:42 p6eval rakudo 0d4fe0: OUTPUT«set_integer_keyed() not implemented in class 'Sub'␤in Main (/tmp/l4Nl6OPSVL:2)␤»
22:42 jnthn ...epic wtf...
22:42 jnthn Well, minimized. :-)
22:42 masak indeed.
22:42 jnthn rakudo: srsly why?
22:42 p6eval rakudo 0d4fe0: OUTPUT«Statement not terminated properly at line 2, near "?"␤in Main (src/gen_setting.pm:3390)␤»
22:42 jnthn Aww.
22:43 jnthn rakudo: sub srsly { }; sub why { }; sub postfix:<?>($) { }; srsly why?
22:43 p6eval rakudo 0d4fe0:  ( no output )
22:43 jnthn \o/
22:44 masak rakudo: sub srsly { }; sub why { }; sub postfix:<?>($) { say "well, don't ask ME." }; srsly why?
22:44 p6eval rakudo 0d4fe0: OUTPUT«well, don't ask ME.␤»
22:45 sjohnson TimToady: could we have a collapse method added in the List() method list?
22:45 mikehh rakudo (0a5b07e) builds on parrot r40693 - make test/make spectest (up to 28048) PASS - Ubuntu 9.04 amd64 (gcc)
22:45 masak sjohnson: could you show a use case?
22:46 sjohnson i used it in ruby quite a lot
22:46 sjohnson my case:
22:47 sjohnson an example would be if i am going thru @ARGV's, sometimes i undef them after using them, and after its all said and done, i like to keep track of what was left over, by doing @ARGV.collapse() hypothetically
22:47 sjohnson where it would just remove the undefs and reindex the array
22:48 masak rakudo: my @a = 1, 2, 3, undef, undef, 4, 5; @a .= map: { $_ }; say @a.perl
22:48 p6eval rakudo 0d4fe0: OUTPUT«Statement not terminated properly at line 2, near ": { $_ }; "␤in Main (src/gen_setting.pm:3390)␤»
22:48 masak rakudo: my @a = 1, 2, 3, undef, undef, 4, 5; @a = @a.map: { $_ }; say @a.perl
22:48 p6eval rakudo 0d4fe0: OUTPUT«[1, 2, 3, undef, undef, 4, 5]␤»
22:49 jnthn std: my @a = 1, 2, 3, undef, undef, 4, 5; @a .= map: { $_ };
22:49 p6eval std 28048: OUTPUT«ok 00:03 39m␤»
22:49 masak rakudo: my @a = 1, 2, 3, undef, undef, 4, 5; @a = @a.map: { .defined }; say @a.perl
22:49 p6eval rakudo 0d4fe0: OUTPUT«[Bool::True, Bool::True, Bool::True, Bool::False, Bool::False, Bool::True, Bool::True]␤»
22:49 masak rakudo: my @a = 1, 2, 3, undef, undef, 4, 5; @a = @a.grep: { .defined }; say @a.perl
22:49 p6eval rakudo 0d4fe0: OUTPUT«[1, 2, 3, 4, 5]␤»
22:50 sjohnson it'd be a nice List() addition imo
22:50 sjohnson *puppy dog eyes*
22:50 masak sjohnson: there you go.
22:50 masak the short form @a .= grep: { .defined } should work too
22:50 masak in my humble opinion, grep { .defined } says it better than collapse.
22:51 masak before you explained it, I thought it meant something completely different.
22:51 masak sjohnson: what's all this eagerness for blowing up the standard libraries, by the way? :)
22:51 sjohnson just getting too excited that's all
22:51 sjohnson i thought it would be a nice addition after i saw that uniq() is in there
22:51 sjohnson as well as pick
22:51 sjohnson etc
22:51 sjohnson and because Ruby has it
22:51 sjohnson and i thought it was cute
22:52 jnthn uniq and pick take quite a bit more to write compared to just having those routines available.
22:52 masak right.
22:52 masak I was just going to say that. :)
22:52 jnthn .grep: { .defined } is fairly short.
22:52 masak and self-explanatory.
22:52 jnthn Yeah
22:52 jnthn Well, if you know .grep of course.
22:53 masak if you don't, a big list of methods ain't gonna help you much.
22:53 * jnthn half wishes we called it .filter so shed the unixism.
22:53 masak jnthn: make a module!
22:53 jnthn .grep is, I admit, very clear in meaning to those with the right background.
22:54 jnthn But I came from the wrong one. ;-)
22:54 sjohnson grep == handy
22:54 jnthn (I used Perl before *nix.)
22:54 sjohnson what if i lied and said it was my birthday wish ;)
22:55 masak sjohnson: sorry, no bribes. :)
22:55 masak I just noticed that it's time to go to sleep over here.
22:55 * jnthn in theory has a bbq tomorrow
22:55 jnthn If it doesn't rain.
22:55 masak I've had a lot of fun hacking on my Text::CSV tonight. I'll blog about it, but I want to dock with missingthepoint first.
22:55 jnthn In my experience of bbq's here in Slovakia, bbq = all day drinking nice beer with the occasional bit of cooking meat. :-)
22:56 * sjohnson pats masak on the back
22:56 jnthn Rain is forecast though, so... :-/
22:56 jnthn masak: Is it pushed?
22:56 masak jnthn: yup.
22:56 reqamst have perl6 something like ruby's method_missing? I was thinking about implement it... for example by catching and parsing exceptions
22:56 masak jnthn: the README is pretty comprehensive.
22:56 reqamst tfu, has
22:56 jnthn masak: BTW, I did wonder today about whether I should make that thing I wrote as an example in my blog post today into a module.
22:56 masak reqamst: see S12.
22:57 jnthn masak: As well as expanding out that class description stuff.
22:57 masak jnthn: sure, why not?
22:57 c9s__ joined #perl6
22:57 jnthn And making that into a module that gives everything a .describe method or whatever.
22:57 jnthn masak: OK, maybe I'll do that.
22:57 masak jnthn++
22:57 jnthn has $.foo is aliased<bar baz> # could be quite useful
22:58 jnthn And nice example of what people can do with traits.
22:58 masak oh, definitely.
22:58 masak we need nice examples of that kind.
22:58 jnthn BTW, before you sleep...
22:58 jnthn How is u4x going?
22:58 masak jnthn: well, I've been _thinking_ a lot about it lately.
22:58 jnthn OK.
22:58 masak jnthn: I think grok has very much promise.
22:58 masak it's a good basis to stand on.
22:59 jnthn I'm happy to write for it, but I'd rather not having to think too much about structure stuff and so on.
22:59 masak now I need to figure out a way to motivate me (and possibly others) to put in thousands of man-hours into writing entries.
22:59 jnthn I mean, write on some of the topics that can be trickier to write on that I tend to know decently.
22:59 jnthn Stuff like traits and parametric roles and type stuff.
22:59 masak jnthn: ok, I'll see about making the entry layout obvious.
22:59 masak that sounds like it could be a blog post as well.
22:59 jnthn masak: That'd help.
23:00 masak g'night.
23:00 jnthn To be honest, if you can say to me, "here are 3 empty topics that you know about"
23:00 jnthn And bully enough ;-)
23:00 masak :)
23:00 jnthn I probably will fill 'em out. :-)
23:00 masak excellent.
23:00 jnthn Anyway, I won't keep you from sleep any more.
23:00 masak I'll keep that in mind.
23:00 masak see you around.
23:01 jnthn see you
23:01 sjohnson byes
23:01 sjohnson oops too late
23:02 c9s___ joined #perl6
23:15 M_o_C joined #perl6
23:25 frew__ joined #perl6
23:27 dukeleto joined #perl6
23:31 payload joined #perl6
23:38 diakopter oopsee dayzee
23:40 jrtayloriv joined #perl6
23:41 jferrero joined #perl6
23:57 wayland76 joined #perl6

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

Perl 6 | Reference Documentation | Rakudo