Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-06-15

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:03 lizmat yes, it was my change… I'll roll back because pmichaud++ didn't like those changes anyway...
00:03 timotimo_ ah, those changes
00:04 lizmat adding typed hash support to List.classify and List.categorize
00:06 lizmat if the fix makes ok, I'll commit and start a spec test while going to bed
00:11 timotimo_ t/spec/S32-io/IO-Socket-INET.t ............................ Failed 1/21 subtests
00:11 timotimo_ is this known?
00:12 lizmat nope
00:12 dalek rakudo/nom: 686cf53 | (Elizabeth Mattijsen)++ | src/core/List.pm:
00:12 dalek rakudo/nom: Undo typed hash support for List.(classify|categorize)
00:12 dalek rakudo/nom:
00:12 dalek rakudo/nom: pmichaud didn't like it.  And he was right.  :-)
00:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/686cf53017
00:12 lizmat not with me
00:12 lizmat starting spectest and sleep&
00:13 timotimo_ oke
00:13 timotimo_ probably changes in my socket stuff that i failed to track properly
00:16 sorear https://www.youtube.com/wa​tch?v=92sKmO-AHZQ#t=1782s # i see this is online now too :D
00:20 timotimo_ it seems the socket tests actually work
00:21 salv0 joined #perl6
00:22 sjn joined #perl6
00:22 diakopter sorear: you're immortal
00:23 [Coke] timotimo_: you can check github.com/coke/perl6-roast-data to see if something is a known failure.
00:23 timotimo_ r: my %h{Str;Str}
00:23 camelia rakudo b2072f: OUTPUT«===SORRY!===␤Invalid hash shape; type expected␤»
00:23 timotimo_ r: my %h{Str(Any)}
00:23 camelia rakudo b2072f: OUTPUT«===SORRY!===␤Invalid hash shape; type expected␤»
00:23 sorear diakopter: no, only until a major network runs clips of the keynote and youtube takes down the video for retroactive copyright infringement
00:25 timotimo_ https://github.com/rakudo/rakudo/pull/163 - the pull request is out :)
00:25 dalek v5: cd6b480 | (Tobias Leich)++ | lib/Perl5/Actions.nqp:
00:25 dalek v5: fix args passed to indirect object call
00:25 dalek v5: review: https://github.com/rakudo-p5/v5/commit/cd6b48063e
00:32 sorear diakopter: and anyways, http://mdk.per.ly/files/2012/08/IMG_0365.jpg already exists
00:32 timotimo_ hm, maybe i'll throw a proper error for the other die, so that it at least gives a trace ...
00:37 timotimo_ how can i throw a non-typed exception with the cursor?
00:37 timotimo_ oh, maybe just a comp exception
00:39 timotimo_ aah, X::Comp::AdHoc
00:43 timotimo_ i think i'll turn a few more nqp::die's into AdHoc errors with more info
00:51 mtk joined #perl6
01:03 sqirrel_ joined #perl6
01:06 dukeleto joined #perl6
01:19 FROGGS joined #perl6
01:20 timotimo_ wasn't there some syntax that would allow me to do this?
01:20 timotimo_ r: class Dog { has $.tail; has $.mouth }; my (:$tail, :$mouth) = Dog.new(:tail<fluffy>, :mouth<drooly>); say $tail; say $mouth;
01:20 camelia rakudo b2072f: OUTPUT«Dog.new(tail => "fluffy", mouth => "drooly")␤Nil␤»
01:23 raiph joined #perl6
01:45 raiph joined #perl6
01:53 census joined #perl6
01:56 xenoterracide|2 joined #perl6
02:18 * colomon is trying to remember how to reverse a hash in p6
02:20 timotimo_ first you .invert it and push the result into a hash
02:20 colomon timotimo_++
02:21 * timotimo_ remembers it from one of the advent calendar posts
02:21 colomon though I'm now looking at categorize and thinking that might be even better
02:21 labster I like the sound of this
02:24 ssutch i did it!
02:25 ssutch (with the gracious help and love at #perl6)
02:25 ssutch protocol buffer grammar! https://gist.github.com/samuraisam/5786535
02:25 colomon \o/
02:25 ssutch time for a beer!
02:26 ssutch if anyone has any suggestions, on how to make the grammar suck less, im happy to listen
02:27 timotimo_ did you see proto tokens yet?
02:28 timotimo_ you can write proto token proto { <...> };  and then you can write token token proto:sym<import> { <sym> <.ws> ... } and token proto:sym<package> { <sym> <.ws> ... }
02:29 timotimo_ so you don't have to write "import" and "option" and such twice and you get the big alteration in your current "token proto" for free
02:29 timotimo_ also, if you use the sigspace modifier, you don't have to put <.ws> between each two things, i think that would lead to the biggest improvement
02:30 timotimo_ also: that "stupid syntax highlighting" thing! :D i do that all the time ;(
02:30 ssutch lol
02:31 ssutch some how github gets it almost correct
02:31 ssutch timotimo_ i used the proto tokens for matching str-lit, toward the bottom
02:32 ssutch but i should do that instead of alternation in token proto
02:33 timotimo_ ah, indeed, i hadn't read that far ahead
02:34 colomon ssutch: did you try using rule instead of token, only to discover that ratcheting was a problem?
02:34 timotimo_ be advised you may use spaces inside <[...]> if you feel it makes the code more readable (i have no idea if grouping applies, for instance for char-escape)
02:34 ssutch also, i ran into a bug using sigspace (read: 'rule' instead of 'token') but i can try it again once i have some tests… rakudo has a bug when you type rule { ^ <XXX> $ }
02:35 ssutch colomon: is what i describe above what you mean?
02:35 timotimo_ can you elaborate on that?
02:35 timotimo_ ratcheting means the grammar will not ever backtrack while inside the rule
02:35 timotimo_ so ... maybe?
02:36 ssutch ah, well, to fix the problem i mention, i had to delete the space between the opening bracket and the caret
02:36 ssutch so rule {^ … works fine where rule { ^ … does not
02:36 colomon ratcheting wouldn't be a bug.
02:36 colomon but it might not work for what you want.
02:37 ssutch colomon: yeah, i think i understand what you mean, but i don't think i can give you a very good answer unfortunately
02:37 ssutch im still pretty green at this
02:38 colomon ssutch: I don't think there's anyone but TimToady who could be said to be really experienced at p6 grammars. More people have implemented them than have used them for large projects.  ;)
02:39 ssutch i was reading over ratcheting in S05, and slammed my head into it while trying to do balanced string literals
02:39 timotimo_ r: say "foo bar baz" ~~ rule { ^ (\w+)+ % <.ws> $ };
02:39 camelia rakudo b2072f: OUTPUT«「foo bar baz」␤ 0 => 「foo」␤ 0 => 「bar」␤ 0 => 「baz」␤␤»
02:39 ssutch so ultimately (and it may not be the best) i came up with what you see toward the bottom of the file with the proto token str-lit
02:39 timotimo_ r: say "foo bar baz" ~~ token { ^ (\w+)+ % <.ws> $ };
02:39 camelia rakudo b2072f: OUTPUT«「foo bar baz」␤ 0 => 「foo」␤ 0 => 「bar」␤ 0 => 「baz」␤␤»
02:40 timotimo_ i think white space at the very beginning after the opening brace is never meaningful and you have to put <.ws> or <?> in there to get additional white space matched there
02:40 ssutch there is some duplication that i was unsure of how to get rid of
02:41 timotimo_ mhm, that does seem tricky. i'm not sure if you actually have to remove the " from the character class, let me try something
02:41 timotimo_ r: say q{"foo bar baz" quuz} ~~ / \" ~ \" (.*?) /
02:42 ssutch here lemme give you my test string… after removing all the curse words
02:42 camelia rakudo b2072f: OUTPUT«Unable to parse expression in ; couldn't find final \"␤  in any FAILGOAL at src/stage2/QRegex.nqp:1037␤  in regex  at /tmp/dTtxeDxjxA:1␤  in method ACCEPTS at src/gen/CORE.setting:10509␤  in method ACCEPTS at src/gen/CORE.setting:683␤  in block  at /tmp/dTtxeDxjxA:…
02:42 timotimo_ ah, indeed, it will go over that even if i make it .*?
02:42 timotimo_ r: say q{"foo bar baz" quuz} ~~ / \" ~ \" (.?*) / # or this way?
02:42 camelia rakudo b2072f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Quantifier quantifies nothingâ�¤at /tmp/FJpBwLGulL:1â�¤------> [32m q{"foo bar baz" quuz} ~~ / \" ~ \" (.?*[33mâ��[31m) / # or this way?[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤        â€¦
02:42 timotimo_ hm.
02:43 crab2313 joined #perl6
02:43 diakopter ssutch: you can give camelia bot a non-private gist url
02:44 ssutch how do i do that
02:44 diakopter guess :P
02:44 ssutch /msg camelia https://gist.github.com/samuraisam/5786535
02:44 diakopter yeah, but you need the r:
02:44 ssutch r: https://gist.github.com/samuraisam/5786535
02:44 camelia rakudo b2072f:  ( no output )
02:45 * ssutch shrug?
02:45 diakopter your program doesn't do anything :P
02:46 colomon ssutch: it just defines a grammar.  apparently in a way that doesn't make rakudo complain.
02:46 ssutch r: https://gist.github.com/samuraisam/5786535
02:46 camelia rakudo b2072f: OUTPUT«「␤    package com.niceword;␤    option nice_thing = "face";␤    import "allunicorns.proto";␤    message not_ass {␤        required double happy = 4;␤        optional bool mild = 5;␤        extensions 100 to 199, 500 to max;␤        extensions 1 to max;␤␤        opt…
02:47 ssutch ok i updated it with my mostly-cleaned-up test string
02:47 ssutch pretty neat that camelia will run a gist
02:48 timotimo_ it really is. when you combine the power to just fork a gist and edit it by yourself, it gets even cooler
02:48 timotimo_ people may complain and whine about github making the dvcs centralised again and single-point-of-failure and such, but it does offer incredible value at times
02:49 ssutch meh, back up your shit, there are alternatives
02:50 diakopter you need a DDVCS
02:51 ssutch ha
02:52 * timotimo_ backs up his git repos on his laptop and the laptop data goes on a backup drive that i haven't used in at least two months now =o
02:53 xinming joined #perl6
02:54 ssutch im going to try migrating a bunch of these tokens to rules, removing the <.ws>
02:56 timotimo_ that should make a huge difference in readability
02:56 ssutch yeah
02:56 timotimo_ maybe you can find space for a few newlines and indentation in the rules, too
02:56 timotimo_ another trick is this:
02:57 timotimo_ r: my @types = <double float int32 int64 uint32 and_so_on>; say "int32 uint32 float float double" ~~ / @types* /
02:57 camelia rakudo b2072f: OUTPUT«「int32」␤␤»
02:57 timotimo_ r: my @types = <double float int32 int64 uint32 and_so_on>; say "int32 uint32 float float double" ~~ / @types* % <.ws> /
02:57 camelia rakudo b2072f: OUTPUT«「int32 uint32 float float double」␤␤»
02:58 timotimo_ may be more readable than your huge alteration
02:58 timotimo_ (plus: you can read the types programmatically from an array)
02:58 ssutch neato
02:58 timotimo_ yup :3
02:58 timotimo_ i'm going to bed now, it's too darn late for me to stay up :(
02:59 ssutch night! thanks for all the help :)
02:59 timotimo_ no problem, i enjoyed it :)
03:01 RedditAnalytics a little treat for you guys if you need a diversion ... really amazing old computer story:  http://www.ibiblio.org/harris/500milemail.html
03:03 colomon catagorize works!  \o/
03:03 SamuraiJack joined #perl6
03:04 timotimo_ RedditAnalytics: i remember reading it some time ago and i indeed really enjoyed it :)
03:04 RedditAnalytics just goes to show you that sometimes the user is right
03:16 Teratogen that is a good story!
03:16 Teratogen I remember messing with sendmail years ago
03:16 Teratogen it was a nightmare
03:22 benabik joined #perl6
03:29 ssutch awesome
03:33 ssutch perl 6, thus far, feels very "do what i mean"
03:45 ldthien0 joined #perl6
03:45 colomon nod
03:48 sorear o/
03:49 ugexe what feature is required for my @stuff = ([0,1],[0,1]);' and then @stuff[2][0] = 0;(assignment to non-container)  instead of @stuff.push([0,]);?
03:51 ugexe @stuff[0][2] = 0 grows, whereas @stuff[2][0] doesnt and complains of assignment to non-container
03:59 preflex_ joined #perl6
03:59 sorear rn: my @stuff = ([0,1],[0,1]); @stuff[2][0] = 0;
03:59 camelia rakudo b2072f, niecza v24-76-g3e65d84:  ( no output )
03:59 sorear seems to work?
04:14 jaldhar joined #perl6
04:18 konnjuta joined #perl6
04:18 konnjuta hi, can perl6 programs be compiled?
04:20 geekosaur in the sense that Java or C# programs can, yes. to native code, not currently
04:22 jaldhar joined #perl6
04:22 konnjuta thanks!
04:23 konnjuta exactly what i was hoping for
04:26 Psyche^ joined #perl6
04:32 kaare_ joined #perl6
04:59 eternaleye r: class Dog { has $.mouth; has $.tail; }; my Dog $ ( :$mouth, :$tail ) = Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail;
04:59 camelia rakudo b2072f: OUTPUT«(Mu)␤(Mu)␤»
05:01 eternaleye r: class Dog { has $.mouth; has $.tail; }; my :( Dog $ ( :$mouth, :$tail ) ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail;
05:01 camelia rakudo b2072f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Malformed myâ�¤at /tmp/ejJRucVrAx:1â�¤------> [32mss Dog { has $.mouth; has $.tail; }; my [33mâ��[31m:( Dog $ ( :$mouth, :$tail ) ) := Dog.ne[0mâ�¤    expecting any of:â�¤        scoped declaratorâ�¤Â»
05:02 diakopter geekosaur: both .NET and mono can ahead-of-time compile to machine code
05:02 geekosaur ah
05:03 diakopter not redistributable
05:03 diakopter but still
05:03 geekosaur I knew niecza cached away CLR bytecode, but CLR is not really my area of expertise (nor JVM, really)
05:04 eternaleye r: class Dog { has $.mouth; has $.tail; }; my Dog :( :$mouth, :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail;
05:04 camelia rakudo b2072f: OUTPUT«[31m===[0mSORRY![31m===[0m�Type 'Dog' is not declared�at /tmp/gtBCuG6pMZ:1�------> [32mog { has $.mouth; has $.tail; }; my Dog [33m�[31m:( :$mouth, :$tail ) := Dog.new( :mouth<[0m�Malformed my�at /tmp/gtBCuG6pMZ:1�------> [32mog { has $.mouth; has $.tail; …
05:04 eternaleye r: class Dog { has $.mouth; has $.tail; }; my Dog :( $mouth, $tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail;
05:04 camelia rakudo b2072f: OUTPUT«[31m===[0mSORRY![31m===[0m�Type 'Dog' is not declared�at /tmp/w_dsHFQqPW:1�------> [32mog { has $.mouth; has $.tail; }; my Dog [33m�[31m:( $mouth, $tail ) := Dog.new( :mouth<dr[0m�Malformed my�at /tmp/w_dsHFQqPW:1�------> [32mog { has $.mouth; has $.tail; …
05:04 eternaleye std: class Dog { has $.mouth; has $.tail; }; my Dog :( $mouth, $tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail;
05:04 camelia std d4cc5ab: OUTPUT«[31m===[0mSORRY![31m===[0m�Multiple prefix constraints not yet supported at /tmp/B8rFC0XVI2 line 1:�------> [32mog { has $.mouth; has $.tail; }; my Dog [33m�[31m:( $mouth, $tail ) := Dog.new( :mouth<dr[0m�Malformed my at /tmp/B8rFC0XVI2 line 1:�------> [32mo…
05:04 eternaleye Hmm
05:05 eternaleye timotimo_: ^^^ was my attempt at using http://perlcabal.org/syn/S06.htm​l#Unpacking_tree_node_parameters  which seems to be what you were looking for
05:07 eternaleye std: class Dog { has $.mouth; has $.tail; }; my Dog $ ( $mouth, $tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail;
05:07 camelia std d4cc5ab: OUTPUT«ok 00:01 47m␤»
05:07 eternaleye r: class Dog { has $.mouth; has $.tail; }; my Dog $ ( $mouth, $tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail;
05:07 camelia rakudo b2072f: OUTPUT«(Mu)␤(Mu)␤»
05:08 eternaleye timotimo_:  Anyway, it seems STD doesn't recognize the :( signature ) form from the spec, and Rakudo fails to bind the variables properly in the $ ( ) form.
05:12 eternaleye TimToady: Is ^ a stdbug or a specbug? I'd suspect even a specbug has a stdbug component, because it isn't a multiple prefix constraint regardless.
05:15 eternaleye Mmm, unless...
05:16 eternaleye std: class Dog { has Str $.mouth; has Str $.tail; }; my Str :( :$mouth, :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail;
05:16 camelia std d4cc5ab: OUTPUT«[31m===[0mSORRY![31m===[0m�Multiple prefix constraints not yet supported at /tmp/GdO08MekMK line 1:�------> [32m Str $.mouth; has Str $.tail; }; my Str [33m�[31m:( :$mouth, :$tail ) := Dog.new( :mouth<[0m�Malformed my at /tmp/GdO08MekMK line 1:�------> [32m …
05:16 eternaleye r: class Dog { has Str $.mouth; has Str $.tail; }; my Str $ ( :$mouth, :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail;
05:16 camelia rakudo b2072f: OUTPUT«Type check failed in binding; expected 'Str' but got 'Dog'␤  in block  at /tmp/W8yQNOGfKm:1␤␤»
05:16 eternaleye r: class Dog { has Str $.mouth; has Str $.tail; }; my Dog $ ( Str :$mouth, Str :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail;
05:16 camelia rakudo b2072f: OUTPUT«(Mu)␤(Mu)␤»
05:17 eternaleye Mm
05:17 eternaleye r: class Dog { has Str $.mouth; has Str $.tail; }; my Str ( :$mouth, :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail;
05:17 camelia rakudo b2072f: OUTPUT«drooly␤fluffy␤»
05:17 eternaleye timotimo_: AHA! ^^^
05:18 eternaleye .tell timotimo_: class Dog { has Str $.mouth; has Str $.tail; }; my Str ( :$mouth, :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail;
05:18 yoleaux eternaleye: What kind of a name is "timotimo_:"?!
05:18 eternaleye .tell timotimo_ class Dog { has Str $.mouth; has Str $.tail; }; my Str ( :$mouth, :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail;
05:18 yoleaux eternaleye: I'll pass your message to timotimo_.
05:18 eternaleye Signature-unpacking++
05:19 eternaleye Incidentally, not knowing the return value of twodogs made that section of the spec a lot harder to grok than it should have been. I'll work up a patch.
05:22 eternaleye It also looks like that test a.) could possibly be unfudged and b.) needs a fudged colon-prefix variant, since that's untested as yet. I'll wait on the latter until I know if that part of the spec is going to change, but I'll look into the former.
05:27 eternaleye Ah. It needs three more variants (colons on the parameters without $ and the interior type, colon-prefixed sig with container type, and entirely uncoloned with interior type), of which all but the first would be fudged.
05:42 quester-temp-1 joined #perl6
05:44 zby_home joined #perl6
05:44 quester-temp-1 left #perl6
05:49 amoe_ joined #perl6
06:03 quester joined #perl6
06:10 dalek rakudo/nom: cdda38e | (Timo Paulssen)++ | src/Perl6/Actions.nqp:
06:10 dalek rakudo/nom: better error messages for hash shapes.
06:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cdda38e992
06:10 dalek rakudo/nom: e9aa2a9 | (Timo Paulssen)++ | src/Perl6/Actions.nqp:
06:10 dalek rakudo/nom: make sure those errors have pos-in-file info
06:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e9aa2a9e50
06:10 dalek rakudo/nom: 0c0e3c0 | lizmat++ | src/Perl6/Actions.nqp:
06:10 dalek rakudo/nom: Merge pull request #163 from timo/hash-shape-errors
06:10 dalek rakudo/nom:
06:10 dalek rakudo/nom: better error messages for hash shapes.
06:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0c0e3c0891
06:15 Chillance joined #perl6
06:41 amoe joined #perl6
06:41 birdwindupbird joined #perl6
06:46 * [Coke] is still up at 0246 local time, and wonders if he can code anything perl6 related.
06:47 * [Coke] wonders if jnthn is awake yet.
06:53 eternaleye .ask jnthn I've found various bits on poking methods into classes via .HOW and add_method (MOP++), but I can't figure out how that might work to poke rules into a grammar. Any advice?
06:53 yoleaux eternaleye: I'll pass your message to jnthn.
06:55 eternaleye .tell jnthn (I'm trying to make something Dancer-like called Capoeira that generates a grammar (to do the routing) from the paths, and uses singature introspection in the actions to bind the placeholders to the signature of the response Callable)
06:55 yoleaux eternaleye: I'll pass your message to jnthn.
07:00 [Coke] .ask jnthn - partcl-nqp is trying to use :namespace when creating some QAST nodes. this seems to be a holdover from PAST last. Does QAST support namespaces?
07:00 yoleaux [Coke]: I'll pass your message to jnthn.
07:12 sorear eternaleye: A rule is just a method.
07:13 sorear I don't think you need anything at all special
07:13 sorear except possibly for longest-token matching
07:31 salv0 joined #perl6
07:33 woolfy left #perl6
07:34 quester left #perl6
07:39 fgomez joined #perl6
07:53 arlinius joined #perl6
07:58 eternaleye joined #perl6
08:03 lizmat joined #perl6
08:11 crab2313 joined #perl6
08:21 xinming joined #perl6
08:33 SamuraiJack joined #perl6
08:58 dmol1 joined #perl6
08:58 sjn joined #perl6
09:17 woolfy1 joined #perl6
09:17 eternaleye joined #perl6
09:34 PacoAir joined #perl6
09:45 dalek roast: a3d361a | (Elizabeth Mattijsen)++ | S10-packages/use-with-class.t:
09:45 dalek roast: Make sure we look in test directory first
09:45 dalek roast:
09:45 dalek roast: Found when doing spectest while having ./Foo.pm available
09:45 dalek roast: review: https://github.com/perl6/roast/commit/a3d361a8d7
09:47 sjn joined #perl6
09:56 * lizmat drops a pin again
10:02 sorear ?
10:03 lizmat I heard it fall
10:04 lizmat aka, it's very silent on the channel
10:06 dalek specs: dca94f7 | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
10:06 dalek specs: Remove superfluous |, probably a copy/paste error
10:06 dalek specs: review: https://github.com/perl6/specs/commit/dca94f7843
10:13 dalek specs: 01c9f44 | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
10:13 dalek specs: Added some identical method based examples, seemed appropriate
10:13 dalek specs: review: https://github.com/perl6/specs/commit/01c9f446e7
10:17 * woolfy1 picks up pin that lizmat dropped and hands it over to her
10:17 * woolfy1 sighs that she never cleans up her mess
10:17 salv0 joined #perl6
10:18 * lizmat hides
10:19 daniel-s__ joined #perl6
10:21 cognominal joined #perl6
10:23 tomyan joined #perl6
10:26 masak lizmat: it's quiet because loud obnoxious members of the channel (like masak) are currently having too much fun AFK.
10:27 lizmat aha!   it's Saturday!  :-)
10:27 masak no no, it's Saturday in *London*!
10:27 masak :D
10:27 woolfy1 Nono, it's saturday in Nancy
10:27 lizmat and the weather is nice, and we're inside  :-(
10:28 masak good developers are perfectly capable of abstracting away nice weather.
10:28 woolfy1 And the people here are speaking about Perl in French -> double fun
10:28 * masak .oO( fun double )
10:28 tgt joined #perl6
10:29 woolfy1 Later today: http://journeesperl.fr/fpw2013/talk/4845
10:29 woolfy1 (Yet Another Perl6 Interpreter)
10:34 sorear yapsi?
10:35 woolfy joined #perl6
10:35 tadzik oh :)
10:36 sorear and, o/ masak.
10:38 tomyan joined #perl6
10:41 masak \o, \o
10:42 FROGGS o/, o/
10:42 sorear i just added a new type to KnowHOWBootstrapper
10:43 masak does anyone have any opinion on my kvetch yesterday about inner-outer-class communication?
10:43 masak it feels like we are missing a language feature/detail there, or at least a pattern to somehow workaround the lack of a feature/detail.
10:43 cognominal joined #perl6
10:44 sorear how does this not break ~everything~?  it just passed all tests, despite not recompiling anything
10:44 sorear surely the changed indexes in the __6MODEL_CORE__ SC should have broken deserialization of stuff
10:44 sorear masak: I've always thought Java's behavior there is fairly insane.
10:44 sorear *default behavior
10:45 masak sorear: yes, that's what Perl people usually tell me. and I agree, at least in part.
10:45 masak there's something surprising about Java's default behavior -- somewhere in the region of having to write 'static' before the inner class to get the sane variant.
10:46 * sorear is in the habit of using owner pointers
10:46 cognominal joined #perl6
10:46 * sorear is driven crazy by p5's cycle-hating VM
10:46 sorear s/VM/GC/
10:47 sorear jnthn: ping
10:48 masak here, I've set up a use case so we can talk about this.
10:48 masak rn: class C { class Thing { has @.value; method Str { ~@.value } }; has $.total; has @!things; method add($value) { @!things.push(Thing.new(:$value)); $!total += $value; self }; method Str { "[ {@!things.join(q[, ])} ]" } }; say ~C.new.add(1).add(2).add(3)
10:48 camelia rakudo b2072f: OUTPUT«[ 1, 2, 3 ]␤»
10:48 camelia ..niecza v24-76-g3e65d84: OUTPUT«Use of uninitialized value in numeric context␤  at /home/p6eval/niecza/lib/CORE.setting line 1382 (warn @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 297 (Any.Numeric @ 8) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/kTkrKaRP3D line 1 (C.add …
10:49 masak this is similar in structure to the real-world code I had.
10:49 sorear .oO( has class Thing )
10:50 masak now, let's pretend I want to print not just the values '1, 2, 3', but their percentages, too: '1 (17%), 2 (33%), 3 (50%)'
10:50 masak how would I do that? any solution is allowed, and then we can discuss their respective merits.
10:50 masak note that I've provided $.total for you in the C class ;)
10:52 sorear it's bad form to commit failing tests to nqp, right?  breaks bisect?
10:54 masak if you're thinking of committing failing tests, why aren't you working in a branch?
10:54 JimmyZ joined #perl6
11:00 xenoterracide|2 joined #perl6
11:03 sorear masak: because I haven't broken any of the standard tests
11:03 * moritz will be gone for most of the weekend
11:04 * moritz ~~
11:04 sorear o/ moritz
11:04 dalek nqp: 9aeeadd | sorear++ | / (8 files):
11:04 dalek nqp: 6model bits for representing continuations as objects, also s/shift/control/ (oops)
11:04 dalek nqp: review: https://github.com/perl6/nqp/commit/9aeeadd231
11:04 sorear have the appropriate amount of fun
11:05 masak o/ moritz
11:07 masak r: class C { class Thing { has $.value; has $.c; method Str { sprintf "%d (%d%%)", $.value, $.value / $.c.total * 100 + .5 } }; has $.total; has @!things; method add($value) { @!things.push(Thing.new(:$value, :c(self))); $!total += $value; self }; method Str { "[ {@!things.join(q[, ])} ]" } }; say ~C.new.add(1).add(2).add(3)
11:07 camelia rakudo b2072f: OUTPUT«[ 1 (17%), 2 (33%), 3 (50%) ]␤»
11:07 masak I guess this is what sorear++ suggested.
11:08 masak * sorear is in the habit of using owner pointers
11:08 masak and, *sigh*, yes that works.
11:09 masak and maybe it's close enough to a sweet spot that there's not much to kvetch about...
11:14 JimmyZ joined #perl6
11:16 isBEKaml joined #perl6
11:22 JimmyZ joined #perl6
11:24 JimmyZ joined #perl6
11:26 * lizmat is back from lunch
11:30 lizmat I wonder how "multi method classify ( @values: @mapper --> Hash )" is supposed to work
11:30 lizmat use an array as a mapper?  Which would imply only Integers as values to map?
11:31 araujo joined #perl6
11:34 sorear o/ araujo
11:47 tomyan joined #perl6
11:47 spider-mario joined #perl6
11:49 atrodo joined #perl6
11:54 colomon lizmat: I've no idea.  Is that implemented anywhere?  Certainly not in Niecza....
11:55 lizmat it's not implemented.  and not explained.  I assume it is just that: using an array as a lookup, if it gets anything non-numeric, it will probably blow
11:56 lizmat r: my @a=1; say @a['foo']   # yes,it will blow
11:56 camelia rakudo b2072f: OUTPUT«Cannot call 'Real'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤  in method Real at src/gen/CORE.setting:870␤  in method Real at src/gen/CORE.setting:2596␤  in method Real at src/gen/CORE.setting:870␤  in sub infix:<<> at src/gen/CORE.setting:3100␤  in sub i…
11:57 dalek rakudo/nom: 42ef7be | (Elizabeth Mattijsen)++ | src/core/Any.pm:
11:57 dalek rakudo/nom: Make sure $default doesn't leak to GLOBAL::
11:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/42ef7bec93
11:59 colomon lizmat: actually, if you presume that it works by passing the things you are classifying as indices to the array, then it would have to be things that work that way.  So things that can be converted to numeric, including code blocks?
11:59 tomyan joined #perl6
11:59 colomon r: my @a=1; say @a[*-1]
11:59 camelia rakudo b2072f: OUTPUT«1␤»
11:59 colomon r: my @a=1; say @a['0']
11:59 camelia rakudo b2072f: OUTPUT«1␤»
11:59 araujo hello sorear !
11:59 araujo & everyone else
11:59 araujo :)
12:00 lizmat hello araujo
12:00 lizmat colomon: good point
12:01 JimmyZ good evening, #perl6
12:02 sorear good evening JimmyZ
12:03 sorear .tell jnthn I'm not sure I understand this __6MODEL_CORE__ bootstrap SC stuff... why aren't the bootstrap CodeRefs included in it?
12:03 yoleaux sorear: I'll pass your message to jnthn.
12:04 * colomon has just barely woken up today...
12:05 sorear i'm up a bit late.
12:05 cognominal joined #perl6
12:07 JimmyZ I guess sorear is in sleep time :P
12:07 woolfy sorear maybe should get some sleep now he told jnthn something important...
12:08 * woolfy wonders why she said that, since it is weekend now and sorear seemingly wants to break the record for longtime nerding!
12:10 * sorear thinks some people here have been nerding longer than sorear has been living.
12:13 * woolfy agrees with sorear...  names come to mind like lizmat, woolfy, pmichaud, timtoady...
12:21 FROGGS $ ./p5 'use v5; package A; sub new { bless [], shift }; use overload q[""] => sub { 42 }; my $ua = new A; say "a $ua b"'
12:21 FROGGS Perl5: a 42 b␤
12:21 FROGGS v5:    a 42 b␤
12:21 FROGGS \o/
12:21 lizmat FROGGS++
12:23 JimmyZ FROGGS: awesome
12:23 kivutar joined #perl6
12:23 FROGGS and the cool thing is: two lines changed, and something between 10 and 15 added for the overload module (only ""-overloading right now)
12:24 lizmat when one sheep is across the dam, many will follow (old NL saying)
12:24 FROGGS gotcha
12:25 JimmyZ this is another awesome: http://awesome.naquadah.org/
12:36 * woolfy admires lizmat...  in a few minutes she will do her presentation "Perl's Diaspora" for the French Perl Workshop.  And she is not nervous at all. She sits there hacking in Perl 6 stuff.
12:36 woolfy lizmat looks a bit angry at me ("why did you have to tell that????")
12:37 fer joined #perl6
12:37 lizmat I will also do "Is Perl 6 Perl?" and "From Fat Comma To Adverbial Pairs" lightning talks
12:37 lizmat but later  :-)
12:39 * woolfy basks in the rays of lizmat's calm
12:39 lizmat .oO(I'm not nervous)
12:39 lizmat .oO(I'm not nervous)
12:39 sorear if the lightning talk is about pairs, perhaps it should be given by two people?
12:39 lizmat .oO(I'm not nervous)
12:39 sorear :)
12:40 lizmat they're only adverbial pairs
12:40 woolfy sorear: I am so NOT giving a presentation!
12:42 fer left #perl6
12:57 salv0 joined #perl6
13:03 ldthien0 joined #perl6
13:10 spider-mario joined #perl6
13:12 cognominal joined #perl6
13:12 dalek nqp: bfee017 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (4 files):
13:12 dalek nqp: First (compiles but untested) draft of nqp::continuation* op implementations
13:12 dalek nqp: review: https://github.com/perl6/nqp/commit/bfee0177b1
13:13 sorear don't celebrate yet, there are several known bugs
13:13 sorear *sleep*
13:27 JimmyZ 'night
13:38 timotimo_ night sorear
13:38 yoleaux 05:18Z <eternaleye> timotimo_: class Dog { has Str $.mouth; has Str $.tail; }; my Str ( :$mouth, :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail;
13:38 timotimo_ eternaleye: thank you for slogging through it! :)
13:38 timotimo_ i didn't manage to find the right point in the specs to look for an explanation
13:38 timotimo_ so i had to resort to guesswork
13:39 timotimo_ i had a brief look into the deserialisation stuff; it doesn't seem like i can very easily add a bit of code in one place that would give a "traceback" of what packages caused the serialisation that error'd out on the wrong dependency
13:49 zby_home_ joined #perl6
13:49 lizmat "Yet Another Perl6 Interpreter - A Hack Around LuaJIT"  now starting at FPW
13:50 lizmat a replacement for Parrot
13:50 colomon is jnthn there?
13:50 lizmat started in 2011
13:51 lizmat colomon: no, and it's in French, so he wouldn't understand much from it, I gather
13:51 colomon gotcha
13:52 lizmat TvmJIT is the name, comparing now with LuaJIT
13:52 * colomon had somehow assumed that jnthn could handle any language you threw at him....
13:52 lizmat (!call print (!mul 6 7 ))
13:52 lizmat 42
13:53 lizmat Table Virtual Machine Just In Time
13:53 lizmat Table Processing used S-expression syntax
13:53 lizmat Lua 5.1 C/API ABI compatible
13:53 lizmat Github hosted / TAP test suite
13:54 cognominal joined #perl6
13:54 colomon lizmat: who is doing it?
13:55 lizmat http://journeesperl.fr/fpw2013/user/2391
13:55 JimmyZ ferrad
13:55 lizmat at one time, he worked at getting Lua to run on Parrot
13:58 lizmat compatible with LuaJIT 2.0.2 now
13:59 birdwindupbird joined #perl6
14:00 lizmat use TP (Table Processing) as an intermeidate language
14:03 lizmat Lua translator included / required by JIT bytecode utilities
14:04 lizmat 1.3KLoC, 19Kb bytecode
14:07 lizmat p6jit - perl6 backend
14:08 lizmat linked with libtcmjit, native librarus (p6str,p6num), NQP.lua bytecode included, also on Github
14:09 lizmat libtvmjit
14:10 tadzik exciting
14:11 lizmat ./psjit > say(6*7)  42
14:11 lizmat p6jit   *sigh*
14:12 lizmat ./ps6jit --ast   shows AST of code
14:13 timotimo_ so, how much of the spec test suite does it pass? :3
14:13 lizmat ./ps6jit --op   shows S-expressions opcodes
14:13 * lizmat can't type p6jit  :-(
14:14 lizmat timotimo_: I will ask at the end
14:15 tadzik I suppose it's https://github.com/fperrad/tvmjit
14:16 tadzik and https://github.com/fperrad/p6jit
14:16 lizmat I would think so, yes  :-)
14:17 lizmat Language gap: MOP
14:17 timotimo_ ../t/00-sanity.t .. ok  All tests successful.  Files=1, Tests=8,  1 wallclock secs ( 0.03 usr +  0.00 sys =  0.03 CPU)   ;)
14:17 lizmat some metemodel functionlaity built in
14:18 timotimo_ fwiw, p6jit is very fresh apparently
14:18 lizmat runtime classes: Num, num, Str, str, Bool, bool, Nil, nil, Array, Hash, Mu, Any, Cool
14:19 lizmat p6jit: say( (1).WHAT )     num
14:19 lizmat the 1 is not boxed, apparently native Lua capability ?
14:20 lizmat there has not been an official announcement yet
14:20 timotimo_ the talk *is* the official announcement? :)
14:20 lizmat well, I don't think he intended it like that
14:20 lizmat he would like to work with perl6 community to create a true NQP baclkend
14:21 lizmat (slide titled "Next Step")
14:21 lizmat Other recent good news: NQP on JVM bootsrapped / MoarVM
14:22 lizmat I guess more people have kept their VM work secret  :-)
14:22 timotimo_ sounds good :)
14:24 nwc10 it's better than overpromising and underdelivering
14:24 lizmat demonstration of REPL
14:24 nwc10 (such as Unladen Swallow, which did deliver some things, but nothing like what they boldly announced at the start)
14:24 lizmat p6jit is *fast*
14:25 nwc10 (which is a shame, as I was keen to see how they were going to slay Python's GIL)
14:25 nwc10 fast is good, but see http://blog.headius.com/2012/10/s​o-you-want-to-optimize-ruby.html
14:26 timotimo_ it's hard to make anything of "p6jit is fast" until you see how many actual features it offers; a super-slim subset of p6 is easy to make fast, after all :P
14:26 timotimo_ but it's still very cool!
14:26 lizmat now giving demo
14:27 lizmat seems relatively complete so far
14:27 lizmat will ask about spectests at the end
14:27 timotimo_ wow, cool
14:29 lizmat live example of chaning the jit to make &ln work, based on .ln
14:29 lizmat changing
14:31 lizmat recompile is *very* quick, impressive!
14:31 nwc10 lizmat: in luajit, strings are immutable aren't they?
14:31 nwc10 if so, how are Perl 6's mutable strings implemented?
14:32 lizmat nwc10: I will ask
14:32 nwc10 and (I have no clue on this) - how does LuaJIT do concurrency?
14:32 nwc10 thanks
14:35 JimmyZ by embed into MoarVM :P
14:37 lizmat this is still more like NQP, rather than Perl 6
14:37 lizmat runs a part of the NQP test-suite, 180 tests so far
14:37 nwc10 OK, I forget - NQP strings are immutable or not?
14:38 lizmat no assignments in NQP, just binding
14:41 lizmat wrt concurrency: there is a coro library for Lua, but that isn't used here yet
14:42 nwc10 thanks, interesting, useful
14:42 nwc10 please pass on thanks and my encouragement
14:42 lizmat official announcement after his 3 week holiday, which starts next week
14:42 nwc10 :-)
14:43 lizmat will do
14:43 nwc10 OK, and "enjoy well deserved holiday"
14:43 lizmat done
14:43 lizmat going to other room now...
14:43 * nwc10 is going to the big blue room
14:44 lizmat presentation has ended… so I guess we will know more mid July
14:44 lizmat we live in exciting tiimes!
14:49 diakopter It wasn't a privats github project
14:49 JimmyZ diakopter: I pmed you my google id
14:50 diakopter I mentioned it here a couple months ago
14:52 timotimo_ lizmat: thanks for livetranslating :)
14:53 lizmat diakopter: the good news: it is still going on, then!
14:53 diakopter there are quite a few things crucial to a nqp backend that simply aren't possible there. I studied the codebase a while ago; I'll have to refresh my memory to recall them
14:54 diakopter [if they're still valid]
14:55 diakopter he would have been better served to explore the nqp requirements first
14:55 timotimo_ diakopter: i remember you querying me when i talked vaguely about considering building a vm atop pypy for perl6 and you mentioning some secret project in that same area :D
14:55 diakopter heh
14:57 diakopter well at the time I think there was someo one talking about doing that
14:57 diakopter wait, maybe you
14:58 timotimo_ i didn't continue with the thoughts, though. with my very limited experience of vm design, i was certain the task would be even more complicated and hard than i imagined, even after correcting for my lack of grasp of the topic :P
14:58 diakopter well I can remember one, anyway
14:59 diakopter control flow exceptions
15:00 lizmat lightning talks starting
15:01 timotimo_ lizmat: have fun! :)
15:02 diakopter it's the same model as p2: make a VM, and then try to understand nqp/6model well enough to implement it. making a jit is the ultimAte premature optimization
15:02 cognominal joined #perl6
15:02 diakopter he might not be aware I already made a nqp backend on luajit
15:03 diakopter that passed all the tests through the cross compiler
15:03 lizmat possibly, should I ask ?
15:03 diakopter but the regex ones, which I just didn't do
15:04 diakopter because I knew it was changing a lot soon
15:04 timotimo_ when was that?
15:04 timotimo_ before nom?
15:04 diakopter no
15:05 diakopter now, it doesn't have the 6model native types, but that's simply a matter of compiler fu
15:06 diakopter er, primitive/unboxed.
15:07 diakopter it didn't compile to bytecode; it compiled to lua source
15:09 diakopter it was a direct port of jnthn's nqp POC prototype in C#
15:10 diakopter er, 6model POC/prototype
15:11 timotimo_ oooh, so many interesting things i've never heard about ever
15:11 diakopter liz: was it a recompile from make clean or just the changed files :P
15:12 diakopter mine wasn't very interesting :P
15:13 diakopter commute&
15:25 nwc10 masak: your problem with the weather is due to http://www.bbc.co.uk/sport/0/tennis/22914580
15:26 preflex joined #perl6
15:26 nwc10 now, historically, it would have been a worse plan to go to London during Wimbledon fortnight, but now Centre Court can shake its fist, er roof, at God, Queens is now the prime target for malicious rain disruption.
15:26 dalek rakudo/nom: d3ae978 | (Elizabeth Mattijsen)++ | src/core/ (3 files):
15:26 dalek rakudo/nom: Implement Hash.(classify|categorize), as well as other mapper types
15:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d3ae978e0f
15:26 nwc10 I'd suggest avoiding Eastbourne next week
15:27 lizmat main classify / categorize implementation moved to src/core/Hash now
15:29 nwc10 masak: also, it seems point 3 on the second slide: http://www.youtube.com/watch?v=_Lf83bcnR4k
15:31 preflex joined #perl6
15:38 lizmat diakopter: announcement of Etherpad::API on CPAN
15:45 zby_home joined #perl6
15:51 Ulti joined #perl6
16:03 lizmat bar&
16:07 dmol joined #perl6
16:09 ldthien0 joined #perl6
16:24 domidumont joined #perl6
16:31 PacoAir joined #perl6
16:33 domidumont joined #perl6
16:40 mtk joined #perl6
16:48 dmol joined #perl6
16:52 snearch joined #perl6
17:10 lizmat joined #perl6
17:18 btyler joined #perl6
17:26 dalek v5: 34fbe88 | (Tobias Leich)++ | lib/Perl5/ (2 files):
17:26 dalek v5: added overload.pm, only "" right now
17:26 dalek v5: review: https://github.com/rakudo-p5/v5/commit/34fbe88e69
17:27 rindolf joined #perl6
17:27 diakopter FROGGS: O_O
17:29 FROGGS :o)
17:29 FROGGS dinner &
17:35 woolfy joined #perl6
17:38 dmol joined #perl6
17:48 dmol joined #perl6
17:57 GlitchMr joined #perl6
18:01 SunilJoshi joined #perl6
18:02 dmol joined #perl6
18:05 * [Coke] gives up on QAST namespacs for now, and tries to figure out why his custom EXPR operatros are causing null pmc errors.
18:11 [Coke] ah. assoc is no longer optional.
18:12 [Coke] one down..
18:17 [Coke] where does nqp define all the available ops?
18:17 [Coke] I don't see "mul", for example anywhere in src/vm/parrot/ops/*.ops
18:21 diakopter they're defined in the qast-> compiler
18:22 [Coke] ack -a mul src/QAST -> nada.
18:23 [Coke] looks like I want to look for add_core_pirop_mapping in src.
18:24 [Coke] Danke.
18:24 diakopter it's not in src/QAST
18:24 diakopter it's in src/vm/parrot/QAST
18:25 [Coke] that fixes [expr 2+3] (and a few others.)
18:36 [Coke] how can I debug an NQP grammar parse failure?
18:36 zby_home joined #perl6
18:37 [Coke] I'm trying to parse something, and getting Cannot look up attributes in a type object inside nqp's parsegrammar
18:37 FROGGS hmmm, only but inserting debug (say) statements
18:37 FROGGS [Coke]: pass --ll-exception
18:37 [Coke] syntax for executable code in the grammar?
18:38 [Coke] FROGGS: --ll-exception doesn't seem to do anything for ./partcl
18:38 FROGGS {  nqp::say("token statement") }
18:38 FROGGS hmmm
18:38 [Coke] FROGGS: https://gist.github.com/coke/5789104
18:39 FROGGS [Coke]: if you have plenty of work to do, you might want to do the same like I did for v5
18:39 [Coke] FROGGS: ... inside a rule?
18:39 FROGGS [Coke]: yes, inside grammar tokens/rules/whatever
18:39 FROGGS https://github.com/rakudo-p5/v5/blo​b/master/lib/Perl5/Actions.nqp#L10
18:40 FROGGS and look at line 51 in the actions...
18:40 [Coke] FROGGS: those are actions.
18:40 [Coke] I'm failing in the parse.
18:40 FROGGS yeah, that might be the second step
18:40 FROGGS just wanna point that out, it is pretty useful for me
18:41 FROGGS well, it is failling here: called from Sub 'proc' pc 52664 (./src/Partcl/commands.pir:20536) (src/Partcl/commands.pm:1747)
18:42 [Coke] yes. proc is calling the grammar's .parse()
18:42 [Coke] the failing is happening inside the parse step. no clue where.
18:42 [Coke] that's what I'm trying to get some insight into.
18:43 FROGGS [Coke]: PAST::Compiler still exists?
18:44 [Coke] No. but I have yet to get past the .parse() failure. :)
18:48 dalek v5: 79e5ea5 | (Tobias Leich)++ | STATUS.md:
18:48 dalek v5: added (forgotten) overload.pm
18:48 dalek v5: review: https://github.com/rakudo-p5/v5/commit/79e5ea5eee
18:48 dalek v5: cc04ca9 | (Tobias Leich)++ | lib/Perl5/overload.pm:
18:48 dalek v5: added (forgotten) overload.pm
18:48 dalek v5: review: https://github.com/rakudo-p5/v5/commit/cc04ca9b49
18:57 [Coke] switching Partcl::Compiler.parse to nqp::getcomp('Partcl').parse seems to have improved things.
19:00 Celelibi joined #perl6
19:08 [Coke] ... oh. I bet I needed to instantiate the compiler instead of calling it as a class method.
19:09 [Coke] (hurm. that wasn't needed on expr...)
19:14 census joined #perl6
19:16 [Coke] how can I add a method to a class at runtime without a MONKEY_TYPED eval?
19:16 [Coke] I have a freshly compiled &sub.
19:21 diakopter something like .HOW.add-method then must compose
19:21 diakopter add_method
19:22 diakopter google for "HOW.add_method"
19:23 diakopter .g "HOW.add_method"
19:23 yoleaux https://github.com/perl6/mu/blob/maste​r/v6/v6-KindaPerl6/misc/perl5v6_mop.pl
19:23 diakopter heh
19:24 [Coke] sadly, "add_method" doesn't appear in the specs.
19:26 diakopter well, I said google
19:27 diakopter a lot of the 6model stuff isn't in the specs
19:36 [Coke] ok, now 0-arg subs work. yay.
19:39 sjn joined #perl6
19:41 eiro hello! back from FPW (good edition). I have what sounds like an autopun to me:
19:41 eiro I have a joke on UDP but i'm not sure you'll get it
19:49 jtpalmer joined #perl6
19:56 fgomez joined #perl6
20:01 diakopter eiro: :)
20:03 diakopter lizmat: interesting
20:11 diakopter http://ahmetalpbalkan.com/blog/8-months-microsoft/  # someone ought to write a detailed analysis of these phenomena
20:13 geekosaur ...this is news?
20:14 diakopter to the author, yes, as he states several times
20:14 geekosaur yes, I saw that. corporations are not the only places that can be insular...
20:17 diakopter geekosaur: I just meant it would be convenient to see mitigation strategies and costs for those related phenomena explained in one central place
20:19 Araq joined #perl6
20:20 geekosaur I've seen several such, mostly directed at managers of geeks. and mostly not taking any cognizance that said managers are likely to be outranked by marketing and/or finance departments, etc.
20:21 geekosaur also, with respect to that specific article, some of that is not really a problem, just what's going to happen when engineering intersects with the rest of the world.
20:22 skyheights joined #perl6
20:23 lue .oO("Not giving back to the public domain is a norm." was a bit of a "You don't say" for me)
20:25 diakopter well, tbh my suspicion was that such an analysis would end up concluding/persuading that the costs of avoiding many of those things are too high. but some of them seem fixable to me.
20:26 bluescreen10 joined #perl6
20:36 diakopter geekosaur: (but yes, I agree with you that some of them aren't even problems)
20:44 snearch joined #perl6
20:47 Araq left #perl6
20:48 ecocode joined #perl6
20:54 danaj joined #perl6
21:10 adu joined #perl6
21:13 sorear good * #perl6
21:14 diakopter o/
21:26 ecocode joined #perl6
21:36 raiph joined #perl6
21:49 twigel joined #perl6
21:50 jaldhar joined #perl6
21:56 dalek nqp: 580a904 | sorear++ | src/HLL/Compiler.nqp:
21:56 dalek nqp: Make sure compiler error messages have a final newline to avoid confusing readline
21:56 dalek nqp: review: https://github.com/perl6/nqp/commit/580a9042d4
21:57 adu joined #perl6
22:00 stevan_ joined #perl6
22:20 sorear that last one may be controvertial...:)
22:25 ggoebel joined #perl6
22:27 raiph r: eval ( "f" )
22:27 camelia rakudo b2072f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared routine:â�¤    f used at line 1â�¤â�¤Â»
22:27 raiph ww
22:34 ssutch joined #perl6
22:36 sorear whee, starting to pass my continuation tests
22:37 timotimo_ ssutch: have you continued work on the protobuf grammar? could i have a look? :)
22:37 ssutch hallo
22:37 ssutch yeah a bit
22:38 ssutch starting to figure out actions and such
22:38 timotimo_ ah, cool :)
22:38 timotimo_ if you need a bit of assistance, just ask :)
22:38 ssutch just updated the gist: https://gist.github.com/samuraisam/5786535
22:38 ssutch so much cleaner w/o all the <.ws>
22:39 ssutch you had a suggestion to use proto token instead of alternation for the body, but i couldn't figure out what that would look like
22:40 Teratogen Does Perl 6 have thread support?
22:40 ssutch Teratogen depends… but the most practical answer would probably be not yet
22:40 timotimo_ Teratogen: in theory or in practice? ;)
22:41 bluescreen100 joined #perl6
22:41 ssutch haha
22:41 flussence http://irclog.perlgeek.de/​perl6/2012-02-21#i_5185652
22:41 timotimo_ there was a nice talk by pmichaud that you should be able to find on youtube when searching for "perl6 parallelism yapcna"
22:42 timotimo_ sorear: cool beans wrt continuation tests :)
22:46 flussence ...*does* Perl 6 have thread support? The 6 month old readme in the Threads.pm repository doesn't exactly inspire confidence.
22:47 timotimo_ the threading stuff isn't properly specced out yet, because there's no good underlying thread support on any of the currently targetted platforms
22:47 timotimo_ it's due to change pretty soon and thus people can start experimenting what's the best way to put threading into perl6
22:51 ssutch esp w/ jvm threads
22:54 timotimo_ and moarvm will become very interesting as well
22:57 ssutch at some point i will want to be able to point out to the user of the protobuf grammar where parsing failed
22:57 ssutch i am not sure how that is accomplished with a grammar
22:59 timotimo_ there's tricks like explicitly adding || { die "something didn't work here" } to the end of one of your rules
23:00 ssutch seems like you could use something like this: https://github.com/jnthn/grammar-debug​ger/blob/master/lib/Grammar/Tracer.pm
23:00 ssutch however, i have noticed that matches are super slow when running with Tracer
23:00 timotimo_ indeed
23:00 timotimo_ i don't recommend that
23:00 timotimo_ but i have no very good suggestions :(
23:01 ssutch for protobuf, the speed doesn't matter a whole lot anyway, because this will be done once and then cached for the lifetime of the program
23:01 timotimo_ right
23:01 timotimo_ you can even put the parsing into a BEGIN block and it will be done once, when the program/script gets compiled
23:01 timotimo_ (but unfortunately scripts will not be compiled and stored away for later use yet)
23:02 ssutch yar
23:03 flussence .oO( using up my insanity quota for the month: what if there was a module that parallelised a script by farming bits of the AST out to run in multiple subprocesses and communicating return values etc. over shm )
23:03 timotimo_ do it!
23:04 flussence but people might start using it :(
23:04 timotimo_ then make fun of them
23:06 ssutch STD.pm uses .panic https://github.com/perl6/st​d/blob/master/STD.pm6#L285
23:06 lue flussence: don't limit yourself to just one computer. I wanna set up p6compilefarm.net !
23:08 timotimo_ indeed; but the problem is to discern between "i need to backtrack in order to make this work, but then it works" and "when i reach this place and there is not an a here, that's definitely an error"
23:08 ssutch haha i like this one <.panic: "Confused"> https://github.com/perl6/st​d/blob/master/STD.pm6#L1144
23:11 timotimo_ yeah, confused is something that happens often
23:12 sergot joined #perl6
23:14 * masak waves to #perl6
23:15 flussence o/
23:15 flussence (are we on a big screen again?)
23:15 masak not to my knowledge.
23:16 masak my screen is about 14", methinks :P
23:16 woolfy left #perl6
23:19 sorear o/ masak!
23:19 sorear wtf
23:19 masak \o
23:20 sorear nqp has hash constructors now?
23:20 * masak has been enjoying London all day with Esperanto friends
23:20 masak that nqp has hash constructors is news to me too...
23:21 sorear oh, I think it's just for empty ones
23:21 sorear nqp: say(nqp::istype({}, NQPHash))
23:21 camelia nqp: OUTPUT«0␤»
23:22 sorear nqp: ({})()
23:22 camelia nqp: OUTPUT«invoke() not implemented in class 'Hash'␤current instr.: '' pc 47 ((file unknown):141329136) (/tmp/ki_TofzMz_:1)␤»
23:22 sorear nqp-jvm: say(nqp::istype({}, NQPHash))
23:22 camelia nqp-jvm: OUTPUT«0␤»
23:39 sorear nqp-jvm: say(nqp::isnull([nqp::null()][0]))
23:39 camelia nqp-jvm: OUTPUT«0␤»
23:39 sorear this was not expected
23:39 sorear maybe a bug
23:40 sorear nqp: say(nqp::isnull([nqp::null()][0]))
23:40 camelia nqp: OUTPUT«0␤»
23:40 sorear .ask jnthn say(nqp::isnull([nqp::null()][0])); # nqpbug or Working As Designed?
23:40 yoleaux sorear: I'll pass your message to jnthn.
23:51 dalek nqp: b37f6f2 | sorear++ | src/vm/jvm/ (3 files):
23:51 dalek nqp: Misc bugfixes
23:51 dalek nqp: review: https://github.com/perl6/nqp/commit/b37f6f2423
23:51 dalek nqp: a6a7660 | sorear++ | t (2 files):
23:51 dalek nqp: Start of a t/jvm/01-continuations.t
23:51 dalek nqp: review: https://github.com/perl6/nqp/commit/a6a7660ed7
23:54 sorear it's functionally complete
23:54 sorear need to increase the test coverage a bit and update the documentation to reflect the last-minute API changes
23:54 masak sorear++

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

Perl 6 | Reference Documentation | Rakudo