Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-12-18

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:05 ruoso joined #perl6
00:07 ruoso Hello!
00:07 Limbic_Region salutations
00:11 * Limbic_Region just had a sick and twisted thought
00:11 Limbic_Region rules can contain other rules - right?
00:11 Limbic_Region is there anything preventing a rule from being circularly defined?
00:14 ruoso Limbic_Region, I think it should just work, iirc
00:17 ruoso pugs: rule bar { 'a' | <bar> }; 'bbbbbbba' ~~ /<bar>/;
00:17 p6eval pugs: OUTPUT[Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/evalenv/pugs/perl5/Pugs-Compiler-Rule/lib';␤    unshift @INC, '/home/evalenv/pugs/third-party/Parse-Yapp/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runti...
00:17 ruoso rakudo: rule bar { 'a' | <bar> }; 'bbbbbbba' ~~ /<bar>/;
00:17 p6eval rakudo 34053: OUTPUT[maximum recursion depth exceeded␤current instr.: 'parrot;PGE;Match;new' pc 23 (compilers/pge/PGE/Match.pir:53)␤]
00:20 ruoso rakudo: token bar { 'a' | <bar> }; 'bbbbbbba' ~~ /<bar>/;
00:20 p6eval rakudo 34053: OUTPUT[maximum recursion depth exceeded␤current instr.: 'parrot;PGE;Match;new' pc 23 (compilers/pge/PGE/Match.pir:53)␤]
00:20 ruoso rakudo: token bar { 'a' | . <bar> }; 'bbbbbbba' ~~ /<bar>/;
00:20 p6eval rakudo 34053: RESULT[Method 'perl' not found for invocant of class 'PGE;Match'␤current instr.: '_block11' pc 29 (EVAL_14:16)␤]
00:20 ruoso rakudo: token bar { 'a' | . <bar> }; 'bbbbbbba' ~~ /<bar>/; say $/;
00:20 p6eval rakudo 34053: OUTPUT[bbbbbbba␤]
00:20 ruoso Limbic_Region, ah... there it is...
00:23 pjcj joined #perl6
00:49 Limbic_Region I was thinking more along the lines - rule a contains b
00:49 Limbic_Region rule b contains c
00:49 Limbic_Region rule c contains a
00:49 Limbic_Region infinite expansion
01:44 Jonanin joined #perl6
01:44 Jonanin left #perl6
01:47 literal perl6: my @foo = <bar>; "@foo[].end"
01:47 p6eval rakudo 34054: RESULT["\@foo[].end"]
01:47 p6eval ..pugs: RESULT["bar.end"]
01:47 p6eval ..elf 24456: RESULT["\@foo\[\]\.end"␤]
01:47 literal perl6: my @foo = <bar>; "@foo[]"
01:47 p6eval pugs: RESULT["bar"]
01:47 p6eval ..rakudo 34054: RESULT["\@foo[]"]
01:47 p6eval ..elf 24456: RESULT["\@foo\[\]"␤]
01:50 literal perl6: my @foo = <bar>; "@foo<>"
01:50 p6eval pugs: RESULT["bar"]
01:50 p6eval ..elf 24456: RESULT["\@foo\<\>"␤]
01:50 p6eval ..rakudo 34054: RESULT["\@foo<>"]
01:50 literal pugs: my @foo = <bar>; "@foo«»"
01:50 p6eval pugs: RESULT["bar"]
01:52 literal perl6: sub foo { 1 }: "&foo.name"
01:52 p6eval elf 24456: OUTPUT[syntax error at (eval 121) line 3, near "(sub foo"␤ at ./elf_f line 3861␤]
01:52 p6eval ..pugs: OUTPUT[*** ␤    Unexpected ": \"&"␤    expecting "::"␤    at /tmp/AYzfy4yIQd line 1, column 14␤]
01:52 p6eval ..rakudo 34054: OUTPUT[Statement not terminated properly at line 1, near ": \"&foo.na"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤]
01:52 literal perl6: sub foo { 1 }; "&foo.name"
01:52 p6eval pugs, rakudo 34054: RESULT["\&foo.name"]
01:52 p6eval ..elf 24456: RESULT["\&foo\.name"␤]
01:55 pmichaud rakudo: sub foo { 1 };  say &foo.name;   # just curious
01:55 p6eval rakudo 34054: OUTPUT[Method 'name' not found for invocant of class 'Sub'␤current instr.: '_block11' pc 31 (EVAL_12:19)␤]
01:55 pmichaud Limbic_Region: yes, rules can be circular -- that's how parsers work.  :-)
02:05 c9s_ joined #perl6
02:08 alanhaggai joined #perl6
02:10 Limbic_Region pmichaud - well, in a LALR parser you have to do special tricks to avoid left recursion
02:11 Limbic_Region pmichaud - I just wondered if it would be a compiler warning or if it would just spin its wheels for a really long time
02:12 pmichaud left recursion in a p6 grammar is generally an infinite loop
02:13 pmichaud just like if I write a sub :     sub foo() {  foo();   .... }
02:13 * Limbic_Region didn't think that worked
02:13 Limbic_Region I thought you needed a special token to refer to yourself
02:13 Limbic_Region before you were finished defining your self
02:14 Limbic_Region SELF or something like that
02:14 pmichaud in p6, regexes are subs/methods that are written with a different syntax
02:15 pmichaud but yes, we can have  a regex that refers to itself:     regex xyz {  \d+ [ , <xyz> ]? };
02:15 jnthn Limbic_Region: I expect giving a compiler warning in every case is probably equivalent to the halting problem. This is quite hard to solve, and may be one of the few things out of the scope of the Perl 6 project. ;-)
02:15 pmichaud this often isn't the most efficient way of doing things, but it's certainly allowed.
02:16 Limbic_Region jnthn - I doubt that it is equivalent to the halting problem but I agree it would be hard to detect in all cases
02:16 Limbic_Region I was just wondering out loud
02:16 Limbic_Region back in the day on a miltary base - you could forward phones  phone a could forward to phone b as long as phone b wasn't forwarded to phone a
02:17 Limbic_Region but if phone a went to b which went to c which went to a
02:17 jnthn :-D
02:17 Limbic_Region you could create an infinite ringing loop
02:18 jnthn Limbic_Region: I'd have to think harder than I can at this time of night to be sure of whether it's equivalent.
02:20 Limbic_Region well, my doubt wasn't based on anything other than the fact that detecting circular references is a solved problem and I naively assumed it was the same
02:20 pmichaud detecting circular references is possible in a static grammar, yes.
02:20 pmichaud it becomes harder when the grammar can change at runtime.
02:20 Limbic_Region right - I agree
02:21 jnthn Not to mention the grammar can call code (assertions, embedded closures, etc) and they may call back into the grammar in an undetectable way.
02:21 jnthn And that code certainly can be turing complete.
02:21 * Limbic_Region concedes
02:21 jnthn *but* we can probably detect and be helpful about the common cases
02:22 pmichaud eh, we don't try to detect and be helpful about infinite recursion in subs, I'm not sure we need it for grammars.
02:22 pmichaud if we can do it easily, then yes.
02:23 jnthn pmichaud: Just because we *can* do something like that, doesn't mean I think we should place much priority on doing so.
02:23 [particle] jnthn: from scrollback... how's enum<>.WHAT roll around in your noggin'?
02:23 jnthn hell, how does that parse
02:23 jnthn enum <>.WHAT I'd expect is enum(<>.WHAT)
02:23 Limbic_Region in infinite recursion in sub - there is no way to know if it will eventually terminate
02:24 Limbic_Region in a grammar - if you find your way back to a previously seen rule - can it ever terminate?
02:24 jnthn If you meant something like (enum <>).WHAT
02:24 jnthn It's going to give you the proto for Mapping I guess.
02:24 jnthn Since an anonymous enum constructor gives one of those back.
02:25 jnthn STD.pm's parse tree output is probably the thing to check to see how it parses.
02:25 jnthn Oh, not enum(<>.WHAT) - that's a call.
02:26 [particle] ...my work here is done.
02:26 * Limbic_Region calls it a night
02:32 jiing_ joined #perl6
02:52 dmq joined #perl6
02:59 pugs_svn r24457 | lwall++ | [t/spec/S03-operators/smartmatch.t] parsefail
03:12 pugs_svn r24458 | hinrik++ | [util/perl6.vim] correct highlighting of interpolated stuff in single- and double-quoted strings, and a few other fixes
03:17 pugs_svn r24459 | hinrik++ | [util/perl6.vim] remove some cruft
03:47 meppuru joined #perl6
03:56 Psyche^ joined #perl6
04:00 pugs_svn r24460 | hinrik++ | [util/perl6.vim] improve adverb highlighting in double angles
04:02 elmex joined #perl6
04:10 meppl good night
04:17 pugs_svn r24461 | hinrik++ | [util/perl6.vim] allow single- and double-quoted strings in double angles
04:23 Minthe joined #perl6
04:23 Minthe joined #perl6
04:27 Minthe joined #perl6
04:54 mpalatnik__ joined #perl6
05:02 c9s_ joined #perl6
05:04 hercynium joined #perl6
05:08 alc joined #perl6
05:09 dalek joined #perl6
05:09 allbery_b joined #perl6
05:13 mberends joined #perl6
05:30 rakudo_svn r34059 | coke++ | [codingstd] remove trailing spaces
05:34 dalek joined #perl6
05:48 dalek joined #perl6
05:56 alester_ joined #perl6
06:31 akl- joined #perl6
06:46 adc_penner joined #perl6
06:52 iblechbot joined #perl6
06:56 ashizawa joined #perl6
06:58 DemoFreak joined #perl6
07:02 justatheory joined #perl6
07:41 alanhaggai joined #perl6
07:58 maerzhase joined #perl6
08:18 maerzhase joined #perl6
08:19 kane_ joined #perl6
08:25 pbuetow joined #perl6
08:42 redicaps joined #perl6
08:46 redicaps left #perl6
09:00 Aisling_ joined #perl6
09:11 alech joined #perl6
09:26 funktio joined #perl6
09:29 alanhaggai joined #perl6
09:32 alech_ joined #perl6
09:40 alexn_org joined #perl6
09:48 alech joined #perl6
09:50 felipe joined #perl6
09:51 mberends joined #perl6
10:01 alech_ joined #perl6
10:05 pugs_svn r24462 | azawawi++ | [Syntax::Highlight::Perl6] Bumped version to 0.0291
10:05 pugs_svn r24462 | azawawi++ | [Syntax::Highlight::Perl6] Updated to latest STD and perl6.vim
10:05 pugs_svn r24462 | azawawi++ | [Syntax::Highlight::Perl6] Added an executable copy_them to build
10:05 pugs_svn r24462 | azawawi++ | [Syntax::Highlight::Perl6] and copy the latest STD and perl6.vim files
10:05 pugs_svn r24462 | azawawi++ | [Syntax::Highlight::Perl6] Updated 'Changes'
10:08 ejs joined #perl6
10:17 ejs1 joined #perl6
10:20 iblechbot joined #perl6
10:36 gfldex_ joined #perl6
10:37 maerzhase joined #perl6
10:53 elmex joined #perl6
10:55 masak joined #perl6
10:57 justatheory joined #perl6
10:57 pugs_svn r24463 | azawawi++ | [STD.pm] Added lexer memory caching to speed up subsequent ->parse
10:57 pugs_svn r24463 | azawawi++ | [STD.pm] calls. This will improve Syntax::Highlight::Perl6 performance.
10:59 pugs_svn r24464 | azawawi++ | [Syntax::Highlight::Perl6] Cursor.pmc performance++
10:59 pugs_svn r24464 | azawawi++ | [Syntax::Highlight::Perl6] Updated 'Changes'... Releasing 0.0291 to CPAN
11:20 abebae joined #perl6
11:21 araujo joined #perl6
11:21 abebae left #perl6
11:22 vixey joined #Perl6
11:23 alanhaggai joined #perl6
11:29 ruoso joined #perl6
11:37 ruoso Hello!
11:49 kanru joined #perl6
11:50 moritz_ hi ruoso
12:06 ruoso joined #perl6
12:18 kanru joined #perl6
12:42 alech joined #perl6
12:58 ejs2 joined #perl6
13:28 alech joined #perl6
13:57 Lorn joined #perl6
14:00 kanru joined #perl6
14:14 cognominal joined #perl6
14:16 cognominal joined #perl6
14:29 wolverian joined #perl6
14:29 broquaint joined #perl6
14:31 [particle] joined #perl6
14:46 alester_ joined #perl6
14:50 alester joined #perl6
14:51 masak Perl turns 21 today!
14:52 moritz_ so it can finally start to drink in the US
14:53 masak Perl seems to thrive pretty well without alcohol, though.
14:53 eric256 joined #perl6
14:53 meppl joined #perl6
14:53 masak eric256: re comment about November code "still being Perl, if you know what I mean": thanks. :)
14:56 smtms joined #perl6
14:56 eric256 definitly ;)  i was wondering this morning if there is enough raduko in place to start building an IRC bot ;) it can't run perl5 modules yet though right?
14:58 masak eric256: unfortunately not.
14:58 moritz_ eric256: you could improvise by piping both to and from nc (netcat)
14:59 alech joined #perl6
15:01 eric256 rakduo: for ('a'..'z') Z (1..*) { say $_;}
15:01 eric256 rakudo: for ('a'..'z') Z (1..*) { say $_;}
15:01 p6eval rakudo 34065: OUTPUT[get_integer() not implemented in class 'Whatever'␤current instr.: 'parrot;Range;!to_test' pc 17343 (src/builtins/op.pir:39)␤]
15:01 moritz_ eric256: we don't have lazy lists or ranges yet
15:02 masak eric256: (1..*) not implemented yet.
15:02 exodist_ joined #perl6
15:03 eric256 well what are you waiting for ;)
15:03 masak eric256: you :)
15:03 moritz_ ... and a good specification
15:03 eric256 ahh snap, saw that coming
15:04 masak eric256: actually, I imagine it's not that far away.
15:04 masak the lazyness parts of the spec need to be a bit more... specified, that's all
15:04 masak s/zy/zi/
15:07 iblechbot joined #perl6
15:11 pugs_svn r24465 | azawawi++ | [STD.pm] Fix dependency on system 'cp' by using File::Copy
15:17 pugs_svn r24466 | azawawi++ | [Syntax::Highlight::Perl6] Bumped version to 0.0292
15:17 pugs_svn r24466 | azawawi++ | [Syntax::Highlight::Perl6] Fixed bug 'cp is not recognized' in win32 platforms
15:17 pugs_svn r24466 | azawawi++ | [Syntax::Highlight::Perl6] by making Cursor.pmc use File::Copy
15:17 pugs_svn r24466 | azawawi++ | [Syntax::Highlight::Perl6] Updated BUGS POD section
15:20 pugs_svn r24467 | azawawi++ | [Syntax::Highlight::Perl6] fix copy_them script to actually make STD correctly
15:22 pugs_svn r24468 | azawawi++ | [Syntax::Highlight::Perl6] Updated Changes... Releasing 0.0292 to CPAN
15:27 eric256 is there an index var when in for loops?
15:28 moritz_ eric256: no
15:28 moritz_ eric256: you have to construct one yourself
15:28 masak eric256: for @a.kv -> $index, $val { ... }
15:28 moritz_ for @a Z ^@a -> $item, $index { ... }
15:29 moritz_ or what masak++ said
15:29 ejs1 joined #perl6
15:29 masak moritz_: is my suggestion and yours always equivalent?
15:29 eric256 rakudo: for list('a'..'c').kv -> $index,$val { say "$index -> $val" };
15:30 p6eval rakudo 34065: OUTPUT[0 -> a␤1 -> b␤2 -> c␤]
15:30 eric256 thats pretty sweet
15:30 masak it is indeed.
15:30 masak I wrote a game the other month that made heavy use of this.
15:30 eric256 yea that what i was thinking about, text based dungeon game with options ;) hehe
15:30 moritz_ masak: not for shaped arrays (start index != 0)
15:31 masak eric256: go for it!
15:31 eric256 is your game in the repo somewhere? is there an examples folder somewhere with working rakudo code?
15:31 masak moritz_: thought so.
15:32 masak eric256: I don't feel at liberty to submit that game to the repo, due to copyright issues. but I can email it to you.
15:32 masak eric256: I know of no such directory in the Pugs repo.
15:33 eric256 if you could send it to eric.hodges@gmail.com that would be awsome
15:34 masak coming up.
15:36 masak eric256: mail sent.
15:36 eric256 http://svn.pugscode.org/pugs/examples/ i don't think the majority of those work in rakudo
15:36 masak eric256: I also bought a LEGO set so that I could play that game.
15:36 masak eric256: no, me neither. but they might soon. (or be changed slightly to work.)
15:37 SamB copyright issues ?
15:38 moritz_ SamB: the game that implements the specs is non-free, and the specs have no explicit license statement (iirc)
15:39 SamB specs ?
15:39 masak SamB: http://www.gamerz.net/pbmserv/druid.html
15:39 masak at the bottom of the page, it says that the game rules are copyrighted
15:39 masak I can only interpret that as "don't provide implementations of this game, willy-nilly"
15:40 masak been trying, so far unsuccessfully, to reach the game author.
15:45 eric256 http://svn.pugscode.org/pugs/examples/games/wizard.pl my original game, but it rakudo doesn't seem to like the optional parameter syntax
15:45 eric256 or the syntax changed... i can only imagine what else is broken in there
15:45 eric256 hehe
15:45 masak eric256: optional params should be implemented.
15:45 masak eric256: I could have a look at it if you want.
15:46 eric256 i'll mess with it some
15:46 eric256 and holler if i can't figure it out
15:46 masak sounds good.
15:47 moritz_ multi *prompt
15:47 moritz_ I guess rakudo doesn't like the *
15:48 masak I don't, either. what is that?
15:48 eric256 yea why would there be a * there?
15:48 eric256 and how do i get syntax highlighting for perl6 in vim?
15:48 moritz_ to put it into the global namespace
15:48 moritz_ eric256: utils/perl6.vim
15:48 masak moritz_: Pugs-specific feature?
15:48 moritz_ eric256: link that to ~/.vim/syntax/
15:48 moritz_ masak: no, it's specced, but it might get removed
15:49 * masak has never seen that before
15:49 masak anyway, that shouldn't be necessary to get the game to run correctly.
15:49 moritz_ at least it was specced, half a ywar ago
15:52 bloonix joined #perl6
15:53 moritz_ hurm, that seems to access $_ in several places where it doesn't make sense to mu
15:53 moritz_ for example line 13
15:56 eric256 yea i'm cleaning it up quite a bit, lol
15:58 eric256 =begin END isn't implemented it?
15:58 masak rakudo: (5..8).pick()
15:58 p6eval rakudo 34065: RESULT[[6]]
15:58 masak eric256: you can use that instead of the &random sub
15:59 moritz_ rakudo: say join " ", map { (5..8).pick() }, 1..20
15:59 p6eval rakudo 34065: OUTPUT[5 5 8 8 7 7 5 5 7 8 5 7 8 7 7 6 6 6 7 6␤]
15:59 eric256 yea i'm gutting as i go, it was written for an earlier version of pugs that didn't have everything yet
16:00 masak rakudo: (5..8).pick(20).perl.say
16:00 p6eval rakudo 34065: OUTPUT[[6, 5, 7, 8]␤]
16:00 moritz_ oh, and it defines another infix operator
16:00 moritz_ rakudo doesn't support that
16:00 moritz_ rakudo: (5..8).pick(20, :rep).perl.say
16:00 p6eval rakudo 34065: OUTPUT[too many named arguments - 'rep' not expected␤current instr.: 'parrot;Any;pick' pc 9905 (src/builtins/any-list.pir:202)␤]
16:00 masak I remember playing this game.
16:01 masak moritz_: :rep is low-hanging fruit.
16:01 moritz_ rakudo: (5..8).pick(20, :repl).perl.say
16:01 p6eval rakudo 34065: OUTPUT[[7, 7, 6, 6, 6, 5, 5, 6, 7, 5, 6, 6, 8, 7, 7, 5, 5, 8, 8, 8]␤]
16:01 moritz_ masak: I just remembered it wrongly
16:01 masak oh!
16:01 eric256 its it :repl? yea
16:01 masak I like this kind of pleasant surprises.
16:01 masak Rakudo is further implemented than I tend to think.
16:02 moritz_ the old state of mind of working around stuff :-)
16:02 masak aye.
16:03 masak can't say I particularly miss that, though.
16:03 [particle] @msg azawawi is File::Copy core? you can use the core module ExtUtils::Command to replace many system functions
16:03 lambdabot Not enough privileges
16:04 [particle] @tell azawawi is File::Copy core? you can use the core module ExtUtils::Command to replace many system functions
16:04 lambdabot Consider it noted.
16:06 eric256 rakudo: (1..10).pick.say;
16:06 p6eval rakudo 34065: OUTPUT[9␤]
16:06 eric256 for a moment i thought i needed pick()
16:06 eric256 dunno why
16:08 kanru joined #perl6
16:08 eric256 how do i write this?  rakudo doesn't like the map:{ my @choices = %world.{$person.location}.exits.map:{ Option.new( :text($_), :param($_)) };
16:08 eric256 my @choices = %world.{$person.location}.exits.map:{ Option.new( :text($_), :param($_)) };
16:09 masak map { ... }, @a;
16:09 eric256 array.map doesn't worky anymore? or just currently broken?
16:11 masak rakudo: say [1,2,3].map({ $_ + 5 })
16:11 p6eval rakudo 34065: OUTPUT[678␤]
16:11 masak rakudo: say [1,2,3].map :{ $_ + 5 }
16:11 p6eval rakudo 34065: OUTPUT[Statement not terminated properly at line 1, near ":{ $_ + 5 "␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤]
16:11 masak rakudo: say [1,2,3].map: { $_ + 5 }
16:11 p6eval rakudo 34065: OUTPUT[678␤]
16:11 masak oh, it works.
16:13 jnthn rakudo: say [1,2,3].map:{ $_ + 5 }
16:13 p6eval rakudo 34065: OUTPUT[Statement not terminated properly at line 1, near ":{ $_ + 5 "␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤]
16:13 jnthn I think that may be the bug.
16:13 * masak reports
16:14 stephens joined #perl6
16:14 jnthn masak: Already ticketed.
16:14 jnthn masak: I knew that bug existed because I reviewed the ticket just yesterday. ;-)
16:15 eric256 cool...added space after : and it gives me a new error... argument doesn't array
16:16 eric256 no line number though...so i'll commit what i've got done
16:16 eric256 lol
16:16 maerzhase joined #perl6
16:16 iblechbot_ joined #perl6
16:17 masak jnthn: too late, now you have two tickets. :)
16:17 masak eric256: sounds interesting.
16:17 masak do commit.
16:17 masak eric256: Rakudo doesn't do line numbers yet.
16:18 eric256 all the other errors gave line numbers
16:18 masak really?
16:18 masak as I said, I'm often pleasantly surprised by new features in Rakudo.
16:18 eric256 Statement not terminated properly at line 159, near ".?. 20;\n  "
16:18 masak but maybe this was a runtime error or something.
16:19 eric256 ohh runtime don't give line numbers. gotcha
16:19 masak and probably that's what Rakudo doesn't do yet.
16:19 eric256 well then...that makes debuging a little more complex
16:19 jnthn Yes, no line # on runtime errors yet.
16:19 jnthn January. :-)
16:20 moritz_ eric256: yes, .?. is a user-defined op which rakudo doesn't likke
16:20 pugs_svn r24469 | eric256++ | [examples/games/wizard.pl] Cleaned up and began transition to rakudo
16:20 eric256 that was a previous error that had a line number ;) just for example sake
16:21 eric256 hehe just checked the log, that file has been in there for over 3 years ;) and last updated over 2 years ago
16:22 eric256 lookin forward to line numbers for sure
16:23 masak eric256: I'll have a look
16:26 masak eric256: I get another error: "Can't find ./v6-alpha in @INC"
16:27 masak that should be 'use v6;' nowadays. I'll change that for you.
16:28 pugs_svn r24470 | masak++ | [wizard.pl] "use v6-alpha" is "use v6" nowadays
16:28 masak now I got "You passed an initialization parameter that does not have a matching attribute."
16:29 masak ...which sounds like a completely reasonable Rakudo error.
16:29 [particle] sure does :)
16:29 eric256 hmmm why do i get a different error?
16:29 eric256 lol
16:30 masak eric256: old Rakudo?
16:30 eric256 r33937
16:30 eric256 oh shoot
16:30 masak eric256: that's old.
16:30 eric256 yea just realized it didn't match my svn info
16:30 eric256 how do i keep doing that
16:30 masak oh! maybe the error stems from the discussion about constructors and ingeritance.
16:31 masak eric256: no idea. it's really not that hard. :P
16:31 eric256 do i need to make clean everytime or is make perl6 enough?
16:32 masak eric256: depends how much changed in Parrot.
16:32 moritz_ eric256: most of the time 'make perl6' is enough
16:33 [particle] if something under config/ changed, you probably want to re-run configure.pl
16:33 meppl good night
16:33 masak meppl: 'night
16:33 meppl ;)
16:37 eric256 okay...svn up && make clean && make perl6
16:37 eric256 now ./perl6 -v returns revision 33937
16:37 eric256 which is way behind my svn info
16:39 moritz_ eric256: that info might only get updated when you run Configure.pl again
16:39 masak :)
16:39 [particle] yep
16:39 masak eric256: when running the game, do you get the error I get?
16:40 eric256 still rebuilding hang on
16:40 eric256 gonna just do svn up && make clean && perl Configure.pl && make perl6 from now on ;)
16:40 eric256 or i'm gonna shoot myself cause i just did all that an my perl6 still reports revision 33937
16:41 moritz_ wrong directory? ;-)
16:41 eric256 i deleted wizard.pl and re svn up'ed it and then perl6 wizard.pl and i get argument doesn't array
16:42 masak eric256: I eventually created an alias, so I wouldn't have to type so much every time I wanted to re-make parrot and perl6
16:42 masak eric256: I can't reproduce that error here. sorry.
16:42 moritz_ rakudo: say <a b> Z <1 2 3>
16:42 p6eval rakudo 34067: OUTPUT[a1b2␤]
16:42 masak I could probably dig further into the error I'm getting, though.
16:43 masak I suspect it has to do with Rakudo and inheritance.
16:43 masak moritz_: unless told otherwise Z stops at shortest length.
16:43 [particle] btw see languages/perl6/tools/rebase-rakudo.pl
16:46 moritz_ what's the preferred way to fail() from within PIR code?
16:46 moritz_ (in a Rakudo builtin, that is)
16:46 masak moritz_: maybe ask at #parrot?
16:49 moritz_ damn, I just noticed that infix:<...> needs lazy lists anyway...
16:51 eric256 hey...can someone else run perl6 -v and see what revision they get, make sure i'm not running in circles
16:51 eric256 heh
16:51 masak moritz_: infix:<...> ?
16:51 masak what does that do?
16:51 moritz_ masak: it continues a list ;-)
16:51 masak oh, that one.
16:51 moritz_ masak: 1, 1 ... { $^a + $^b } # fibonacci numbers
16:51 masak it's pretty new.
16:51 moritz_ aye.
16:52 eric256 isn't that postfix?
16:52 masak eric256: no, because it appears between the list and the block.
16:52 moritz_ @tell Hinrik the ternary operator ( $condtion ?? $true !! $false) mightly confused perl6.vim
16:52 lambdabot Consider it noted.
16:52 moritz_ actually it's a list infix, like Z and X and others
16:52 [particle] rakudo: print $*VM{CONFIG}{revision}
16:52 p6eval rakudo 34068: OUTPUT[Use of uninitialized value␤get_pmc_keyed() not implemented in class 'Undef'␤current instr.: 'parrot;Associative;postcircumfix:{ }' pc 1593 (src/classes/Associative.pir:40)␤]
16:52 eric256 ohh i was thinking of it as (1, 1...)
16:53 [particle] rakudo: print %*VM{CONFIG}{revision}
16:53 p6eval rakudo 34068: OUTPUT[Use of uninitialized value␤Could not find non-existent sub revision␤current instr.: '_block11' pc 43 (EVAL_13:22)␤]
16:53 [particle] rakudo: print %*VM{config}{revision}
16:53 p6eval rakudo 34068: OUTPUT[Could not find non-existent sub config␤current instr.: '_block11' pc 22 (EVAL_13:17)␤]
16:53 [particle] ...it's in there somewhere...
16:53 [particle] rakudo: print %*VM{CONFIG}{version}
16:53 p6eval rakudo 34068: OUTPUT[Use of uninitialized value␤Could not find non-existent sub version␤current instr.: '_block11' pc 43 (EVAL_13:22)␤]
16:53 [particle] oh, duh
16:53 masak [particle]: why not just look at the source code instead? :)
16:53 [particle] rakudo: print %*VM<config><revision>
16:53 p6eval rakudo 34068: OUTPUT[34065]
16:54 masak oh!
16:54 masak how come it didn't catch the barewords?
16:54 masak isn't that... a bug?
16:54 moritz_ masak: NOOO
16:54 * masak laughs evilly
16:54 moritz_ %hash<key> quotes key, %hash{$key} doesn't
16:54 [particle] no, it's not a bug
16:55 [particle] it's looking for subroutines
16:55 [particle] <...> === {'...'}
16:55 masak yeah, yeah
16:55 masak rakudo: say config
16:55 p6eval rakudo 34068: OUTPUT[Could not find non-existent sub config␤current instr.: '_block11' pc 13 (EVAL_13:13)␤]
16:55 moritz_ [particle]: actually <...> = { qw{...} }
16:55 [particle] i just can't wake up enough to read an error message properly
16:55 masak rakudo: say %*VM{config}
16:55 p6eval rakudo 34068: OUTPUT[Could not find non-existent sub config␤current instr.: '_block11' pc 22 (EVAL_13:17)␤]
16:56 * [particle] wonders if <...> splits on non-breaking spaces, too
16:56 [particle] and, should it?
16:56 masak rakudo: say CONFIG
16:56 p6eval rakudo 34068: OUTPUT[Use of uninitialized value␤␤]
16:56 eric256 of freakin ehh.. i was only updating the perl6 directory inside languages not the parrot directory
16:56 moritz_ rakudo: my %h = :a<1>, :b<2>; say %h<b a>;
16:56 p6eval rakudo 34068: OUTPUT[21␤]
16:56 [particle] eric256 you should run rebase-rakudo.pl
16:56 moritz_ pmichaud++
16:57 eric256 rerunning it, its not very sepcific on what it does so i was a bit worried about running it
16:57 eric256 does that update the revisions too?
17:00 [particle] it rebuilds parrot, so yes.
17:00 eric256 do you rebase all the time then?
17:00 [particle] actually, you need --realclean (aka -are)
17:00 [particle] grr, -r
17:00 justatheory joined #perl6
17:01 [particle] i rebuild parrot many times a day
17:01 * eric256 restarts it with -r
17:02 masak eric256: I've never rebased Rakudo.
17:02 masak I just rebuild Parrot from the ground up. feels easier to me.
17:03 pmichaud ooooh, I found a highly repeatable -G segfault
17:03 masak (unless it's obvious from the svn commits that Parrot hasn't changed)
17:03 masak pmichaud++
17:03 pmichaud I haven't fixed it yet, I just found it.
17:03 [particle] masak: that's the same thing
17:03 masak [particle]: aye, so I gathered.
17:03 masak pmichaud: kudos anyway.
17:04 masak finding it is half the battle.
17:05 lambdabot joined #perl6
17:07 masak wow, the atmosphere here is so different from #perl on irc.perl.org
17:07 [particle] let's keep it that way, m'kay?
17:07 lambdabot [particle]: You have 1 new message. '/msg lambdabot @messages' to read it.
17:07 masak [particle]: gladly.
17:07 [particle] @massages
17:07 lambdabot moritz_ said 3d 21h 37m 27s ago: I've glanced over S19 and I think there should be an --encoding option to specify the encoding of the source file
17:08 moritz_ that was only 3+1/2 days ago? hard to believe...
17:09 masak should default encoding be utf-8, or platform-dependent?
17:09 moritz_ yes ;-)
17:09 * masak thinks so too
17:10 masak those are the only two sane defaults.
17:10 moritz_ it's a decision that I'm happy not to make
17:10 [particle] meetoo
17:10 moritz_ anyway, I think that an option for out-of-band signalling is never a bad idea
17:11 pmichaud iirc, default encoding is utf-8 until the source somehow indicates otherwise.
17:11 pmichaud yes, an option would be good.
17:11 pmichaud (in fact, PCT already provides that option :-)
17:11 eric256 yea my revision is correct and now i get the same error you did and a jugt back trace including "*** glibc detected *** perl6: corrupted double-linked list: 0x0a84f8c8 ***"
17:11 masak PCT++
17:11 moritz_ because if the file is encoded in UTF-16, and utf-8 is assumed, it will through a parse error before it finds an encoding directive
17:11 jhorwitz joined #perl6
17:11 masak eric256: that still happens sometimes, yes.
17:11 xiaoyafeng joined #perl6
17:12 masak eric256: I can explain to you why I think this error occurs.
17:13 masak rakudo: class Base { has $.foo }; class Deriving is Base {}; say Deriving.new( :foo(5) ).foo()
17:13 p6eval rakudo 34068: OUTPUT[You passed an initialization parameter that does not have a matching attribute.␤current instr.: 'die' pc 14378 (src/builtins/control.pir:188)␤]
17:13 masak eric256: that's why.
17:13 pmichaud if the file is encoded in UTF-16, it would likely begin with a byte order mark.
17:13 masak eric256: but I haven't checked this, it's just my guess.
17:13 pmichaud oh, *utf*-16.  Hrm.
17:13 moritz_ pmichaud: BOMs are for marking byte order, not encodings
17:13 pmichaud right.
17:13 eric256 yea thats exactly whats happening...so /me moves back to smartlinking tests for a bit
17:14 pmichaud I missed the "utf" part.
17:14 masak eric256: there's a way around that, though. if you're interested.
17:14 eric256 sure
17:14 eric256 lol
17:14 masak rakudo: class Base { has $.foo }; class Deriving is Base {}; say Deriving.new( Base{ :foo(5) } ).foo()
17:14 p6eval rakudo 34068: OUTPUT[5␤]
17:14 masak there you go.
17:14 eric256 thats...hmmm...is that in the specs to work like that? lol
17:14 moritz_ but I think I'm preaching to the choir anyway
17:14 masak eric256: aye, but...
17:15 masak eric256: ...there's nothing that says that the current way in wizard.pl doesn't also work.
17:15 moritz_ eric256: aye. If Base and Deriving have an attribute of the same name, they need to be distinguised in some way
17:15 masak eric256: it's just not very clearly specced that it should or shouldn't.
17:15 masak moritz_: but they don't.
17:15 eric256 ahh gotcha
17:15 moritz_ masak: right, I'm just explaining the idea behind this weird syntax
17:16 masak moritz_: oh, ok.
17:16 masak eric256++ # welcome back to Perl 6 hacking!
17:16 azawawi joined #perl6
17:17 moritz_ I think it's important for people to understand why a language works the way it does
17:17 azawawi hi
17:17 masak moritz_: ack.
17:17 moritz_ I tend to learn much better when I know the backgrounds and connections
17:17 moritz_ azawawi: hi
17:17 moritz_ and that's what I tried to communicate in my 5-to-6 blog series
17:17 masak moritz_: I have that pattern too.
17:18 * azawawi dinner &
17:18 TimToady multi *foo is old syntax; you have to say multi GLOBAL::foo now to mean that, and it's not clear that the search includes the GLOBAL space in any case
17:19 eric256 "invoke() not implemented in class 'wObject'" ... i think it might be nap time
17:19 TimToady standard multis are imported into prelude lexical scope, not into GLOBAL
17:20 moritz_ what's the syntax for declaring things in the prelude scope?
17:20 masak TimToady: do I need to write Derived.new( Base{ :foo<5> } ) if Base has $.foo, but Derived doesn't?
17:20 TimToady you can't declare things in the prelude scope unless you're the prelude
17:20 moritz_ and in the prelude...?
17:20 TimToady you have to export your multis into the scope that is using them
17:21 TimToady in the prelude they're just ordinary multis
17:21 moritz_ so the compiler has to somehow magically know what's prelude and what not?
17:21 TimToady prelude is just a lexical scope notionally outside of the current file's scope
17:21 TimToady I think
17:22 TimToady I think prelude just snapshots its lexical scope at the end and compiler starts other compilations within that lexical scope
17:22 moritz_ works for me
17:22 TimToady though file gets its own lexical scope, so prelude is OUTER to that
17:23 TimToady prelude defines the standard language, so it wants to be immutable, and all other multis can be imported into file scope
17:24 TimToady (as it's being compiled; it becomes immutable at CHECK time)
17:25 azawawi TimToady: Padre::Plugin::Perl6 goes live today with Padre 0.22
17:25 masak azawawi++
17:26 azawawi TimToady: First parse takes 1.7 secs on my laptop and the lexer cache in Cursor.pmc cuts it down to 0.4 secs
17:28 TimToady there already was a lexer cache; what did you do differently?
17:28 ruoso joined #perl6
17:29 TimToady I guess I should just look...
17:29 eric256 rakudo: class Base { has $.foo }; class Deriving is Base {}; class Child is Deriving; say Child.new( Base{ :foo(5) } ).foo()
17:29 moritz_ http://perlcabal.org/svn/pugs/revision/?rev=24463
17:30 * azawawi fetches the change log for Cursor.pmc
17:30 moritz_ eric256: you have some weird leading unicode character, so p6eval doesn't respond
17:30 eric256 ahh darn cut and paste
17:30 eric256 lol
17:30 TimToady oh, looks like you just made it work on windows
17:30 eric256 actualy that example works... wasn't the test case i thought i had
17:30 azawawi TimToady: http://perlcabal.org/svn/pugs/revision/?rev=24463
17:32 TimToady moritz_: speaking of unicode, is there some reason we're getting ugly NL instead of the pretty unicode replacement char for newline?
17:32 moritz_ TimToady: which one do you consider pretty?
17:33 avar
17:33 TimToady hmm, could be my keyboard here...
17:33 TimToady I recently had a host change, maybe it's my irssi
17:34 TimToady avar: did you just put the U+2424 char?
17:34 TimToady or literal "NL"
17:34 moritz_ that was \N{SYMBOL FOR NEWLINE}
17:34 moritz_ both from avar and from p6eval
17:34 TimToady okay, it's my problem, nevermind
17:35 TimToady sorry for maligning p6eval
17:35 moritz_ no problem ;)
17:36 azawawi moritz_: im thinking of writing a second highlighter based on perl6.vim (no Text::VIMColor); just pure perl.
17:36 masak TimToady: no opinion on the Base/Derived question? maybe I'm just missing something in the synopses?
17:37 TimToady I though it was specced that it looks first for a protoobject of the right name, and if it doesn't find that, just uses the loose args
17:38 * masak tries to grok what that means
17:39 masak TimToady: does that mean that Derived.new( :foo<5> ) would work, even if Derived itself does not define a $.foo ?
17:41 masak the #debian people are very friendly, too.
17:41 masak maybe we should just use this as the Rakudo logo: http://www.fileformat.info/info/unicode/char/141b/index.htm
17:43 TimToady yes, see S12:681
17:43 masak TimToady: thanks.
17:44 eric256 rakudo: class wObject { has Str $.name is rw; }; class Weapon is wObject { has Int $.power is rw}; my $spell = Weapon.new( wObject{ :name("Spell") }, :power(0));
17:44 p6eval rakudo 34068: OUTPUT[invoke() not implemented in class 'wObject'␤current instr.: '_block11' pc 43 (EVAL_12:23)␤]
17:44 TimToady and in general, it's not an error to pass unrecognized initializers
17:44 masak TimToady: oh!
17:44 TimToady since each class will assume it was intended for a different class
17:44 masak _two_ rakudobugs. :)
17:45 * masak files
17:45 TimToady and we want to allow scope for people splitting classes without having to redo initializers
17:45 TimToady refactoring++
17:46 eric256 what am i doing differently there than the Base/Deriving example above?
17:47 TimToady probably not starting the class with an uppercase char :(
17:47 eric256 is that a no no?
17:47 TimToady I hear that restriction is about to be lifted
17:47 moritz_ eric256: it's a current rakudo limitation
17:48 moritz_ eric256: that jnthn is working on
17:48 eric256 rakudo: class wObject { has Str $.name is rw; }; class weapon is wObject { has Int $.power is rw}; my $spell = weapon.new( wObject{ :name("Spell") }, :power(0));
17:48 TimToady classes should be parsed based entirely on predeclaration
17:48 p6eval rakudo 34068: OUTPUT[invoke() not implemented in class 'weapon'␤current instr.: '_block11' pc 34 (EVAL_12:19)␤]
17:48 eric256 oh wait...they NEED the upper case letteR?
17:48 eric256 fudge
17:48 eric256 lol
17:49 moritz_ perl6: class a { }; my $o = a.new; say "alive";
17:49 masak eric256: only right now, in Rakudo.
17:49 p6eval rakudo 34068: OUTPUT[invoke() not implemented in class 'a'␤current instr.: '_block11' pc 28 (EVAL_12:17)␤]
17:49 p6eval ..pugs: OUTPUT[alive␤]
17:49 p6eval ..elf 24470: OUTPUT[Undefined subroutine &GLOBAL::a called at (eval 119) line 8.␤ at ./elf_f line 3861␤]
17:49 TimToady looks like elf might make the same booboo
17:50 moritz_ perl6: class A { }; my $o = A.new; say "alive";
17:50 p6eval elf 24470, pugs, rakudo 34068: OUTPUT[alive␤]
17:50 moritz_ aye
17:58 ruoso hi TimToady
18:01 azawawi TimToady: i need to 'use STD;' at script startup even though i use it in Syntax::Highlight::Perl6; otherwise i get the following error: http://search.cpan.org/~azawawi/Syntax-Highlight-Perl6-0.0291/lib/Syntax/Highlight/Perl6.pm#BUGS_AND_LIMITATIONS
18:02 pugs_svn r24471 | eric256++ | [examples/games/wizard.pl] Upper case all names and added base class fudge for parameters
18:02 eric256 perl6: class Base { has $.foo }; class Deriving is Base {}; say Deriving.new( Base{ :foo(5) } ).foo()
18:02 p6eval rakudo 34068: OUTPUT[Syntax error at line 1, near "\ufeffclass Bas"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤]
18:02 p6eval ..elf 24470: OUTPUT[Parse error in: /tmp/6AHvHw3EM3␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: class Base { has $.foo }; cla␤WHERE:/\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤  STD_red/std.rb:224:in `comp_unit'␤
18:02 p6eval ..STD_r...
18:02 p6eval ..pugs: OUTPUT[*** Must only use named arguments to new() constructor␤    Be sure to use bareword keys.␤    at /tmp/jFtcbrsMCT line 1, column 58 - line 2, column 1␤]
18:03 eric256 perl6: class Base { has $.foo }; class Deriving is Base {}; say Deriving.new( Base{ :foo(5) } ).foo()
18:03 p6eval rakudo 34068: OUTPUT[5␤]
18:03 p6eval ..elf 24470: OUTPUT[Can't use bareword ("Base") as a HASH ref while "strict refs" in use at (eval 117) line 14.␤ at ./elf_f line 3861␤]
18:03 p6eval ..pugs: OUTPUT[*** Must only use named arguments to new() constructor␤    Be sure to use bareword keys.␤    at /tmp/hqfv6sB2oa line 1, column 58 - line 2, column 1␤]
18:03 ruoso moritz_, eric256, that's why mildew declares &a for class a, so a.new can be parsed as &a().new() and just work
18:03 eric256 unicode+pidgin != good friends
18:04 TimToady ruoso: EXPORTALL is something audreyt put into the spec; I don't know how she was expecting it to work
18:04 ruoso hmmm... right... and how do you think symbol exportation should work?
18:05 TimToady so feel free to make it work right, as long as parrotfolx agree
18:05 ruoso ok...
18:05 ruoso I think Foo::Bar::.EXPORTALL migth be sane then
18:05 ruoso considering that means calling the method EXPORTALL on the package Foo::Bar
18:06 ruoso std: Foo::Bar::.EXPORTALL
18:06 p6eval std 24471: OUTPUT[00:05 80m␤]
18:06 ruoso hm?
18:06 ruoso is that a success?
18:06 TimToady yes
18:06 ruoso ah.. ok
18:06 ruoso I think being a method of package is sane,
18:07 ruoso since it will call EXPORT if the package defines one
18:07 ruoso we still have the question whether defining EXPORT replaces or complements the default behavior
18:08 ruoso the most extensible would be for it to replace the default behavior
18:08 ruoso (by "default behavior" here I mean exporting the symbols in the EXPORT:: sub-package)
18:08 azawawi TimToady: any hint on 'Can't call method "bless" on an undefined value at STD.pm line 5269.'  when no use-ing STD in script main
18:10 TimToady what is STD.pmc doing at line 5269?
18:11 * azawawi checking
18:11 pmichaud (EXPORTALL as method) that was how I was thinking it was going to end up looking, too.  Either that or a multisub in some sort of available scope.
18:12 azawawi TimToady: $C = $::PARSER->bless($C);
18:12 iblechbot joined #perl6
18:12 azawawi TimToady: in sub statement { ... }
18:13 TimToady it's trying to reset the current language whatever the current value of $::PARSER is, so something in the outer context is letting $::PARSER be undefined
18:13 TimToady what are you calling as the top rule?
18:13 azawawi comp_unit
18:14 * azawawi is double checking it
18:14 preflex joined #perl6
18:14 TimToady statementlist should be setting it
18:15 TimToady and add_macro modifies it
18:15 adc_penner joined #perl6
18:16 ruoso [particle], pmichaud, jnthn, are you ok with EXPORTALL being a method of Package? i.e.: Foo::Bar::.EXPORTALL instead of Foo::Bar.EXPORTALL ?
18:17 pmichaud I'm fine with that for now.  If it doesn't work out we'll let you know.
18:18 [particle] yep, same here
18:18 ruoso TimToady, could that be changed in the spec?
18:19 TimToady don't ask silly questions :)
18:19 pmichaud ruoso: spec is in pugs repo... :-)
18:19 TimToady and I already said that that part was written by audreyt, not me...
18:20 pmichaud in general, if TimToady, myself, jnthn, and ruoso are in agreement on a change, then I think it's pretty safe to put it in the spec.  :-)
18:20 * ruoso just being polite ;)
18:20 ruoso hehe
18:20 TimToady just ask youself what you'd be doing if I were run over by a bus, and do that, unless I complain :)
18:21 TimToady if I get run over by a bus, I probably won't complain  :)
18:21 pmichaud (and the criteria I just mentioned is intended to indicate clear sufficiency, not a necessary requirement.)
18:22 TimToady I figure if anyone tries to do a power grab after I'm gone, everyone else will know what to do.  :)
18:22 pmichaud seance?
18:22 TimToady my theology probably requires me to boycott one of those...
18:22 TimToady though it worked for Samuel, it seems
18:23 pmichaud Besides, TheDamian already established that you're immortal.  :-)
18:23 TimToady actually, as soon as he established that, I started turning gray
18:23 TimToady so maybe I've been cursed now...
18:23 * eric256 figured TimToady was a bot anyway
18:23 pmichaud ah, so immortality only works if nobody else knows about it?
18:24 pmichaud sounds Heisenberg-ish
18:24 pmichaud "you can live forever, but only if you don't measure how long you've lived"
18:24 TimToady .oO(I'm going to have to move to a new body now...)
18:24 ruoso in the meanwhile...
18:25 pbuetow joined #perl6
18:25 ruoso I think it's a little weird that EXPORT could be a method of a Class instead of a Sub
18:26 pugs_svn r24472 | ruoso++ | [spec] Foo::Bar::.EXPORTALL instead of Foo::Bar.EXPORTALL
18:27 adc_penner joined #perl6
18:28 ruoso can you export a method as a method? is export in methods usually means turning it into a subroutine....
18:30 TimToady can certainly do a normal alias, which doesn't modify any signature trait
18:30 TimToady arguably we should mark the sig-mangling case differently when we export
18:31 ruoso hmmm... if EXPORT can be called as a method of a class, it means it's inheritable... that might be weird...
18:32 pmichaud that's kinda what I expect, though, if a class is wanting to change how it exports things.
18:35 ruoso my question is whether it makes sense for a Class to export things...
18:35 ruoso exportation is a "package" thing, in my mindset
18:35 ruoso we have Roles to do that with classes
18:38 pmichaud my first guess is that EXPORT is part of the Abstraction role
18:39 ruoso I'm not sure I follow
18:40 pmichaud anything that does Abstraction  (package, class, etc.)  can define an EXPORT
18:40 pmichaud anyway, I'm only half thinking about it at the moment -- focusing on another rakudo issue right now.
18:42 azawawi TimToady: i traced the $::PARSER bug; if i replace it with $Syntax::Highlight::Perl6::PARSER; then it works.
18:45 eric256 where do i find info about string interpolation?
18:46 pmichaud eric256: Synopsis 2
18:48 azawawi moritz_: can u help there? ;-)
18:54 alech joined #perl6
18:55 eric256 did $?OS move to something different?
18:56 masak rakudo: say $?OS
18:56 p6eval rakudo 34074: OUTPUT[Lexical '$?OS' not found␤current instr.: '_block11' pc 11 (EVAL_13:13)␤]
18:56 masak eric256: doesn't seem implemented.
18:57 ruoso wasn't it $*OS?
18:57 ruoso rakudo: say $*OS
18:57 p6eval rakudo 34074: OUTPUT[linux␤]
18:57 masak oh.
18:57 masak what ruoso said :)
18:57 macae joined #perl6
19:09 masak actually, both $*OS and $?OS are still in the spec, but they refer to runtime and compile time, respectively.
19:09 TimToady $?OS should be the OS of the compiler, while $*OS is the OS of the runtime
19:09 TimToady darn, you beat me
19:09 masak only by a second or so.
19:09 azawawi TimToady: i traced the $::PARSER bug; if i replace it with $Syntax::Highlight::Perl6::PARSER; then it works.
19:10 * azawawi feels a deja-vu
19:10 masak I had to install App::Ack to be able to answer.
19:10 alester That's good.
19:10 alester Your machine thanks you.
19:10 masak it does, yes.
19:11 moritz_ ack++
19:11 masak I'm still training it in various ways, got it two days ago.
19:12 masak Emacs is perhaps the least obedient program right now, it does tens of annoying things that Aqua Emacs didn't do on the Mac.
19:12 masak I don't understand how it can differ so much.
19:15 * masak visits #emacs to complain a bit
19:21 smtms joined #perl6
19:27 adc_penner2 joined #perl6
19:43 justatheory joined #perl6
19:46 hercynium joined #perl6
19:53 azawawi moritz_: ping
20:00 moritz_ joined #perl6
20:00 cookys joined #perl6
20:00 rafl joined #perl6
20:00 ilogger2 joined #perl6
20:00 Helios- joined #perl6
20:00 krunen joined #perl6
20:00 Helios- joined #perl6
20:01 [particle] TimToady: ping
20:02 azawawi lambdabot: ping ;-)
20:02 azawawi @lambdabot: ping ;-)
20:02 lambdabot Unknown command, try @list
20:04 azawawi moritz_: i think i found the bug when using STD.pm, context var emulation assumes that 'our var1' will be in main:: but that is not true in use it in another package
20:17 * azawawi sleep &
20:19 ejs1 joined #perl6
20:23 adc_penner joined #perl6
20:26 alech joined #perl6
20:28 bsdperl joined #perl6
20:34 eric256 i have a number that keeps printing as an Int
20:34 pmichaud which number is that?
20:35 meppl joined #perl6
20:36 eric256 sorry got distracted ;) the life of my monsters.  i can't  $.life prints as Int, $.life.perl prints a "Int" and $.life.perl.say prints "Int"
20:37 [particle] you mean it literally prints "Int" ?
20:37 [particle] that likely means its undefined, and it's printing the stringified name of its prototype
20:39 eric256 yes
20:39 eric256 okay
20:40 masak rakudo: my Int $a; say $a.perl
20:40 p6eval rakudo 34077: OUTPUT[Int␤]
20:41 eric256 rakudo: my Int $a; say $a
20:41 p6eval rakudo 34077: OUTPUT[Int␤]
20:41 eric256 thats a bit odd
20:41 eric256 lol
20:41 masak indeed.
20:41 masak I wouldn't expect that from an int.
20:41 masak pmichaud: should it do that?
20:42 eric256 the odd thing is i am setting it
20:42 eric256 somewhere somehow its getting unset
20:42 eric256 :wq
20:43 TimToady [particle]: pong
20:44 pugs_svn r24473 | eric256++ | [wizard.pl] Removed stringification
20:44 lichtkind joined #perl6
20:44 TimToady I suspect stringifying an undef should result in '' and a warning
20:45 TimToady (where undef is merely a protoobject, not a Failure)
20:46 TimToady either that, or it should stringify to something like 'undef(Int)'
20:46 * masak submits rakudobug
20:47 TimToady in any case, it appears that stringifying a protoobject to its name is probably a mistake in the absence of .perl
20:48 TimToady maybe 'Int()' is sufficient to indicate emptiness and non-typename-ness
20:49 [particle] TimToady: i'd appreciate your review of S19, when you have a chance
20:49 [particle] i'm working on it some more today
20:49 TimToady copious free time, and all that...
20:50 [particle] of course.
20:50 TimToady but I'll try to get to it
20:50 [particle] one thing... i changed the command line to be more p6-like, in that positional and named can be passed interchangeably
20:51 TimToady have you taken into consideration possible confustion with p5 commands?
20:51 [particle] any immediate objection?
20:51 TimToady s/t//
20:51 [particle] that's on my todo list
20:51 [particle] thinking about it currently
20:51 TimToady and do you have the +RTS before -RTS now? :)
20:51 [particle] ++RTS=foo ... --RTS=foo yes
20:51 TimToady k
20:52 eric256 rakudo: class WObject { has $.name }; class Mortal is WObject {  has Int $.life is rw; }; class Monster is Mortal; my $m = Monster.new( WObject{ :name("Test") },  Mortal{ :life(10) } ); say $m.life;
20:52 p6eval rakudo 34078: OUTPUT[Int␤]
20:52 TimToady I'll try, but gotta commute to $job now
20:52 [particle] there's a grammar in there for you to stare at, too
20:52 [particle] sure, enjoy the relative movement
20:55 eric256 any ideas about that?  looks like some sort of multiple inheritance bug cause if you remove the WObject calls it works correctly
20:56 masak eric256: I call bug on that.
20:56 eric256 rakudo: class Mortal is WObject {  has Int $.life is rw; }; class Monster is Mortal; my $m = Monster.new(  Mortal{ :life(10) } ); say $m.life;
20:56 p6eval rakudo 34078: OUTPUT[Attempt to inherit from non-existent parent class␤current instr.: 'die' pc 14378 (src/builtins/control.pir:188)␤]
20:56 eric256 rakudo: class Mortal  {  has Int $.life is rw; }; class Monster is Mortal; my $m = Monster.new(  Mortal{ :life(10) } ); say $m.life;
20:56 p6eval rakudo 34078: OUTPUT[10␤]
20:57 masak rakudo: class A {}; class B is A { has Int $.foo }; class C is B {}; my $m = C.new( B{ :foo<5> } ); say $m.foo;
20:57 p6eval rakudo 34078: OUTPUT[5␤]
20:57 masak rakudo: class A {}; class B is A { has Int $.foo }; class C is B; my $m = C.new( B{ :foo<5> } ); say $m.foo;
20:57 p6eval rakudo 34078: OUTPUT[5␤]
20:57 masak hm.
20:58 masak rakudo: class A { has $.bar; }; class B is A { has Int $.foo }; class C is B; my $m = C.new( A{ :bar<baz> }, B{ :foo<5> } ); say $m.foo;
20:58 p6eval rakudo 34078: OUTPUT[Int␤]
20:58 masak aha.
20:58 * masak submits rakudobug
20:58 eric256 thanks
20:59 pmichaud (stringifying protoobject)  We're just following the spec.  :-) :-)
20:59 masak eric256: I can keep going like this all night. :)
20:59 masak pmichaud: :)
20:59 eric256 rakudo: class A { has $.bar; }; class B is A { has Int $.foo }; class C is B; my $m = C.new( B{ :foo<5> } ); say $m.foo;
20:59 masak eric256: there's that strange character again.
20:59 mj41 joined #perl6
20:59 eric256 rakudo: class A { has $.bar; }; class B is A { has Int $.foo }; class C is B; my $m = C.new( B{ :foo<5> } ); say $m.foo;
20:59 eric256 why don't i see it?
20:59 masak eric256: (i.e. p6eval didn't hear you)
20:59 eric256 rrakudo: class A { has $.bar; }; class B is A { has Int $.foo }; class C is B; my $m = C.new( B{ :foo<5> } ); say $m.foo;
21:00 eric256 rakudo: class A { has $.bar; }; class B is A { has Int $.foo }; class C is B; my $m = C.new( B{ :foo<5> } ); say $m.foo;
21:00 p6eval rakudo 34078: OUTPUT[5␤]
21:00 eric256 :(
21:00 pmichaud note that $m is out of scope
21:00 eric256 ;)
21:00 pmichaud oh, no it's not
21:00 pmichaud sorry, misread the curlies.
21:00 eric256 rakudo: class A { has $.bar; }; class B is A { has Int $.foo }; class C is B; my $m = C.new( B{ :foo<5> } ); $m.bar = 1; $m.foo =2; say $m.foo;
21:00 p6eval rakudo 34078: OUTPUT[Cannot assign to readonly variable.␤current instr.: 'die' pc 14378 (src/builtins/control.pir:188)␤]
21:01 eric256 rakudo: class A { has $.bar is rw; }; class B is A { has Int $.foo is rw }; class C is B; my $m = C.new( B{ :foo<5> } ); $m.bar = 1; $m.foo =2; say $m.foo;
21:01 p6eval rakudo 34078: OUTPUT[2␤]
21:01 eric256 hmm odd, i was trying to work around it by assiging outside the creator, but it was giving me a weird error.
21:01 masak constructor.
21:01 eric256 true that
21:04 eric256 rakudo: class Mortal { has Int $.life is rw;}; class Monster is Mortal {}; my $m = Monster.new(); $m.life = (1..5).pick; say $m.life;
21:04 p6eval rakudo 34078: OUTPUT[Type mismatch in assignment.␤current instr.: 'die' pc 14378 (src/builtins/control.pir:188)␤]
21:04 masak rakudo: my Int $a = (1..5).pick; say $a
21:04 p6eval rakudo 34078: OUTPUT[Type mismatch in assignment.␤current instr.: 'die' pc 14378 (src/builtins/control.pir:188)␤]
21:05 masak rakudo: say (1..5).pick.WHAT
21:05 eric256 well yea if you wanted a short case
21:05 p6eval rakudo 34078: OUTPUT[List␤]
21:05 eric256 lol
21:05 masak there's the problem.
21:05 masak although I think it's a bit mean of Rakudo not to accept the only Int in that List.
21:05 eric256 aye but whats the solutions?
21:05 masak eric256: don't know yet.
21:05 eric256 hehe okay
21:05 masak rakudo: say (1..5).pick[0].WHAT
21:05 p6eval rakudo 34078: OUTPUT[Int␤]
21:05 pmichaud current spec for .pick is that it returns a List.  There's been discussion that it should return a capture instead.
21:06 masak rakudo: my Int $a = (1..5).pick[0]; say $a
21:06 p6eval rakudo 34078: OUTPUT[4␤]
21:06 masak eric256: there you go.
21:06 masak not pretty, but there you go. :)
21:06 eric256 well i can tell you from the coding side its a bit odd to ask it to pick one Int and not get an Int back
21:06 masak eric256: aye.
21:06 pmichaud again, I just implement the spec, as given by the synopses and the test suite.  :-)
21:07 masak pmichaud++
21:07 eric256 i'm actualy surprised the tests didn't cover that. but they probably didn't have Int on there and i think it works then, can't Int force a List of 1 into 1? hmm
21:07 masak eric256: thing is, Rakudo is working according to spec here. as pmichaud pointed out.
21:08 masak eric256: it's the spec that's silly.
21:08 pmichaud our List multi method pick ( @values: Int $num = 1, Bool :$repl )
21:08 pmichaud See?  It returns a *List*.  :-P
21:08 pmurias joined #perl6
21:09 masak pmichaud: how would returning a Capture solve anything?
21:09 pmichaud because it would give the first element if assigned to a scalar, and a list if assigned to a list, presumably.
21:09 masak ooh, cunning.
21:09 eric256 oh i don't doubt its the spec
21:09 pmichaud at least I _think_ that's what was said.  Checking...
21:10 masak yes, a Capture then, please.
21:10 * eric256 doesn't no the difference between a List a Capture and an array of Int at this point
21:10 eric256 need to go back to perl school
21:10 masak eric256: that's because you are a Perl 5 programmer, presumably. :)
21:10 eric256 indeed
21:10 masak the line is not that sharp in Perl 5.
21:11 alech joined #perl6
21:12 * eric256 aliases .pick_one to .pick[0] ;)
21:12 masak eric256++
21:13 masak eric256: now you know how it feels to develop a web application in Rakudo :)
21:13 masak or begin to realise, at least.
21:15 eric256 yea no kidding
21:15 eric256 getting close to a working game though ;)
21:15 masak eric256: did you have time to look at the game I sent you?
21:15 * masak is curious
21:16 eric256 yes. and realized that not understanding the specs or perl6 i wasn't going to get anywhere with it ;)
21:16 eric256 lol
21:17 masak eric256: the specs are recommended reading.
21:17 masak eric256: so you didn't try playing it? :)
21:17 eric256 no not yet
21:17 masak ok, no sweat.
21:19 masak eric256: I remember playing wizard.pl, many years ago. I remember it was quite difficult.
21:19 japhb joined #perl6
21:20 masak eric256: once you get it running under Rakudo, consider putting a comment to that effect in the file, along with the Rakudo revision number.
21:20 pugs_svn r24474 | lwall++ | [Spec] redefine WHAT to stringify to typename plus '()'
21:21 Southen_ joined #perl6
21:21 pmichaud TimToady: is this still the "shortname" plus '()' ?
21:21 gfldex joined #perl6
21:22 pmichaud I guess it is (reading the spec)
21:22 pmichaud does "shortname" here mean the last component of a ::-separate name?  I.e., would   Foo::Grammar have a shortname of "Grammar"?
21:24 TimToady no, Foo::Grammar in this case
21:24 pmichaud okay.  so "shortname" as in "name without all of the :auth/:ver/:other stuff attached."
21:25 TimToady anything short is always translated to that "short name" immediately by the compiler
21:26 TimToady *shorter
21:26 TimToady if not the long name...
21:26 TimToady you can use 'Grammar' within Foo, but the compiler immediately figgers out it's Foo::Grammar
21:27 pmichaud that's fine -- I'm just checking what "stringifies to short name" means here :-)
21:30 TimToady joined #perl6
21:31 TimToady @messages
21:31 lambdabot mncharity said 16d 21h 33m 50s ago: fyi, m:P5/a/ doesn't have an atom node (unlike m/a/ and m/:P5 a/). m/:P5(1)a/ and m/:P5()a/ also look odd. those are just fyi. More of a problem, m/:P5 a b/ looks
21:31 lambdabot like it's parsed as p5 /a b/x rather than /a b/. m/:P5 a ?b/ too. Not a blocker, but I'm hoping to pour the p5 re.t through STD_blue at some point.
21:31 lambdabot PerlJam said 16d 5h 10m 44s ago: feature request: expose the "types" (classes, roles,etc.) that perl6 knows about to the user in some way. my @t = ::TYPES; # or something.
21:31 lambdabot azawawi said 5d 5h 51m 30s ago: I've documented the bugs i encountered so far in http://search.cpan.org/perldoc?Syntax::Highlight::Perl6 . Can we dump Moose.pm dependency for STD.pmc? Moose seems
21:31 lambdabot not to work correctly on my strawberry win32. Thx. TimToady++
21:31 masak rakudo: class A::B {}; class A { say B.WHAT } # should this work?
21:31 lambdabot mncharity said 4d 22h 27m 53s ago: Just a reminder, since STD was touched - STD_blue elf broke on r24080, and has stopped tracking head, staying with r24067. I've been considering r24080, with
21:31 p6eval rakudo 34081: OUTPUT[Failure␤]
21:31 lambdabot little thought, a probable STD regression, given the presence of "Unknown routines: sub called at " messages, which seemed at least some sort of STD bug.
21:34 maerzhase joined #perl6
21:36 ejs1 joined #perl6
21:37 xuser_ joined #perl6
21:45 pjcj joined #perl6
21:50 eric256 is there any way to disable the stack trace? that gets realy annoying
21:53 masak eric256: :)
21:53 masak tell me about it.
21:53 masak 1. ask on #parrot on irc.perl.org
21:53 masak 2. I think it'll get better with time
21:53 moritz_ 2. submit patch
21:54 masak there are already some bug tickets about that.
21:54 masak hm, moritz_' "2." is decidedly better than mine. :)
21:55 masak there's one ticket where a person is complaining (based on expectations from Perl 5, I guess) that "die" produces a stack trace
21:55 masak ISTR that pmichaud|jonathan has said that ideally, the stack trace shouldn't involve Parrot/PCT internals.
21:56 moritz_ #56604 "Not all error messages should include a stack trace"
21:57 eric256 yea cause right now i get a stack trace, a backtrace and a memdump
21:57 masak moritz_++
21:57 eric256 thats a bit overkill
21:58 masak eric256: if there's something I've found, it's that complaining, loudly and repeatedly, tends to help.
21:58 moritz_ like, about lexicals? ;-)
21:58 masak that is the prime example.
21:58 eric256 and i can segfault it in interactive mode consistently ;) jsut try to redeclare the same class three times
21:59 masak eric256: ooh!
21:59 * masak tries
21:59 moritz_ rakudo: class A {}; class A { }; class A { };
21:59 p6eval rakudo 34081: OUTPUT[Class A already registered!␤␤current instr.: '!keyword_class' pc 15712 (src/builtins/guts.pir:352)␤]
21:59 eric256 only works in interactive mode, no idea why
21:59 masak eric256: not for me.
22:00 masak I wrote `class A {};` three times on the interactive prompt.
22:00 eric256 actualy it stoped for me to
22:00 moritz_ it doesn't segfault until I quit the repl
22:00 masak ah.
22:00 masak oh.
22:00 masak yes.
22:01 masak redefining it once is enough.
22:01 moritz_ same for eval 'class A is B { }' (where B doesn't exists before)
22:01 * masak submits rakudobug
22:02 moritz_ masak: please attach it to the existing ticket
22:02 eric256 running the following three times in interactive will segfault "class WObject {has $.name;}; class Mortal is WObject {has Int $.life is rw;}; class Monster is Mortal;  my $m = Monster.new( WObject{ :name("Test") }.  Mortal{ :life(10) } ); say $m.life;"
22:02 masak moritz_: the existing ticket?
22:02 moritz_ masak: it's all the same stack trace
22:02 moritz_ masak: either eval 'class A is B { }' or declaration-order.t
22:03 eric256 opps got a period after the } should be a ,
22:03 apeiron joined #perl6
22:04 moritz_ masak: #60368
22:04 moritz_ afk
22:05 masak moritz_: thanks
22:12 pmichaud disabling the stack trace is definitely something we'd like to do.
22:12 hanekomu_ joined #perl6
22:12 pmichaud At the moment Parrot doesn't give us a lot of control over that -- we either get a big stack trace, or none.
22:25 * eric256 casts a vote for none
22:25 eric256 ;)
22:25 masak maybe you could patch parrot locally to stop bugging you :)
22:32 pmichaud I do think we might start using the 'priority field on rt tickets as a way of indicating what needs working on more quickly.
22:32 renormalist joined #perl6
22:34 TimToady I vote for putting the stack trace into a file and mentioning the url of it in the message.
22:35 [particle] that could be fun when your map { eval {...} } 1..* fails
22:35 pmichaud TimToady: 22:12 <pmichaud> At the moment Parrot doesn't give us a lot of control over that -- we either get a big stack trace, or none.
22:35 pmichaud :-)
22:35 TimToady and that's why I'm voting  :)
22:35 pmichaud I'll pass it along to the powers that be.
22:37 TimToady the dump of all the exceptions hiding within $! should probably go to the same place, I expect
22:38 [particle] is that $!.perl ?
22:38 TimToady basically, I think we need cockpit recorder, and should not let complaints about verbosity keep us from it
22:38 TimToady *recorders
22:38 pmichaud TimToady: I agree with that very much.
22:39 [particle] so, > blackbox.pl
22:39 TimToady [particle]: I suspect $!.perl would be largely unreadable
22:39 TimToady .html
22:39 masak TimToady: btw, happy 21st!
22:39 justatheory joined #perl6
22:40 TimToady well, I was hoping she'd be a little more grown up by now, but some are just late bloomers...
22:40 masak I think she's doing fine.
22:40 [particle] i had a beer and nachos to celebrate, although i've only known her since she was 5.005_03
22:44 lichtkind if i say inside a class has $antenna no get/setter will generated so its private or what?
22:44 [particle] i'm looking at PERL5OPT now, and noticing the special taint handling. what's the current thoughts on perl 6 taint mode? default? similar syntax/semantics?
22:45 lichtkind [particle]: hello .. not seen in a while
22:45 masak lichtkind: S12:530
22:46 [particle] lichtkind: http://perlcabal.org/syn/S12.html#Attributes
22:46 [particle] masak++ beat me to it :)
22:46 masak only by a second or so.
22:47 lichtkind what means :530?
22:47 lichtkind #530 ?
22:48 lichtkind the attr defined there are all with . or ! i asked what happes if i leave this out
22:48 lichtkind nonono
22:49 lichtkind is see few lines below everything was there
22:49 lichtkind thanks
22:49 [particle] it means line 530, in the pod
22:49 lichtkind yeah but i see it in the brwoser
22:50 [particle] i forget where the html with pod line numbers lives, so i couldn't give you the exact location in the html
22:51 lichtkind thanks but "Outside the block, you must use the ! form." this sounds like nonsense since outside the block is outside the class where privates aren't
22:52 lichtkind and can have a class an $.brain and $!brain ?
22:52 lichtkind i suppose no
22:53 masak no.
22:54 lichtkind thanks
22:54 lichtkind oop was one of the parts i got arround but now have to since writing part 6 of my tutorial :)
22:54 masak lichtkind: you're right about the "Outside the block" sentence. I don't understand it either.
22:55 lichtkind masak: the only sense it makes are in classes that inherit
22:56 lichtkind when my tutorial is finished i will re publish it and hopefully in english :)
22:57 masak lichtkind: I thought about that too, but aren't private attributes supposed to be visible only to the class that defines them?
22:58 masak lichtkind: looking forward to a future republishing in English :)
22:58 lichtkind that wouldnt make sence tince when you overload something in inherting classes you have to access
22:58 masak lichtkind: but it's _private_.
22:59 lichtkind it will be outside the class
22:59 masak aw, maybe you're right.
22:59 masak something like this:
22:59 masak rakudo: class A { has $foo }; class B is A { method x { say $!foo } }; B.new.x
22:59 p6eval rakudo 34088: OUTPUT[␤]
23:00 masak rakudo: class A { has $foo = 7 }; class B is A { method x { say $!foo } }; B.new.x
23:00 p6eval rakudo 34088: OUTPUT[␤]
23:00 masak is that a bug? :)
23:00 lichtkind maybe
23:00 lichtkind i was away for a while
23:00 masak rakudo: class A { has $foo = 7; method x { say $!foo } }; say A.new.x
23:00 p6eval rakudo 34088: OUTPUT[7␤1␤]
23:01 masak oops.
23:01 masak rakudo: class A { has $foo = 7; method x { say $!foo } }; A.new.x
23:01 p6eval rakudo 34088: OUTPUT[7␤]
23:01 masak rakudo: class A { has $foo = 7 }; class B is A { method x { say $!foo } }; B.new.x
23:01 p6eval rakudo 34088: OUTPUT[␤]
23:01 masak looks like a bug to me.
23:01 lichtkind i would say too
23:01 * masak submits
23:02 lichtkind btw one of benefits of say over print : s a y are close together
23:02 lichtkind easy typing
23:02 masak aye. TimToady++
23:02 lichtkind Mike Cowlishaw++
23:02 masak rakudo: class A { has $!foo = 7 }; class B is A { method x { say $!foo } }; B.new.x
23:02 p6eval rakudo 34088: OUTPUT[␤]
23:03 lichtkind it was invented in rexx twenty years ago
23:03 masak oh, this has nothing to do with the absence of !
23:03 lichtkind http://en.wikipedia.org/wiki/REXX#Simple_variables
23:03 masak lichtkind: ah, nice.
23:04 lichtkind maybe its intended or a bug but raising the question is necesary
23:04 masak aye.
23:05 lichtkind masak: i saw you in kopenhagen
23:05 lichtkind i was the 5th from left in 6 row :)
23:05 lichtkind but had also talkes :)
23:07 lichtkind but sorry for the question but hwat exactly is a meta class
23:07 lichtkind its not the proto object of a class
23:07 masak lichtkind: I'm not sure I saw you. :)
23:07 lichtkind masak: i held the lightning talk about the editor
23:07 masak lichtkind: what makes you think I know about meta classes? :P
23:08 lichtkind i just guessed
23:09 masak lichtkind: may I recommend this book: http://www.amazon.com/Putting-Metaclasses-Work-Ira-Forman/dp/0201433052
23:10 masak I haven't read it, but it will most likely tell you more than I can.
23:10 lichtkind i seeked for a one sentence answer :)
23:10 masak lichtkind: hokay. I'll give it a try.
23:10 masak lichtkind: as far as I know, a meta class is the class of a class. I'm not sure Perl 6 has'em.
23:11 masak Smalltalk does, however.
23:11 lichtkind of course  p6 has everything
23:11 masak well, apart from that.
23:12 lichtkind but i saw the term meta class in several blog entrys about p6 from jonathan and moritz
23:12 lichtkind so i suppose yes
23:13 mpeter joined #perl6
23:14 masak lichtkind: oh, THAT meta class! :)
23:15 lichtkind :)
23:15 masak well, the answer is in S12.
23:15 masak go read that.
23:15 lichtkind i searched there for meta but i find it
23:15 masak also, a meta class gives you access to interesting things in the class, like its methods.
23:17 masak the word 'meta' in S12: 20 hits
23:17 masak don't know how you missed them. :)
23:18 lichtkind because class you write in german with a k :)
23:18 masak excuses, excuses :)
23:18 lichtkind yes sir
23:19 lichtkind how you can smell  this
23:19 * jnthn returns from the bar
23:19 masak jnthn: I have a fresh set of bugs for you, dear sir.
23:19 lichtkind jnthn: cheers, ahoj
23:19 masak lichtkind: instinct.
23:20 lichtkind masak: programmers don't have real life instincts
23:20 masak lichtkind: some do.
23:20 pmichaud jnthn: I'm running final tests before merging 'main' branch into trunk.
23:20 masak it's taken me years to develop them, though.
23:20 jnthn lichtkind: ahoj
23:20 lichtkind jnthn: yes we discussed somthing about inheriting privat variables
23:20 jnthn pmichaud: Great! :-)
23:20 apeiron_ joined #perl6
23:20 masak jnthn: yes, see latest rakudobug ticket :)
23:20 pmichaud jnthn: the use code is now straightforward :-)
23:21 masak pmichaud++
23:21 lichtkind pmichaud++
23:21 jnthn pmichaud++
23:21 jnthn pmichaud: It was quite short before. ;-)
23:22 pmichaud http://nopaste.snit.ch/15028
23:23 jnthn pmichaud: Dobre, ale to je 'use'?
23:23 masak :)
23:23 jnthn oh, language...
23:23 jnthn pmichaud: Good, but what's "use" to?
23:23 masak _I_ got you.
23:23 jnthn s/to/dot/
23:23 jnthn s/dot/do/
23:23 pmichaud it does the work of 'use'
23:23 pmichaud it's the same function we had before for doing use.
23:23 jnthn pmichaud: Please learn Slovak, it's the only thing I can speak after beer... ;-)
23:24 jnthn Ah, cunning. :-)
23:24 pmichaud it finds the appropriate file, compiles it if needed, runs its :load :init code and then its mainline
23:24 jnthn Great!
23:24 jnthn It looks good to me.
23:25 pmichaud I already tested it with the CGI/URL/URL::Grammar modules, works great.
23:25 eric256 can we pre-compile modules then?
23:25 pmichaud at least, it doesn't crash.
23:25 [particle] see what november does....
23:25 pmichaud as soon as my various 'make test' runs complete, I'll commit and hopefully people can test.
23:25 jnthn pmichaud: Is that, tested it withou the type registry, or with?
23:25 pmichaud w/o
23:25 jnthn Ok, thought so.
23:26 eric256 or compile perl programs to exe with all required modules embeded in compiled form? ;)
23:26 pmichaud but the type registry should jsut be able to look in the namespace now -- no @UNDER_CONSTRUCTION
23:26 jnthn pmichaud: Ok, good.
23:26 jnthn Feel free to play with it.
23:26 * lichtkind has finally grokes delegation
23:26 pmichaud I will, if you're not going to be around.
23:26 lichtkind groked
23:26 jnthn I'm flying/seeing friends/family I didn't see for quite a long time over the next couple of days.
23:26 masak lichtkind: 'grokked', if you ask me. :)
23:27 pmichaud that sounds like an excellent idea.  I'll make sure to update your karma for all of the type stuff :-)
23:27 jnthn pmichaud: If you go ahead and merge/fix up the branch, I won't mind in the least.
23:27 lichtkind masak: i dunno im alien to earth, but glad to be german :)
23:27 pmichaud I may indeed do that.  I do want to get parameters and signatures done, but the type registry is an important pre-req to that.
23:28 jnthn pmichaud: The work was more in putting X in place Y rather than anything clever.
23:28 masak lichtkind: :)
23:28 jnthn So if you make sure you register stuff in places my branch does, it should be fine.
23:28 eric256 lichtkind:  http://www.parrotblog.org/2008/05/p6object-perl-6-metaclasses-for-parrot.html talks about metaclasses somewhat
23:28 lichtkind thanks
23:29 jnthn Be careful about the subtleties over lexical types.
23:29 pmichaud yes, I'm thinking you've already uncovered most of the landmines, so it shouldn't be too difficult.
23:29 jnthn erm, lexical types that do Abstraction
23:29 jnthn I *think* STD.pm gets the wrong right now, FWIW.
23:29 pmichaud okay, it's possible.
23:29 jnthn If it gets them right, I really couldn't see how.
23:30 jnthn It looked like it just registered the name as a type.
23:30 jnthn But I couldn't see how it cleared it up at block exits, when lexical type vars when out of scope.
23:37 lichtkind jnthn: and by the other way the release i wanted to do on the hackathon in your loft is finally out, better than i thought
23:37 [particle] "by the way"
23:38 masak OTOH, "on the other hand" :)
23:39 pmichaud branch merged.  If anyone wants to test November with the latest trunk it would be greatly appreciated.
23:39 jnthn Correct English is overrated.
23:39 pmichaud Do we have any tests for MAIN?
23:39 masak Goodenuf English FTW.
23:39 jnthn lichtkind++
23:40 lichtkind thanks but i really wish that kephra will be accepted by perl community
23:40 rakudo_svn r34090 | pmichaud++ | Merge Rakudo 'main' branch (refactor load/init/main) into trunk.
23:40 lichtkind this week i added the autopluggable localisation system
23:40 jnthn masak: Given that I spend plenty of time speaking to people these days in an approximation of their language, I don't really feel I have any high ground to stand on with regard to English. :-)
23:41 masak jnthn: that's good. people who keep standing on that high ground has a tearful future to look forward to. :)
23:42 Eevee joined #perl6
23:43 masak as an Esperanto speaker, I tend to have very high understanding for people's lack of mastery of English. but I still believe English is the future.
23:43 masak it's even the present, to a great degree.
23:46 lichtkind [particle] , masak: that "false" english was no mistake :)
23:46 masak pmichaud: compilation error in November.pm
23:47 jnthn masak: In trunk?
23:47 masak aye.
23:47 jnthn Ah.
23:47 masak "attempt to define attribute '' outside of class"
23:48 masak ...and I'm pretty sure we don't do that anywhere :)
23:49 jnthn Fixing that case without the type registry not in place, may well make the problem with the type registry break November disappear too.
23:50 masak jnthn: now you're just abusing English for no good reason. :)
23:51 jnthn masak: You underestimate the power of boravicka... :-|
23:52 masak jnthn: np. jnthn++ for still being awake after the beer.

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

Perl 6 | Reference Documentation | Rakudo