Camelia, the Perl 6 bug

IRC log for #perl6, 2010-04-29

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:00 sorear hmm
00:01 sorear $perl5string ~ $perl5string doesn't work
00:02 sorear because it's defined as   our multi sub infix:<~>($a, $b) {
00:02 sorear and the Rakudo multisub dispatcher doesn't conster foreign objects suitable for 'any'
00:03 sorear rakudo: multi sub foo($x) { say($x); }; foo(pir::new__PS('String'))
00:03 p6eval rakudo 72f914: OUTPUT«␤»
00:03 sorear rakudo: multi sub foo($x) { say($x); }; foo(pir::new__PS('Hash'))
00:03 p6eval rakudo 72f914: OUTPUT«No applicable candidates found to dispatch to for 'foo'. Available candidates are:␤:(Any $x)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
00:03 sorear rakudo: multi sub foo($x) { say($x); }; say(pir::new__PS('Hash'))
00:03 p6eval rakudo 72f914: OUTPUT«Hash[0x53815a8]␤»
00:03 sorear rakudo: sub foo($x) { say($x); }; foo(pir::new__PS('Hash'))
00:03 p6eval rakudo 72f914: OUTPUT«Null PMC access in invoke()␤current instr.: 'foo' pc 191 (EVAL_1:81)␤... call repeated 1 times␤»
00:04 sorear Rakudobug?
00:05 pugssvn r30495 | lwall++ | [Cursor] lexer generator mislaid a bare . pattern so cursor_fate never called it
00:05 pugssvn r30495 | [Cursor] added .looks_like_cclass method to detect accidental use of P5 ranges
00:05 pugssvn r30495 | [STD] various character classes needed to backslash #
00:05 pugssvn r30495 | [STD] change :tr language to :cc langauge since character classes share it
00:05 pugssvn r30495 | [STD] remove old-school-ish character classes
00:05 pugssvn r30495 | [STD] allow \# in character classes instead of misparsing as unspace
00:06 pugssvn r30495 | [STD] remove unused %*LANG<Trans>
00:06 pugssvn r30495 | [STD] on invalid - in regex, presume we're in an old-school character class
00:06 pugssvn r30495 | [STD] check a normal regex bracket's innards for old-school character class, and warn if found
00:06 pugssvn r30495 | [STD] use ~ for regex brackets to set $*GOAL correctly
00:06 pugssvn r30495 | [STD] clean up recursive panic detection to avoid both false positives and negatives
00:06 pugssvn r30495 | [STD] don't use 'note' to emit a panic inside a suppose
00:06 pugssvn r30495 | [STD] suppress duplicate sorry messages
00:06 pugssvn r30495 | [STD] sorry no longer uses panic in supposition, but dies directly
00:14 sjohnson i had some fun programming in Perl today
00:15 sorear 6?
00:18 [Coke] joined #perl6
00:18 cosimo joined #perl6
00:18 slavik joined #perl6
00:22 stepnem joined #perl6
00:23 yinyin joined #perl6
00:29 sjohnson sorear: p5 ... writing some interfaces for git status outputs to make my life easier...
00:29 sjohnson i'll try out some more p6 soon once i get through all the apocolypses
00:38 rv2733 joined #perl6
00:44 sjohnson my knowledge of perl is limited to only doing c00l things with p5
00:45 colomon you don't have to get through all the apocalypses, you know.
00:46 sorear the apocalypses are mostly irrelevant now for practical purposes
00:46 sorear they're good if you need a more detailed rationale
00:47 sorear although I prefer the flesh version if it's available
00:48 meppl joined #perl6
00:49 sjohnson not sure what the most complete p5->p6 transition guide is
00:49 sjohnson maybe of your helpful ppl can recommend something for me
00:49 sorear moritz' 5->6 maybe?
00:50 sorear hey, it's even linked from perl6.org
00:50 PerlJam http://perlgeek.de/blog-en/perl-5-to-6/
00:50 PerlJam mortiz++
00:51 PerlJam oops, my link has an extra slash at the end.
00:51 PerlJam sjohnson: for specific items, you can ask here when people are active.
00:51 * sorear , having finished the core functionality in blizkost, goes back to hacking his irc client (which is what needed :from<perl5> in the first place, for DBI, Curses, and POSIX)
00:51 sorear which is all the time.
00:52 snarkyboojum sorear++
00:53 orafu joined #perl6
00:56 sjohnson thanks
00:57 sjohnson moritz_: typo on word "Aprili" on latest rakudo moscow news page
01:17 dalek rakudo: 3966c62 | (Solomon Foster)++ | src/core/ (2 files):
01:17 dalek rakudo: Straighten out type issues with Real.exp.  In the process, add Real * Real, Complex ** Real, and Real ** Complex.
01:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​966c622355ec99727f6d5c0301dba2546134af5
01:17 dalek rakudo: 0857098 | (Solomon Foster)++ | src/core/ (2 files):
01:17 dalek rakudo: Remove Complex ** Any and Any ** Complex, as they should no longer be needed.  Change Any * Any to convert its arguments to Numeric and call multiply on them then.
01:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​8570984d9996a29fad7d79f3e1852263f173c10
01:18 pugssvn r30496 | colomon++ | [t/spec] Additional exp tests using mixed argument types.
01:24 sorear hmm
01:24 diakopter hmm
01:25 sorear rakudo: sub foo(:$bar) {}; foo("bar" => 1);
01:25 p6eval rakudo 72f914: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤current instr.: 'foo' pc 197 (EVAL_1:80)␤»
01:25 sorear Is it possible to pass a named argument with weird characters in p6?
01:25 sorear like initial "-" (quite common in perl5 APIs)
01:25 diakopter rakudo: my method foo(:$bar) {}; foo("bar" => 1);
01:25 p6eval rakudo 72f914:  ( no output )
01:26 diakopter rakudo: my method foo(:$bar) {}; foo("bar" => 1, "foo" => 2);
01:26 p6eval rakudo 72f914: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤current instr.: 'foo' pc 338 (EVAL_1:133)␤»
01:26 diakopter rakudo: my method foo(:$bar) { say $_; }; foo("bar" => 1);
01:26 p6eval rakudo 72f914: OUTPUT«Any()␤»
01:27 * PerlJam wonders what class or object that method belongs to
01:27 sorear diakopter: the pair is being bound to 'self'
01:27 sorear PerlJam: none
01:27 sorear my method foo( is sugar for my sub foo(self,
01:27 sorear except that it's valid syntax
01:28 sorear methods in perl 6 are simply subs with a hidden first positional argument
01:29 snarkyboojum sorear: are you working on a Perl 6 port of soric?
01:29 sorear ok now that's just freaky.
01:30 sorear soric is the collective code name for three broken prototypes I've played with
01:30 snarkyboojum oh ok
01:30 snarkyboojum good-o
01:30 sorear #4 is being done in perl6 based on several insights from #3
01:30 sorear how did you know about soric?
01:30 sorear the name, I mean
01:30 snarkyboojum github
01:30 snarkyboojum not terribly hard to find out :)
01:30 sorear how did I forget :/
01:31 snarkyboojum github lurkers unite!
01:31 sorear anyway, yes
01:32 snarkyboojum cool, looks interesting
01:32 sorear #3 was going along nicely until I realized that 90% of my code consisted of emulations of the new .* multicall syntax
01:32 sorear at which point I decided to learn perl 6
01:34 snarkyboojum at which point you decided to help get blizkost going :)
01:34 snarkyboojum nice progression :)
01:37 bradb joined #perl6
01:38 colomon "will review Solomon Foster's Mandlebrot example, especially with regard to performance" -- woot!
01:38 diakopter phenny: tell pmurias I fixed ur buggo
01:38 phenny diakopter: I'll pass that on when pmurias is around.
01:38 diakopter phenny: tell pmurias by rejiggering the grammar
01:38 phenny diakopter: I'll pass that on when pmurias is around.
01:38 orafu joined #perl6
01:38 diakopter phenny: tell pmurias good luck :)
01:38 phenny diakopter: I'll pass that on when pmurias is around.
01:44 dalek left #perl6
01:44 dalek joined #perl6
01:45 diakopter phenny: tell masak k, yapsi notifications should work now.  it would help if I didn't try to load "/yapsilog.com" from botnix.conf and tried "/yapsi.pm" instead. :/
01:45 phenny diakopter: I'll pass that on when masak is around.
01:53 sorear joined #perl6
01:55 sorear please don't op me without also giving out an ACL bit
01:55 sorear it... won't last
01:55 diakopter heh
01:56 diakopter we actually don't have access to that :(  I need to get TimToady to fill out the freenode form and mail it in
01:57 diakopter so that the channel can get registered again and get an actual "founder"
01:58 sorear I'm really looking forward to IPv6 in the US
01:58 sorear and by extension the end of unstable NATs
01:59 Psyche^ joined #perl6
02:00 diakopter urgh. silly dalek.
02:01 diakopter it just missed my http://code.google.com/p/c​smeta/source/detail?r=220
02:01 sorear alternatively, I could simply move to a country with real internet
02:02 diakopter yapsi: say 5
02:02 diakopter perlesque: say(4)
02:02 p6eval perlesque: OUTPUT«4␤»
02:02 diakopter perlesquel: .
02:02 p6eval perlesquel: OUTPUT«Cannot open assembly 'asmbly_1.exe': No such file or directory.␤Command exited with non-zero status 2␤real 0.23␤user 0.01␤sys 0.01␤»
02:03 diakopter heh
02:04 TimToady std: /[a-z]/
02:04 p6eval std 30496: OUTPUT«[31m===[0mSORRY![31m===[0m␤Invalid regex metacharacter; for a character class, use <[...]> instead of [...]␤  (and use .. instead of - to indicate a range) at /tmp/0HSYFtJNOt line 1:␤------> [32m/[a-[33m⏏[31mz]/[0m␤Unable to parse bracketed regex at /tmp/0HSYFtJNOt line
02:04 p6eval ..1:␤…
02:04 TimToady std: /[aeiou]/
02:04 p6eval std 30496: OUTPUT«Potential difficulties:␤  This appears to be an old-school character class; please use <[aeiou]> if you␤    mean a character class, or put whitespace inside like [ aeiou ] to disable␤    this warning at /tmp/r4tAr7xqIJ line 1:␤------> [32m/[33m⏏[31m[aeiou]/[0m␤ok 00:01 108m␤»
02:05 PerlJam TimToady++
02:05 diakopter std: /[ aeiou]/
02:05 p6eval std 30496: OUTPUT«Potential difficulties:␤  This appears to be an old-school character class; please use <[ aeiou]> if you␤    mean a character class, or put whitespace inside like [  aeiou ] to disable␤    this warning at /tmp/rF4lulyzxZ line 1:␤------> [32m/[33m⏏[31m[ aeiou]/[0m␤ok 00:01
02:05 p6eval ..108m␤»
02:05 diakopter std: /[ aeio u]/
02:05 p6eval std 30496: OUTPUT«ok 00:01 108m␤»
02:06 diakopter std: /[aeio u]/
02:06 p6eval std 30496: OUTPUT«Potential difficulties:␤  This appears to be an old-school character class; please use <[aeio u]> if you␤    mean a character class, or put whitespace inside like [ aeio u ] to disable␤    this warning at /tmp/PTnJmJVgN7 line 1:␤------> [32m/[33m⏏[31m[aeio u]/[0m␤ok 00:01
02:06 p6eval ..108m␤»
02:06 diakopter std: /[aeio u ]/
02:06 p6eval std 30496: OUTPUT«ok 00:01 108m␤»
02:06 diakopter heh
02:06 TimToady std: /[ \t]/
02:06 p6eval std 30496: OUTPUT«ok 00:01 109m␤»
02:06 TimToady hmm, that one didn't work
02:06 diakopter std: /[ \\t]/
02:06 TimToady supposed to recommend \h
02:06 p6eval std 30496: OUTPUT«ok 00:01 108m␤»
02:06 diakopter std: /[ \\\t]/
02:06 p6eval std 30496: OUTPUT«ok 00:01 108m␤»
02:06 TimToady std: /[ ]/
02:06 diakopter std: /[\t ]/
02:06 p6eval std 30496: OUTPUT«[31m===[0mSORRY![31m===[0m␤Null pattern not allowed at /tmp/qXb0RC3H5V line 1:␤------> [32m/[ [33m⏏[31m]/[0m␤Unrecognized regex metacharacter (must be quoted to match literally) at /tmp/qXb0RC3H5V line 1:␤------> [32m/[[33m⏏[31m ]/[0m␤Can't call method "_REDUCE" on
02:06 p6eval ..unbl…
02:07 p6eval std 30496: OUTPUT«ok 00:01 108m␤»
02:07 PerlJam std: /[\t ]/
02:07 p6eval std 30496: OUTPUT«ok 00:01 108m␤»
02:07 diakopter std: /[\t]/
02:07 p6eval std 30496: OUTPUT«ok 00:01 108m␤»
02:07 diakopter std: /[ t]/
02:07 p6eval std 30496: OUTPUT«Potential difficulties:␤  This appears to be an old-school character class; please use <[ t]> if you␤    mean a character class, or put whitespace inside like [  t ] to disable␤    this warning at /tmp/29NyFiT1G9 line 1:␤------> [32m/[33m⏏[31m[ t]/[0m␤ok 00:01 108m␤»
02:07 diakopter std: /[ t ]/
02:07 p6eval std 30496: OUTPUT«ok 00:01 108m␤»
02:08 TimToady std: /[\n]/
02:08 p6eval std 30496: OUTPUT«ok 00:01 108m␤»
02:08 TimToady hmm
02:08 PerlJam TimToady: is { $a = 5; say $a; my $a } correct and analogous to { foo;  sub foo { say "hi" } }  ?
02:08 PerlJam rakudo: { $a = 5; say $a; my $a }
02:08 p6eval rakudo 085709: OUTPUT«5␤»
02:08 PerlJam rakudo: { foo;  sub foo { say "hi" } }
02:08 p6eval rakudo 085709: OUTPUT«hi␤»
02:10 ash__ joined #perl6
02:11 ash__ left #perl6
02:11 diakopter rakudo: { our sub foo { say "hi" } }(foo)
02:11 p6eval rakudo 085709: OUTPUT«hi␤»
02:12 * diakopter whimpers
02:12 diakopter er, simpers
02:12 TimToady PerlJam: no
02:13 diakopter std: { $a = 5; say $a; my $a }
02:13 p6eval std 30496: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $a is not predeclared at /tmp/2WwonoU5ya line 1:␤------> [32m{ $a[33m⏏[31m = 5; say $a; my $a }[0m␤Variable $a is not predeclared at /tmp/2WwonoU5ya line 1:␤------> [32m{ $a = 5; say $a[33m⏏[31m; my $a }[0m␤Check failed␤FAILED 00:01
02:13 p6eval ..1…
02:13 pugssvn r30497 | colomon++ | [t/spec] Unfudge a bunch of comb tests which now work.
02:13 colomon 31740 passing tests now.
02:15 dalek rakudo: ed321b4 | (Solomon Foster)++ | src/core/Cool-str.pm:
02:15 dalek rakudo: Fix comb version of the match with take bug fixed earlier today in split.
02:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​d321b4087dbfeb85d355e073d680a152e5de0e4
02:15 PerlJam TimToady: this is what I expected but, then I also tended to expect { XXX;  my XXX } in general to carp.  Would it be safe to say that it only carps if XXX is a variable?
02:16 TimToady only functions may be post-declared
02:16 sorear it's kinda like ANSI C
02:16 sorear when an undeclared function is seen, a declaration is automatically generated assuming that it has listop precedence
02:17 sorear so in the common case, postdeclaring works
02:17 TimToady well, all C functions are global, to the first approximation, and the call syntax is relatively unambiguous
02:17 sorear Haskell allows postdeclaration of functions with /any/ precedence
02:18 sorear which makes the parsing algorithm completely insane
02:18 TimToady probably forces multiple passes
02:18 * diakopter murmurs about the insanity defense of accusations of insanity
02:18 PerlJam I understand it, but my brain isn't accepting it for some reason.  I used to think that "my XXX" meant than XXX existed from that point forward to the end of the inner-most enclosing scope.  Having functions not do that *and* be lexical is bothersome
02:19 PerlJam s/than/that/
02:19 sorear for a long time I thought it was undecidable, but eventually I came up with an EXPTIME algorithm which tentatively assigns each possible combination of precedences before trying to parse
02:19 TimToady meeting &
02:19 sorear TimToady: In practice, yes
02:19 diakopter std: foo(); { our sub foo { say "hi" } };
02:19 p6eval std 30496: OUTPUT«ok 00:01 108m␤»
02:19 sorear TimToady: In theory, the language is not sufficiently self-synchronizing for a multi-pass parser to work
02:20 sorear but the heuristics work ok on real code
02:20 diakopter nobody's created types whose dependency knots can't be untangled?
02:22 sorear diakopter: there are only a finite number of possible untanglings, and you can just check each one for consistency
02:22 diakopter ok.
02:38 bradb joined #perl6
02:55 dalek rakudo: e16cf45 | duff++ | tools/contributors.pl:
02:55 dalek rakudo: [tools] fix typo and output sorted keys
02:55 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​16cf45bcfa4a7664e361c95d4c4a7592334f89b
02:58 JimmyZ joined #perl6
03:10 ingy joined #perl6
03:20 _jaldhar joined #perl6
03:20 ingy joined #perl6
03:37 crythias joined #perl6
03:47 ingy joined #perl6
03:49 molaf joined #perl6
03:52 jaldhar_ joined #perl6
04:04 dalek csmeta: r221 | diakopter++ | trunk/Sprixel/ (5 files):
04:04 dalek csmeta: [perlesque] lots o' fixes :)
04:04 dalek csmeta: review: http://code.google.com/p/c​smeta/source/detail?r=221
04:14 bradb joined #perl6
04:26 mikehh_ joined #perl6
04:38 dalek csmeta: r222 | diakopter++ | trunk/Sprixel/ (4 files):
04:38 dalek csmeta: [perlesque] more fixes. stopped using the trampoline for now.
04:38 dalek csmeta: review: http://code.google.com/p/c​smeta/source/detail?r=222
04:40 snarkyboojum joined #perl6
04:40 ingy joined #perl6
04:40 diakopter phenny: tell pmurias I can re-enable the trampoline when a possibly-recursive invocation is detected, but the addl cost will be another slot for the return value per callsite in each recursive frame.
04:41 phenny diakopter: I'll pass that on when pmurias is around.
04:41 diakopter that, and I didn't want to have to implement that additional callsite-slot generation tonight :D
04:41 diakopter phenny: tell pmurias that, and I didn't want to have to implement that additional callsite-slot generation tonight :D
04:41 phenny diakopter: I'll pass that on when pmurias is around. I'll have to use a pastebin, though, so your message may get lost.
04:42 diakopter phenny: bleh
04:43 sorear What
04:43 sorear phenny: help
04:43 phenny sorear: Hi, I'm a bot. Say ".commands" to me in private for a list of my commands, or see http://inamidst.com/phenny/ for more general details. My owner is sbp.
04:44 alester joined #perl6
04:45 sorear ah
04:46 sorear phenny keeps all messages, but pastes any after 4
04:46 sorear using paste.lisp.org and a hardcoded captcha
04:46 * sorear plugs App::Nopaste
04:53 ash__ joined #perl6
04:56 jaldhar_ joined #perl6
05:01 _jaldhar_ joined #perl6
05:03 ReiniUrban joined #perl6
05:04 diakopter sorear: "What"?
05:05 sorear diakopter: phenny's comment about a pastebin
05:08 diakopter oh
05:11 diakopter actually...
05:21 meppl joined #perl6
05:29 [particle]1 joined #perl6
05:37 dalek csmeta: r223 | diakopter++ | trunk/Sprixel/ (3 files):
05:37 dalek csmeta: more parsing fixes.
05:37 dalek csmeta: review: http://code.google.com/p/c​smeta/source/detail?r=223
05:38 redicaps joined #perl6
05:41 diakopter sorear: around?
05:41 agentzh joined #perl6
05:42 diakopter I added a "frame" keyword that snags a ref to the current frame :)
05:44 sorear cute.
05:45 * sorear remembers implementing closures in Pascal using frame pointers and horrible function reference casting
05:47 * snarkyboojum just discovered cd ~- in bash
05:50 moritz_ good morning
05:50 snarkyboojum oh it's just cd -
05:50 diakopter zugh
05:50 snarkyboojum :|
05:50 snarkyboojum mortiz_ o/
05:50 snarkyboojum moritz_ o/
05:50 snarkyboojum :)
05:50 moritz_ diakopter: like &?BLOCK?
05:50 moritz_ \o
05:51 diakopter maybe
05:51 diakopter what does &?BLOCK? mean
05:51 bradb joined #perl6
05:52 moritz_ &?BLOCK is the reference to the current block
05:53 diakopter what does "block" mean.. (what can you do with it?)
05:53 kaare joined #perl6
05:53 moritz_ block = { ... }
05:54 moritz_ you can store it, invoke it, introspect it
05:55 sorear kinda like RECURSE in FORTH?
05:55 diakopter the keyword I added is "the instance of the current block that represents *this*execution* of the current block, including all locals"
05:55 sorear diakopter: in parrotland we call those CallContexts
05:56 moritz_ and in Perl 6 callframe
05:56 moritz_ (though it's a bit more general)
05:56 diakopter ok
05:56 diakopter what can you do with a Perl 6 callframe?
05:58 viklund joined #perl6
05:58 moritz_ search outwards, obtain file and line number etc
05:58 moritz_ see S06/The callframe and caller functions/
06:01 * diakopter is reminded of "what do you get when you guzzle down sweets?"
06:01 viklund "...Eating as much as an elephant eats"
06:03 snarkyboojum would be cool to see Perl 6 on this list http://emerginglangs.com/speakers/ :)
06:03 snarkyboojum and/or Parrot :)
06:04 diakopter parrot ain't a language
06:04 snarkyboojum true, but as an emerging VM :P
06:05 snarkyboojum they're keen to see VM people there too apparently
06:08 diakopter Yeah, I guess since PyPy & Cola are on there.
06:08 sorear Do we *want* to be associated with that crowd?
06:09 diakopter TimToady said that a whole conference-long track dedicated to Perl is enough... and that Perl isn't an emerging language
06:09 snarkyboojum it's not?
06:09 snarkyboojum ok then
06:10 snarkyboojum what crowd is that sorear?
06:11 diakopter the in-your-face lets-debate-whose-favorite-language-is-better crowd?
06:15 sorear yes
06:15 snarkyboojum I didn't think that's what this was about - perhaps I'm just naive :)
06:15 avar the speakers don't sound like the sort that'll be "lets-debate-whose-favorite-language-is-better"
06:16 avar e.g. Rich Hickey and Rob Pike
06:16 diakopter not the speakers; the attendees :P
06:17 snarkyboojum diakopter: programmers will do that regardless won't they? :)
06:17 avar I think you're being too pessamistic
06:17 avar Anyway, would be nice to have Perl 6 there too
06:17 uniejo joined #perl6
06:22 dalek book: 971d45f | moritz++ | src/subs-n-sigs.pod:
06:22 dalek book: [subs] make that parameter named
06:22 dalek book: review: http://github.com/perl6/book/commit/97​1d45f18ac2e635b5f4052a2ade1ff30a91bd80
06:24 szabgab joined #perl6
06:32 iblechbot joined #perl6
06:33 kst joined #perl6
06:57 dalek yapsi: 133495c | snarkyboojum++ | t/runtime.t:
06:57 dalek yapsi: Test to ensure blocks at the same level as variable definitons don't
06:57 dalek yapsi: trounce variable values.
06:57 dalek yapsi: review: http://github.com/masak/yapsi/commit/13​3495c727a13fb8619eb79810e00b39d29c16f2
07:31 eternaleye joined #perl6
07:33 sorear It might be an interesting project to look through MooseX::* on CPAN and see how many apply to Perl6
07:38 JimmyZ Heh
07:41 snarkyboojum joined #perl6
07:44 sorear moose has actually diverged quite a bit from perl6
07:45 sorear we might need to start stealing stuff from them - they've got some cool bits like variable attribute representations
07:46 viklund how much of the divergence is bacause of adjustments to how perl5 works and how much is divergence from discovering "best practices", would be interesting to know...
07:47 viklund what is variable attribute representations?
07:47 moritz_ sorear: re named arguments with weird names: you can always do foo(|%h)
07:48 moritz_ sorear: where %h can has arbitrary keys
07:48 * moritz_ backlogs
07:55 moritz_ Herve++ posted an interesting comment on my blog
07:55 moritz_ he suggested to change the triangle form of reduce from [\+] to [@+]
07:56 moritz_ with the rationale that @ indicates a list-ish return type
07:56 moritz_ I wonder if we could even change to that @[+] to disambiguate infix operators starting with @
07:57 moritz_ TimToady: what do you think about that? (when you backlog :-)
08:01 sorear viklund: in perl6, attributes are just variables.  in Moose, attributes have a meta object with overridable accessor code
08:01 sorear so you can have attributes that do fancy things when written to, etc
08:02 moritz_ you can have that too in Perl 6
08:02 sorear moritz_: You could hear that behind the noise of "OMGZ METAOPS ARE WRITE ONLY"?
08:02 viklund ahh, yes I knew that, just hadn't heard the phrase before...
08:02 moritz_ if you use a modified storage backend
08:02 viklund sorear: thx
08:02 moritz_ sorear: I try hard to focus on the constructive part of the critic
08:02 sorear I think the divergence is because the Moose cabal has given up on Perl 6 and decided to drop all connection with the Synopses
08:02 bbkr_ joined #perl6
08:02 sorear but then I'm just a cynic
08:03 moritz_ sorear: for sure the Moose folks chose whatever fits best for Perl 5
08:04 sorear moritz_: can you give me a short code sample for that?
08:04 moritz_ sorear: and introducing $!foo variables isn't easy in Perl 5 at all :-)
08:04 moritz_ sorear: no
08:05 moritz_ it would have to be some sort of object being passed as the REPR to YourClass.bless
08:05 moritz_ which has FETCH and STORE methods
08:05 sorear $!foo is hard-wired to access the object representation
08:05 moritz_ that do the fancy stuff
08:05 moritz_ yes, but the object representation isn't hard wired
08:05 sorear with pervasive accessors, you get an extra layer of indirection
08:05 sorear which makes this absolutely trivial
08:05 sorear has 'foo' => ( trigger => $SUB )
08:05 sorear just sets an attribute on the attribute
08:06 sorear which changes code generation
08:06 sorear I'm not following the Perl 6 idea of "our approach must be better because it uses $! variables"
08:06 moritz_ well, you can still use lvalue accessors if that's what you want
08:07 moritz_ and don't use the $!foo variables at all
08:07 moritz_ just like you can also use $self->{foo} in Moose, if you want (iirc)
08:09 sorear how does an lvalue accessor do anything interesting?
08:09 sorear the only way to make lvalues 'interesting' is to tie them
08:09 sorear does perl 6 discard the taboo against ties?
08:09 moritz_ I'm not sure; it's something I forget everytime I read it up because nobody implements it yet
08:10 moritz_ should be in S06 somewhere
08:10 sorear Why isn't it trivial?
08:11 moritz_ ask @Larry :-)
08:11 moritz_ I have no idea
08:12 moritz_ I can't remember how lvalue subroutines work in perl 5 either
08:13 JimmyZ rakudo: say [\+] 1..*
08:13 p6eval rakudo e16cf4:  ( no output )
08:13 JimmyZ rakudo: say [\+] 1..5
08:13 p6eval rakudo e16cf4: OUTPUT«1361015␤»
08:14 JimmyZ rakudo: say [\,] 1..5
08:14 p6eval rakudo e16cf4: OUTPUT«11 21 2 31 2 3 41 2 3 4 5␤»
08:14 JimmyZ rakudo: say [\, ] 1..5
08:14 p6eval rakudo e16cf4: OUTPUT«You can't backslash that at line 11, near ", ] 1..5"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
08:15 JimmyZ rakudo: say ([\,] 1..5).perl
08:15 p6eval rakudo e16cf4: OUTPUT«(1, (1, 2), ((1, 2), 3), (((1, 2), 3), 4), ((((1, 2), 3), 4), 5))␤»
08:15 JimmyZ rakudo: say [@,] 1..5
08:15 p6eval rakudo e16cf4: OUTPUT«Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
08:15 JimmyZ rakudo: say @[,] 1..5
08:15 p6eval rakudo e16cf4: OUTPUT«Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
08:15 moritz_ std: @[+] 1, 2, 3
08:15 p6eval std 30497: OUTPUT«[31m===[0mSORRY![31m===[0m␤Non-declarative sigil is missing its name at /tmp/GLM74EhuSg line 1:␤------> [32m<BOL>[33m⏏[31m@[+] 1, 2, 3[0m␤Bogus statement at /tmp/GLM74EhuSg line 1:␤------> [32m@[33m⏏[31m[+] 1, 2, 3[0m␤    expecting twigil␤Parse failed␤FAILED 00:01
08:15 p6eval ..109m␤»
08:16 moritz_ hm
08:16 moritz_ might be sufficienlty distinct from existing syntax
08:18 JimmyZ -1
08:18 moritz_ JimmyZ: why?
08:18 JimmyZ [] means array, I don't think need @ again.
08:19 moritz_ but [+] doesn't return an Array either
08:19 moritz_ here the [...] means more "operate on a list", not "return a list"
08:20 JimmyZ it mean [] deals with array, not return array
08:21 JimmyZ that is , it's args should be array.
08:22 JimmyZ std: {+} 'f' => 1, 'd' => 2;
08:22 p6eval std 30497: OUTPUT«[31m===[0mSORRY![31m===[0m␤Prefix requires an argument at /tmp/484Obkwpot line 1:␤------> [32m{+[33m⏏[31m} 'f' => 1, 'd' => 2;[0m␤Parse failed␤FAILED 00:01 108m␤»
08:23 JimmyZ rakudo: [+] @('3' => 1, '4' => 2);
08:23 p6eval rakudo e16cf4: OUTPUT«Method 'Num' not found for invocant of class 'Pair'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
08:23 JimmyZ std: [+] @('3' => 1, '4' => 2);
08:23 p6eval std 30497: OUTPUT«ok 00:01 109m␤»
08:25 kst joined #perl6
08:28 ive joined #perl6
08:29 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~$.value;} };  say  [+] @('3' => 1, '4' => 2);
08:29 p6eval rakudo e16cf4: OUTPUT«3␤»
08:29 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~$.value;} };  say  [\+] @('3' => 1, '4' => 5);
08:29 p6eval rakudo e16cf4: OUTPUT«3  16␤»
08:29 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~$.value;} };  say  ([\,] @('3' => 1, '4' => 5)).perl;
08:29 p6eval rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))␤»
08:30 moritz_ JimmyZ: try method Numeric, not Num
08:30 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Numeric() { ~$.value;} };  say  ([\,] @('3' => 1, '4' => 5)).perl;
08:30 p6eval rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))␤»
08:30 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Numeric() { ~$.value;} };  say  [+] @('3' => 1, '4' => 2);
08:30 p6eval rakudo e16cf4: OUTPUT«Method 'Num' not found for invocant of class 'Pair'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
08:30 moritz_ hum.
08:31 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~self;} };  say  ([\,] @('3' => 1, '4' => 5)).perl;
08:31 p6eval rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))␤»
08:31 moritz_ colomon: it seems that infix:<+> still uses .Num instead of .Numeric
08:31 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~self;} };  say  ([\+] @('3' => 1, '4' => 5)).perl;
08:31 p6eval rakudo e16cf4: OUTPUT«("3" => 1, 7)␤»
08:31 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~$.value;} };  say  ([\+] @('3' => 1, '4' => 5)).perl;
08:31 p6eval rakudo e16cf4: OUTPUT«("3" => 1, 6)␤»
08:31 vorner left #perl6
08:31 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~$.value;} };  say  ([\,] @('3' => 1, '4' => 5)).perl;
08:31 p6eval rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))␤»
08:32 JimmyZ what's the different between self and $.value?
08:32 moritz_ self is the whole pair
08:33 moritz_ but in the example above, you're not doing anything that would caause a call to Num
08:34 JimmyZ using [\,] are the same result, but [\+] not the same result
08:35 moritz_ sure; [\,] has no reason to treat its arguments as numbers
08:35 JimmyZ Oh, so it is.
08:36 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~$.value;} };  say  ([\,] @('3' => 1, '4' => 5)).perl;
08:36 p6eval rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))␤»
08:36 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} };  say  ([\,] @('3' => 1, '4' => 5)).perl;
08:36 p6eval rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))␤»
08:36 moritz_ it doesn't really call any method on object
08:38 JimmyZ so I don't like [@,] @('3' => 1, '4' => 5) or @[,] @()
08:38 JimmyZ that's duplicate semanteme
08:39 moritz_ there's no reason for the second @(...) at all
08:39 JimmyZ I mean @[]  or [@] is duplicate semanteme ;)
08:40 JimmyZ just in my opinion
08:40 moritz_ and I disagree, becaue the @ is about the return value and [] is about the arguments
08:41 moritz_ this is just like saying "I don't like  our Num sub sqrt(Num $x) { ... } because Num appears twice"
08:41 moritz_ but they serve different purposes
08:41 JimmyZ I don't think operaters need return type .
08:41 moritz_ well, I guess liking and disliking can't always be rationalized
08:42 moritz_ JimmyZ: they don't, in general, but in the case of triangle reduction we need *something* to distinguish it from the non-triangle form
08:43 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} };  say  [\,] '3' => 1, '4' => 5;
08:43 p6eval rakudo e16cf4:  ( no output )
08:43 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} };  say  ([\,] '3' => 1, '4' => 5);
08:43 p6eval rakudo e16cf4:  ( no output )
08:43 moritz_ oh
08:43 moritz_ I think that's a bug
08:43 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} };  say  [\,] ('3' => 1, '4' => 5);
08:43 p6eval rakudo e16cf4:  ( no output )
08:43 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} };  say  [\,] @('3' => 1, '4' => 5);
08:43 p6eval rakudo e16cf4:  ( no output )
08:44 moritz_ oh
08:44 moritz_ I know why
08:44 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~self;} };  say  [\,] '3' => 1, '4' => 5;
08:44 p6eval rakudo e16cf4: OUTPUT«3  13      1 4     5␤»
08:44 moritz_ you're causing an infinite recursion
08:44 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Num() { ~self;} };  say  [\+] '3' => 1, '4' => 5;
08:44 p6eval rakudo e16cf4: OUTPUT«3  17␤»
08:44 moritz_ because prefix:<~> calls .Str under teh hood
08:45 JimmyZ >rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say ([\,] @('3' => 1, '4' => 5)).perl;
08:45 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say ([\,] @('3' => 1, '4' => 5)).perl;
08:45 p6eval rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))␤»
08:45 dual joined #perl6
08:46 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say [\,] '3' => 1, '4' => 5;
08:46 p6eval rakudo e16cf4:  ( no output )
08:46 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say ([\,] '3' => 1, '4' => 5).perl;
08:46 p6eval rakudo e16cf4: OUTPUT«("3" => 1, ("3" => 1, "4" => 5))␤»
08:47 JimmyZ it's strange
08:47 moritz_ I've explained it above
08:47 JimmyZ moritz_: yes, thanks
08:48 JimmyZ rakudo: use MONKEY_TYPING; augment class Pair { method Str() { ~self;} }; say ([\,] '3' => 1, '4' => 5).Str; # wrong thing
08:48 p6eval rakudo e16cf4: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
08:53 dakkar joined #perl6
08:59 mikehh joined #perl6
09:05 sorear Who gets the blame for PseudoPod and POD6 being nearly identical?
09:06 moritz_ Damian and p6l
09:07 slavik1 joined #perl6
09:07 slavik1 rakudo: class MyClass { has $.val is rw; }; my @list = MyClass.new xx 5; say @list.perl;
09:07 p6eval rakudo e16cf4: OUTPUT«[MyClass.new(), MyClass.new(), MyClass.new(), MyClass.new(), MyClass.new()]␤»
09:08 slavik1 rakudo: class MyClass { has $.val is rw; }; my @list = MyClass.new xx 5; say @list.$val;
09:08 p6eval rakudo e16cf4: OUTPUT«Symbol '$val' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
09:08 slavik1 rakudo: class MyClass { has $.val is rw; }; my @list = MyClass.new xx 5; say @list.val;
09:08 p6eval rakudo e16cf4: OUTPUT«Method 'val' not found for invocant of class 'Array'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
09:08 sorear rakudo: role A { multi method handler() { say "Foo!" }; }; role B { multi method handler() { say "Bar!" }; }; class C does A does B { }; C.new.*handler;
09:08 p6eval rakudo e16cf4: OUTPUT«Method 'handler' collides and a resolution must be provided by the class␤current instr.: 'perl6;Perl6;Metamodel;Rol​eToClassApplier;_block132' pc 9253 (src/gen/RoleToClassApplier.pir:306)␤»
09:09 sorear Opinion: this should be legal
09:09 slavik1 rakudo: class MyClass { has $.val is rw; does p { say 1; } }; my $list = MyClass.new; $list.p;
09:09 p6eval rakudo e16cf4: OUTPUT«Could not find sub &p␤current instr.: 'perl6;MyClass;_block46' pc 370 (EVAL_1:150)␤»
09:10 slavik1 rakudo: class MyClass { has $.val is rw; method p { say 1; } }; my $list = MyClass.new; $list.p;
09:10 p6eval rakudo e16cf4: OUTPUT«1␤»
09:10 slavik1 how do I access a class variable ?
09:10 slavik1 $class.$.var ?
09:10 sorear classes don't have variables
09:10 slavik1 attributes?
09:11 sorear Still not sure what you mean
09:11 sorear Unless
09:11 sorear rakudo: class MyClass { has $.val is rw }; my $list = MyClass.new; $list.val = 5; say $list.val;
09:11 slavik1 class a { has $.blah } ... how do I access that $.blah?
09:11 p6eval rakudo e16cf4: OUTPUT«5␤»
09:12 jnthn slavik1: The generated accessor method is just called blah
09:12 slavik1 wtf ...
09:12 sorear $.val is sugar for self.val
09:12 slavik1 ok, I think I see it
09:12 moritz_ rakudo: class A { has $.blah; method buh { say $.blah } }; A.new(blah => "fasel").buh
09:12 p6eval rakudo e16cf4: OUTPUT«fasel␤»
09:13 sorear does anyone here have a position on that roles thing?
09:13 slavik1 rakudo: class MyClass { has $.val is rw; method inc { $.val++; } }; my @list = MyClass.new(val => 1) xx 5; say @list.per;;
09:13 p6eval rakudo e16cf4: OUTPUT«Method 'per' not found for invocant of class 'Array'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
09:13 * sorear is trying to implement an event framework in perl 6
09:13 slavik1 rakudo: class MyClass { has $.val is rw; method inc { $.val++; } }; my @list = MyClass.new(val => 1) xx 5; say @list.perl;
09:13 p6eval rakudo e16cf4: OUTPUT«[MyClass.new(), MyClass.new(), MyClass.new(), MyClass.new(), MyClass.new()]␤»
09:14 slavik1 rakudo: class MyClass { has $.val is rw; method inc { $.val++; } }; my @list = MyClass.new(val => 1) xx 5; say @list.val;
09:14 p6eval rakudo e16cf4: OUTPUT«Method 'val' not found for invocant of class 'Array'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
09:14 slavik1 rakudo: class MyClass { has $.val is rw; method inc { $.val++; } }; my @list = MyClass.new(val => 1) xx 5; @list.val;
09:14 p6eval rakudo e16cf4: OUTPUT«Method 'val' not found for invocant of class 'Array'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
09:14 slavik1 wait ...
09:14 slavik1 how do I get the same method to get invoked for a list of classes?
09:15 slavik1 this was in spec I believe
09:15 slavik1 sorear: that looks like the diamond of death
09:15 slavik1 sorear: which one should be invoked in that sutation?
09:17 sorear slavik1: Both of them.  .* means "ignore the usual type dispatch rules and just invoke all applicable methods in some order"
09:17 JimmyZ rakudo: augment class Pair { method Str() { ~self;} };
09:17 p6eval rakudo e16cf4: OUTPUT«Can't augment class Pair without 'use MONKEY_TYPING'␤current instr.: 'perl6;Perl6;Grammar;add_name' pc 42212 (src/gen/perl6-grammar.pir:374)␤»
09:17 sorear The kicker is that it *is* the diamond of death in the absense of .*
09:17 JimmyZ rakudo: augment class Paiir { method Str() { ~self;} };
09:17 p6eval rakudo e16cf4: OUTPUT«Can't augment class that doesn't exist␤current instr.: 'perl6;Perl6;Grammar;add_name' pc 42212 (src/gen/perl6-grammar.pir:374)␤»
09:18 jnthn sorear: On the role/multi thing, maybe it should work. I suspect if you write a proto in the class it will work.
09:18 slavik1 sorear: oh, nice
09:18 slavik1 perl6++
09:19 sorear rakudo: role A { proto method handler(); multi method handler() { say "Foo!" }; }; role B { multi method handler() { say "Bar!" }; }; class C does A does B { }; C.new.*handler;
09:19 slavik1 can a class know it's own runtime type/name?
09:19 p6eval rakudo e16cf4: OUTPUT«Malformed method at line 11, near "handler();"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
09:19 sorear rakudo: role A { proto method handler() { ... }; multi method handler() { say "Foo!" }; }; role B { multi method handler() { say "Bar!" }; }; class C does A does B { }; C.new.*handler;
09:19 p6eval rakudo e16cf4: OUTPUT«Method 'handler' collides and a resolution must be provided by the class␤current instr.: 'perl6;Perl6;Metamodel;Rol​eToClassApplier;_block132' pc 9253 (src/gen/RoleToClassApplier.pir:306)␤»
09:19 slavik1 so that it would be possible to do what sorear is doing but also output from what class the method is inherited?
09:19 sorear jnthn: Well, I don't want the class to know the names of all legal event names.
09:22 pmurias joined #perl6
09:22 pmurias hi
09:22 phenny pmurias: 01:38Z <diakopter> tell pmurias I fixed ur buggo
09:22 phenny pmurias: 01:38Z <diakopter> tell pmurias by rejiggering the grammar
09:22 jnthn sorear: Yeah, good point.
09:22 phenny pmurias: 01:38Z <diakopter> tell pmurias good luck :)
09:22 phenny pmurias: 04:40Z <diakopter> tell pmurias I can re-enable the trampoline when a possibly-recursive invocation is detected, but the addl cost will be another slot for the return value per callsite in each recursive frame.
09:22 phenny [Sorry, some messages were elided and lost...]
09:23 pmurias why are messages elided?
09:23 jnthn sorear: I think it's maybe a grey area in the spec, though I'd like it to work.
09:23 sorear because phenny tried to paste the remainder to paste.lisp.org with an outdated captcha key
09:23 sorear it should just be using App::Nopaste
09:24 sorear jnthn: I don't like it all that much because if I misspell an event, nothing will warn me.
09:24 sorear However, my options are rather limited by Rakudo's limited support for the MOP
09:27 sorear I think for now I'll just give my methods names like _handler_FOO_uniquey() and rely on introspection for event dispatch
09:27 sorear With an eye towards moving to a macro & trait based system in the future
09:28 slavik1 if anyone cares, I had my phone HR phone screen with google ... if luck is on our side, there will be a Perl6 binding for MapReduce :)
09:28 sorear Is that better than » ?
09:30 pmurias >> is just map
09:30 pmurias and MapReduce is intended for distributed things while >> is for concurrency on a single box
09:31 slavik1 pmurias: err?
09:32 pmurias sorear: you asked if MapReduce was better than »?
09:34 sorear yes
09:34 sorear [] too
09:35 masak joined #perl6
09:35 masak oh hai, #Perl6
09:35 phenny masak: 01:45Z <diakopter> tell masak k, yapsi notifications should work now.  it would help if I didn't try to load "/yapsilog.com" from botnix.conf and tried "/yapsi.pm" instead. :/
09:35 masak wtf ;)
09:36 moritz_ good morning masak
09:36 moritz_ I've already seen a notification for a yapsi commit
09:37 masak ah. snarkyboojum++
09:38 jnthn oh hai masak
09:42 pmurias std: CALLER
09:42 p6eval std 30497: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared name:␤ 'CALLER' used at line 1␤Check failed␤FAILED 00:01 109m␤»
09:42 pmurias std: CALLER::<$foo>
09:42 p6eval std 30497: OUTPUT«ok 00:01 107m␤»
09:42 pmurias std: CALLER::
09:42 p6eval std 30497: OUTPUT«ok 00:01 107m␤»
09:43 riffraff joined #perl6
09:44 ive joined #perl6
09:46 sorear #70469 #73034 are duplicates
09:46 sorear also, why do we do this?
09:46 sorear it seems like a premature optimization
09:46 sorear it's been bugrepped three times.
09:47 sorear (this = omitting the pir::newclosure before pir::capturelex in nested sub definitions)
09:47 ive joined #perl6
09:48 moritz_ sorear: last time somebody (=pmichaud) tried to fix it, spectest broke horribly. I have no idea what his fix was, though
09:49 moritz_ sorear: if you have a patch that fixed it and doesn't break spectest, please share :-)
09:56 gurjeet_ joined #perl6
09:57 * masak merges #73034 into #70469
09:57 sorear spectest is still /checking out/
09:58 sorear rakudo: my @x; my $n; for @x.grep(rx/^ _handler_ $n/) -> $handler { $handler() }
09:58 p6eval rakudo e16cf4:  ( no output )
09:58 sorear rakudo: my @x; my $n; for @x.grep(rx/^ _handler_ $n/) -> $handler { $handler(2, 3) }
09:58 p6eval rakudo e16cf4:  ( no output )
09:58 sorear oh
09:58 moritz_ @x being empty, and all that
09:59 sorear moritz_: rakudo was locally generating an error at compile time
09:59 sorear however, %_ was bound in lexical scope
09:59 _jaldhar_ joined #perl6
09:59 sorear and I just remembered that was a known bug
10:00 stepnem joined #perl6
10:00 colomon moritz_: re [+] using Num ... yes, the grand Numeric conversion definitely isn't done yet.  :)
10:00 sorear Method 'perl' not found for non-object
10:00 sorear current instr.: 'trait_mod:<does>' pc 291390 (src/Perl6/Compiler.pir:112)
10:00 sorear yikes
10:00 moritz_ colomon: ok
10:00 moritz_ sorear: some error messages contain .perl output...
10:00 simcop2387 joined #perl6
10:01 moritz_ sorear: maybe it's throwing an error while trying to build an error message
10:01 jnthn Sounds like it.
10:02 colomon moritz_: BTW, I did fix the split bug yesterday, so the subst call from SVG.pm should work now.
10:02 pmurias what's the state of APL on parrot? (i'm currently reading "A Programming Language")
10:02 jnthn (I know there's a fallback multi for that trait mod that gives an error.)
10:03 sorear s/module/role/ in the role's definition fixed it.
10:03 moritz_ colomon: thanks, I'll try once rakudo compilation is finished
10:04 pugssvn r30498 | pmurias++ | [mildew] fix the building of CORE (one test fails)
10:08 moritz_ colomon++
10:08 moritz_ and indeed, SVG.pm seems to work fine with master now
10:09 masak \o/
10:09 moritz_ now on to SVG::Plot
10:09 jnthn \o/
10:09 moritz_ Method 'Num' not found for invocant of class 'Block'
10:10 jnthn Whatever.
10:10 moritz_ that sound suspiciously like Whatever-currying
10:10 colomon indeed.
10:10 moritz_ :style("fill:{ @.colors[$d % *] }"),
10:11 moritz_ rakudo: <a b c>[-> $x { $x - 1 }]
10:11 p6eval rakudo e16cf4: OUTPUT«Method 'Int' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
10:12 moritz_ rakudo: say (24 % *).(5)
10:12 p6eval rakudo e16cf4: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
10:12 sorear rakudo: class Foo { }; my $name = 'xyzzy'; Foo.^methods(:local);
10:12 p6eval rakudo e16cf4:  ( no output )
10:13 sorear rakudo: class Foo { }; my $name = 'xyzzy'; Foo.^methods(:local);
10:13 p6eval rakudo e16cf4:  ( no output )
10:13 sorear is p6eval mangling lexicals?
10:14 moritz_ it should not... why do you think it does?
10:14 moritz_ rakudo: say log10(100)
10:14 p6eval rakudo e16cf4: OUTPUT«2␤»
10:15 sorear moritz_: rakudo 082caee local blows up on that code.
10:15 moritz_ why do I get an error that &log10 wasn't found?
10:15 sorear if you rename or remove $name, it works.
10:16 moritz_ oh, I remember diakopter hacking something in for safe mode... don't know if that's still active
10:16 sorear can someone with an unpatched rakudo, ideally 082caee, tell me if I'm insane/
10:17 sorear make spectest is running 3 simultaneous rakudo processes
10:17 sorear how do I stop it?
10:17 moritz_ Ctrl+C
10:17 sorear I have 1 core are < 3*RakudoHeap RAM
10:17 sorear *and
10:18 moritz_ exprot TEST_JOBS=1
10:19 moritz_ sorear: my build of rakudo HEAD doesn't blow up on   class Foo { }; my $name = 'xyzzy'; Foo.^methods(:local);
10:19 moritz_ if that's what you wanted to know
10:19 moritz_ \o/ SVG::Plot now working on master
10:20 colomon moritz_++
10:21 moritz_ just three changed lines
10:23 colomon hey, you ++'d me for fixing split, and that was just changing one line and adding another.
10:24 moritz_ I wasn't trying to dminish my fixes, just wanted to tell you that master was working pretty well :-)
10:24 colomon :)
10:24 avar does rakudo have an sqlite interface?
10:25 moritz_ avar: masak wrote "Squerl" which uses sqlite... no idea how well it works
10:25 moritz_ std: s[foo];
10:25 p6eval std 30497: OUTPUT«[31m===[0mSORRY![31m===[0m␤Missing assignment operator at /tmp/SfWppLSxKr line 1:␤------> [32ms[foo][33m⏏[31m;[0m␤    expecting quantifier␤Parse failed␤FAILED 00:01 111m␤»
10:25 sorear just use DBD::SQLite
10:26 avar sorear: maybe if you make your patches public :)
10:26 sorear I did.
10:26 avar oh, where is it?
10:26 sorear Rakudo master.
10:27 sorear A one-line bugfix which allows you to write 'DBI' instead of '::DBI' is still waiting on jnthn though
10:27 moritz_ avar: and blizkost is in the blizkost repo :-)
10:28 * moritz_ currently spectests a patche that implements rx{...} (as opposed to rx/.../)
10:28 avar sorear: what are the relevant commits/tests?
10:28 avar or example program :)
10:28 sorear Blizkost can currently marshal hashes, strings, numbers, coderefs, and arrays(arguments only)
10:29 jnthn rakudo: s[foo];
10:29 p6eval rakudo e16cf4: OUTPUT«Missing assignment operator at line 11, near ";"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
10:29 sorear avar: examples/ in github.com/jnthn/blizkost
10:29 moritz_ jnthn: I've just seen the error message in rakudo, and wondered if we should add "after s[...]", but decided that we don't need to more awesome than STD.pm
10:30 avar sorear: You you patched blizkost but didn't create some new project?
10:30 avar ah, right, thought it was some new glue
10:30 sorear avar: I more or less took over blizkost.  It is my new project
10:30 moritz_ and I think jnthn is glad somebody else takes care :-)
10:31 avar cool:)
10:31 avar I was going to test out rewriting Hailo in Perl 6, but I was always blocking on "oh that'll be a total PITA without modules" :)
10:32 * jnthn is *very* glad somebody else is taking care of Blizkost. sorear++
10:33 sorear There's a very good chance I'll need to implement arrayref and undef returns before DBI works fully
10:34 sorear however, you can do stuff like my &p5defined = eval ("sub { defined $_[0] }", :lang<perl5>);
10:34 avar Right, or implement a glue module on the p5 side
10:36 avar w 8
10:39 avar sorear: patch: http://github.com/avar/blizkost/commit/4​9be3c0a267aee18c46f9f6d59412d031f049b25 :)
10:42 am0c joined #perl6
10:45 masak Squerl should still work under alpha. probably not under master without some modifications.
10:59 rv2733 joined #perl6
10:59 m6locks crap. i got only master
11:09 Su-Shee joined #perl6
11:23 takadonet left #perl6
11:27 masak huh. Python has combinations() and permutations() built in: http://docs.python.org/library/itertools.html
11:28 Su-Shee the doc say it's a module.
11:28 Su-Shee hi all.
11:28 avar Will Perl 6 have batteries ?:)
11:28 avar sorear: It's part of the stdlib
11:29 pugssvn r30499 | moritz++ | [t/spec] unfudge passing split :all tests, colomon++
11:30 masak Su-Shee: I think it's one of them 'core modules'.
11:30 am0c joined #perl6
11:30 masak ah. what avar said, to the wrong tab-person.
11:31 Su-Shee which means one can easily define whatover one wants to be a core module. :)
11:31 Su-Shee ever
11:31 kst joined #perl6
11:34 masak well, it seems that that kind of 'core' will be up to distributions of Perl 6, not the spec.
11:36 Su-Shee masak: I like tiny cores. I like adding modules depending on the need.
11:36 Su-Shee and why not make a "security related math libs" distribution or a "gui-all-you-ever-need" distribution.. :)
11:36 moritz_ tiny core... then Perl 6 is not for you :-)
11:36 masak Su-Shee: me too. but I also know I draw the line somewhere.
11:37 Su-Shee I realized that already. ;)
11:37 masak Su-Shee: for example, impoting 'stdio' for IO in C feels silly.
11:37 Su-Shee masak: excellent example I would totally agree.
11:38 moritz_ anyway, I'd welcome some attempts to make DateTime, Date and various container types non-core, but still with a somewhat built-in feeling
11:38 Su-Shee moritz_: from a user's point of view I essentially don't want to "feel" the difference between "is core, is builtin, is cpan"
11:40 masak moritz_: not sure what you mean. what more would it take than putting `use DateTime;` at the top of the program?
11:41 colomon rakudo: say 1i * "3"
11:41 p6eval rakudo e16cf4: OUTPUT«0 + 3i␤»
11:41 colomon rakudo: say 1i + "3"
11:41 p6eval rakudo e16cf4: OUTPUT«3 + 1i␤»
11:42 moritz_ masak: integration with other modules or core things...
11:42 masak moritz_: it's the latter thing that concerns me.
11:42 moritz_ for example now that 'now' returns an Instant, I think time() could return a DateTime
11:42 moritz_ (if we need time() at all)
11:43 masak seems that we can't have both 'time' as a builtin and DateTime as non-core.
11:44 moritz_ so... move DateTime and time() both out of core?
11:46 masak well, I'm still a bit doubtful.
11:46 masak wouldn't filetests need DateTime, for example?
11:46 masak those are definitely core.
11:46 moritz_ no, they need Instant only
11:46 masak ok.
11:47 moritz_ maybe I should compile a list of types that could be non-core
11:47 masak I'd like for DateTime to end up as 'almost core', i.e. something that most distributions will want to pull in.
11:47 moritz_ aye
11:47 masak things like timezones and localizations may well be CPAN-style modules.
11:48 masak i.e. not necessarily 'almost core'.
11:50 snarkyboojum joined #perl6
11:51 moritz_ Set, KeyBag, KeySet, KeyHash # feel like they could be "almost core"
11:54 plobsing joined #perl6
11:59 takadonet joined #perl6
11:59 takadonet morning all
11:59 masak takadonet: \o
11:59 masak moritz_: aye.
12:00 * masak would still like to 'flesh out' the specification of those classes to contain a richer set of common operations
12:07 envi^home joined #perl6
12:08 pugssvn r30500 | colomon++ | [t/spec] All those 0.0s and 2.5s were meant to be Nums -- and now they are again.
12:34 ruoso joined #perl6
12:42 colomon jnthn: ping?
12:44 SmokeMachine joined #perl6
12:44 tylerni7 joined #perl6
12:45 kst joined #perl6
12:49 moritz_ http://www.perlmonks.org/?node_id=837535 # rir++ for asking the right questions
12:51 moritz_ if you have things to add to my answer, please do so now
12:52 iblechbot joined #perl6
12:53 moritz_ while I was writing my reply, I realized that proto and cpan differ quite significantly
12:53 moritz_ cpan is push-style: each version is uploaded to pause.cpan.org
12:54 moritz_ while our current approach is pull-style: the meta data is kept central, but the source code isn't kept in one place
12:54 masak *nod*
12:54 moritz_ not sure which approach is preferable in the long run
12:54 masak proto was never meant to be like CPAN. it was created to solve a piece of immediate pain.
12:54 moritz_ I know, you keep repeating that :-)
12:54 pmurias keeping the source code in one place seems very sensible
12:55 masak moritz_: I keep repeating it because I'm constantly surprised about the new things that proto starts to mean to people. :)
12:55 masak I consider that project to be my most successful failure so far.
12:56 moritz_ masak: :-) linux started out as an exploration of i386 architecture
12:56 moritz_ masak: pugs started as an exercise in compiler writing
12:56 moritz_ etc.
12:56 masak aye. start small.
12:57 pugssvn r30501 | pmurias++ | [mildew] avoid duplication of the output method
12:57 pugssvn r30502 | pmurias++ | [mildew] only the C backends load the setting through MildewSOLoader
12:59 pugssvn r30503 | moritz++ | [helpnow] new idea: overview page for proto projects
13:02 tylerni7 joined #perl6
13:02 [Coke] (most successful failure)++
13:03 ReiniUrban joined #perl6
13:04 masak it's still in the README. 'It's only purpose is to help you set up a running environment where you can play with Perl 6 modules with minimal hassle.'
13:04 masak nowadays proto compiles and installs modules, and it can help people create new modules.
13:05 masak I'm not saying that's bad. just not what I had in mind. :)
13:11 colomon has anyone figured out how to output data from inside the core when &say cannot be found?
13:11 masak moritz_: 'blizkost' is a noun; it means 'closeness' or 'proximity' rather than 'close'. just a teeny tiny nit.
13:12 masak colomon: assign a global variable &s and use that.
13:12 moritz_ masak: thanks, fixed
13:16 pmurias diakopter: hi
13:17 [particle] joined #perl6
13:19 sahadev joined #perl6
13:20 colomon masak++
13:20 masak colomon: :) discovered it just the other day
13:20 colomon of course, now that I know more, I've gone from confused to utterly mystified
13:21 masak is it possible to isolate and golf that mystification?
13:21 [Coke] http://merlyn.posterous.com/​programming-perl-6-cover-art
13:22 colomon I dunno.
13:22 meppl joined #perl6
13:24 colomon here's the deal.
13:25 colomon moritz_++ pointed out that arithmetic was still using .Num instead of .Numeric internally.
13:25 colomon as a result of thinking about that a bit, I started adding tests like "1" + 3i to complex.t
13:26 colomon in theory, the way they should work properly now is:
13:26 colomon "1" + 3i dispatches to infix:<+>(Any, Any)
13:26 moritz_ rakudo: say '1' + 3i
13:26 p6eval rakudo e16cf4: OUTPUT«1 + 3i␤»
13:26 colomon that calls +"1" + +3i
13:27 colomon moritz_: that works now because there is an infix:<+>(Any, Complex)
13:27 colomon I'm trying to get rid of that.
13:27 colomon and (concluding) +"1" + +3i dispatches to infix:<+>(Real, Complex)
13:28 moritz_ but prefix:<+> should already call .Numeric, no?
13:29 colomon moritz_: yes, it does.  but the existing versions of infix:<+>(Any, Any) calls .Num on each argument instead.
13:29 moritz_ ok
13:29 moritz_ so that needs fixing too
13:29 colomon the change to use +$a + +$b is only local to my system at the moment.
13:29 colomon thing is, that works great
13:29 colomon afk for sec
13:32 colomon but the exact same approach fails miserably for infix:<**>
13:33 moritz_ rakudo: infix:<**>(Mu, Mu)
13:33 p6eval rakudo e16cf4: OUTPUT«No applicable candidates found to dispatch to for 'infix:<**>'. Available candidates are:␤:(Int $a, Int $b)␤:(Complex $a, Complex $b)␤:()␤:(Num $a, Num $b)␤:(Real $a, Real $b)␤:(Complex $a, Real $b)␤:(Real $a, Complex $b)␤:(Any $a, Any $b)␤␤current instr.: '_block14' pc 29
13:33 p6eval ..(EVAL_1:…
13:33 colomon infix:<**>(Any, Any) calls itself recursively 1000 times
13:33 moritz_ so what does $a.Numeric and $b.Numeric return?
13:33 colomon and when I use masak++'s trick to dump the Parrot version of the types involved, it is Perl6Str and Complex all the way down.
13:34 colomon so +Perl6Str seems to return a Perl6Str.
13:34 moritz_ that's wrong.
13:34 colomon well yes.
13:35 colomon what I don't get is why +Perl6Str doesn't work for **, but seems to work fine for +
13:35 colomon (last + is infix:<+>)
13:36 moritz_ and that's for '1' ** 3i, or what?
13:36 colomon moritz_: "1" ** 3i
13:36 moritz_ rakudo: say "1".PARROT
13:36 p6eval rakudo e16cf4: OUTPUT«Perl6Str␤»
13:37 moritz_ rakudo: say (+"1").PARROT
13:37 p6eval rakudo e16cf4: OUTPUT«Num␤»
13:37 moritz_ colomon: maybe.... a very stupid precedence issue?
13:37 colomon moritz_: I do believe that must be it!
13:37 moritz_ (+$a) + (+$b) or so?
13:37 colomon moritz_++
13:38 colomon +$a ** +$b is probably +($a ** +$b)
13:38 colomon that would explain everything.
13:38 masak colomon: can you demonstrate it on p6eval?
13:39 colomon masak: let me think
13:40 colomon masak: behaving that way is spec
13:40 colomon exponentiation has higher precedence than symbolic_unary
13:40 masak o.O
13:41 * masak looks
13:41 colomon or at least, that's what rakudo's grammar has for it.
13:41 masak by blog, S03 agrees with you.
13:41 moritz_ aye
13:42 masak oh right, that's so that -2**4 will mean the Right Thing.
13:42 masak TimToady mentioned that the other day.
13:42 moritz_ for the right value of "right" :-)
13:42 masak well, it means what mathematicians mean by it.
13:43 masak TimToady: should p5=> really remain in the S03 precedence table?
13:46 colomon moritz_++ # bug appears to be fixed!
13:49 ruoso joined #perl6
13:51 pmurias ruoso: using Regexp::Grammars to replace the haskell m0ld parser seems sane?
13:52 ruoso I never used it, but it being in perl5 is already good enough  when compared to the haskell dependency ;)
13:54 ruoso it doesn't support rec descent well... but m0ld doesn't require it... so it's probably a good choice, since it's going to be faster
13:56 pmurias i would be so sure about it being faster but it certainly won't require setting up cabal
13:59 pmurias do you think carefull placing of #line would allow using gdb to debug code spit out by mildew's C backends?
14:02 pugssvn r30504 | moritz++ | [helpnow] draft announcement
14:08 alester joined #perl6
14:12 jnthn colomon: belated pong (meeting... :-))
14:12 colomon jnthn: no worries, we actually solved the problem without you.  :)
14:12 colomon masak++ and moritz_++
14:13 jnthn Yay!
14:15 jnthn btw, I'm heading off the Iceland tomorrow, all being well. I'll probably have good connectivity until Monday while in the capital, but may be sketchy at times next week when I head out to the countryside (hopefully). Just a heads up. :)
14:15 mathw Iceland? Hmmm
14:15 mathw Watch out for volcanoes
14:15 colomon :)
14:15 colomon afk # exercising
14:16 moritz_ jnthn: have fun in Iceland :-)
14:16 * moritz_ wonders if NPW is actually cancelled
14:18 jnthn moritz_: Yes
14:18 jnthn moritz_: But since I'd planned to take the week after it having a vacation anyway, I decided to go ahead with the trip.
14:18 moritz_ jnthn: then I hope your weather will be a nice as it is here a the moment
14:19 moritz_ (sunny, 26C)
14:19 JimmyZ joined #perl6
14:22 jnthn moritz_: ooh, that *is* nice :-)
14:22 jnthn It'll likely be a bit cooler.
14:22 masak jnthn: enjoy Iceland for me! :)
14:22 moritz_ I'll leave $work in a few minutes, buy some foodstuff and then exercise my inline skates
14:24 moritz_ at times I'm very happy for not having fixed (or even defined) work hours
14:25 [Coke] moritz_: same here. though some times I can use the structure that 9-5 woudl provide. =-)
14:25 moritz_ aye. External constraints help not let things slip
14:25 moritz_ decommute&
14:26 KeithWolters joined #perl6
14:27 KeithWolters should I be able to return from a sub with something like "retturn 0 but true"?
14:28 masak rakudo: sub foo { return 0 but True }; say foo
14:28 p6eval rakudo e16cf4: OUTPUT«No applicable candidates found to dispatch to for 'infix:<does>'. Available candidates are:␤:(Mu $do-it-to-me, Role $r)␤:(Mu $do-it-to-me, ConcreteRole $r)␤␤current instr.: 'infix:<but>' pc 311315 (src/gen/core.pir:0)␤»
14:29 masak rakudo: role Troo {}; sub foo { return 0 but Troo }; say foo
14:29 p6eval rakudo e16cf4: OUTPUT«0␤»
14:29 masak KeithWolters: yes. it should work in Rakudo too, but enums (Bool::True in particular) are not sufficiently role-y yet.
14:33 KeithWolters thanks
14:34 rgrau_ joined #perl6
14:34 [particle]1 joined #perl6
14:40 jnthn enums are not sufficiently existential in Rakudo yet either...
14:41 envi^home joined #perl6
14:41 REPLeffect joined #perl6
14:43 [particle]1 joined #perl6
14:43 mathw They're not sufficiently named
14:44 mathw rakudo: enum Mode <Binary ASCII>; my $m = Mode::Binary; say $m;
14:44 p6eval rakudo e16cf4: OUTPUT«Can not find sub Mode::Binary␤current instr.: 'perl6;Perl6Exception;throw' pc 14877 (src/builtins/Seq.pir:28)␤»
14:52 pmurias joined #perl6
14:56 diakopter pmurias: hi
14:57 pmurias diakopter: hi
14:58 kst joined #perl6
14:58 proller joined #perl6
14:58 justatheory joined #perl6
14:59 sorear I figured out my problem yesterday
14:59 pmurias diakopter: the catch/try in the trampoline is used for catching the case when next is null?
14:59 sorear It involved perl6 -e ' ... ... ... my $name = 'foo' ... ...'
14:59 sorear sh, I hate you
15:00 masak sorear: I do that one far too often too :)
15:00 jnthn Oh, sh..
15:00 jnthn :-)
15:00 colomon not ok 6 - increment of undefined variable does not warn
15:00 colomon #      got err: "Use of uninitalized value in numeric context\n"
15:00 colomon # expected err: ""
15:01 colomon my $a; $a += 1
15:01 colomon rakudo: my $a; $a += 1
15:01 pmurias diakopter: could that be done by an if as it hides exceptions from methods invoked by sprixel code
15:01 p6eval rakudo e16cf4:  ( no output )
15:02 colomon > my $a; $a += 1; say $a;
15:02 colomon Use of uninitalized value in numeric context
15:02 colomon 1
15:02 colomon I thought we'd agreed it should warn in cases like this?  Opinions?
15:02 masak omgiblogged: http://use.perl.org/~masak/journal/40333
15:03 masak colomon: I thought we'd agreed it shouldn't warn in that case.
15:03 masak colomon: it should warn in the `$a = $a + 1` case.
15:03 masak but not in the assignment metaop cases.
15:03 diakopter pmurias: but I stopped using the trampoline anyway
15:05 colomon masak: In that case, how can I check definedness in PIR?  :)
15:06 masak dunno.
15:07 diakopter pmurias: but yes, it does hide those exceptions..... lemme fix that.
15:08 jnthn omgthreethirds!
15:08 pmurias diakopter: the trampoline is still used in commited code?
15:08 diakopter yes, but only once
15:08 diakopter it's easy to stop using entirely
15:08 colomon masak: on your blog post, part 2 -- contextuals exist only for the scope they're defined in and any scopes that it calls?  I've never quite understood them...
15:09 masak colomon: that's right.
15:09 diakopter pmurias: ok.
15:10 masak colomon: which makes them perfect for when you have a routine at the top, sharing data with all the routines transitively called.
15:10 colomon masak: sweet, yes, masak++ for blogging that.  (and thinking to do it.)
15:11 sorear Is there any short way to say git log avar/master..HEAD; git log HEAD..avar/master ?
15:11 sorear I want the symmetric difference
15:11 colomon jnthn: any hints on testing for definedness in pir?  I'd like to hack assign_metaop so that it checks to see if the first arg is defined and calls $P0() if not....
15:11 masak sorear: that might be what '...' does.
15:11 * masak doesn't quite recall, though
15:12 jnthn colomon: Can't you just call .defined?
15:12 jnthn $P1 = $P0.'defined'()
15:12 jnthn if $P1 goto omgyayitsdefined
15:12 colomon jnthn:  I dunno, I'm not very good at PIR.  I'll give that a try.
15:13 sorear that'll work, except that if $P0 is null it may segfault
15:13 jnthn no it own't
15:13 jnthn it'll give a null PMC access excpetion.
15:13 diakopter afk&
15:13 jnthn colomon: Should work
15:13 sorear and of course it won't work well if $P0 is a non-parrot object
15:13 colomon will it work if I use .param pmc a        a.'defined'()      instead?
15:13 jnthn sure
15:13 sorear colomon: That changes nothing, so yes
15:14 jnthn The other way is $I0 = defined a
15:14 jnthn if $I0 goto yayitsdeinfed
15:14 sorear jnthn: PARROT_CATCH_NULL is an option
15:14 sorear avar: Still here?
15:14 dalek csmeta: r224 | diakopter++ | trunk/Sprixel/ (3 files):
15:14 dalek csmeta: [perlesque] see if this works.
15:14 dalek csmeta: review: http://code.google.com/p/c​smeta/source/detail?r=224
15:15 [Coke] (parrot nulliness) ISTR there is a ticket that is eligible to go in shortly that will impact that.
15:15 avar sorear: yah
15:15 avar sorear: git remote add avar my-git-url
15:15 avar git diff master..avar/master
15:15 [Coke] https://trac.parrot.org/parrot/ticket/1207 ?
15:16 pmurias diakopter: would i be possible to add an option to sprixel to spit out the disassembled version of the code instead of running it?
15:18 sorear avar: that only shows me patches you've added.
15:18 sorear I want to see all differences, including ones you may have removed
15:18 sorear avar: btw I've already committed your patch
15:20 avar sorear: I don't get what you mean. I just added this: http://github.com/avar/blizkost/commit/4​9be3c0a267aee18c46f9f6d59412d031f049b25
15:20 avar so that's all git dif master..avar/master would show you. I didn't remove anything
15:20 sorear Yes.  And.  http://github.com/jnthn/blizkost/commit/​49be3c0a267aee18c46f9f6d59412d031f049b25
15:20 sorear avar: git diff master..avar/master will show me ABSOLUTELY NOTHING if you have removed a patch.
15:21 sorear As a rule I don't trust people when they tell me about why their code is safe.  It's the same with branches.
15:21 sorear git diff avar/master..master shows me the other side of the story.
15:21 sorear I'd like to only run one command to see both.
15:21 avar well, then alias it in your ~/.gitconfig :)
15:22 avar Anyway, git-cherry-pick is probably what you want for single patches like that
15:22 proller joined #perl6
15:22 avar Anyway, 'git diff master..avar/master' *will* show you the complete story, it's all the patches on that branch since it diverged.
15:23 avar so a subsequent git merge avar/master is safe, the worst that can happen is a merge conflict because the patches changed something you changed too.
15:23 sorear If you did git reset --hard HEAD^
15:23 sorear that wouldn't register on git diff master..avar/master
15:24 sorear are you disputing this?
15:24 colomon rakudo: my $a; $a *= 5; say $a
15:24 p6eval rakudo e16cf4: OUTPUT«Use of uninitalized value in numeric context␤0␤»
15:24 colomon > my $a; $a *= 5; say $a
15:24 colomon 5
15:24 sorear incidentally, ... works
15:24 [Coke] rakudo: say ...
15:24 p6eval rakudo e16cf4: OUTPUT«No exception handler and no message␤current instr.: '&fail' pc 17511 (src/builtins/Junction.pir:489)␤»
15:24 avar No. I didn't account for reset, anyway if someone was evil like that you'd get a push conflict about a non-fast forward when pushing to github unless you did git push -f
15:25 [Coke] std: say ...
15:25 p6eval std 30504: OUTPUT«ok 00:01 109m␤»
15:25 * [Coke] rings up masak.
15:25 masak hello?
15:25 sorear masak++
15:25 [Coke] see last two evalbots?
15:25 masak yeah.
15:25 masak but I see no bug.
15:26 moritz_ well, ... in rakudo is less than awesome
15:26 masak LTA might be the bug, sure.
15:26 masak what would you want the error message to be?
15:26 [Coke] I see a parrot error message. shouldn't rakudo never emit one?
15:26 * masak submits LTA rakudobug
15:26 [particle]1 it's masakworthy!
15:27 [Coke] woot.
15:31 jnthn We already have a ticket on ... saying it probably wants to use leave, not return, so we don't run into issues like the above, fwiw.
15:31 [Coke] *single tear*
15:33 jnthn That error still sucks though, and
15:33 jnthn rakudo: return
15:33 p6eval rakudo e16cf4: OUTPUT«No exception handler and no message␤current instr.: '&return' pc 17409 (src/builtins/Junction.pir:416)␤»
15:33 jnthn Needs fixing for that reason. :-)
15:35 * [Coke] sees that theDamian is giving a rakudo class at yapc::na this year.
15:35 gurjeet joined #perl6
15:35 masak rakudo: return
15:35 p6eval rakudo e16cf4: OUTPUT«No exception handler and no message␤current instr.: '&return' pc 17409 (src/builtins/Junction.pir:416)␤»
15:35 masak ah, jnthn already did that :)
15:35 diakopter pmurias: it does.. to asmbly_1.exe
15:36 jnthn masak: Well, if you must return to the issue... :-P
15:36 masak :P
15:36 diakopter pmurias: it's in CIL
15:37 diakopter pmurias: into what language would you have it disassembled?
15:37 masak [Coke]: ah, and that bug is already reported: http://rt.perl.org/rt3/Tic​ket/Display.html?id=57268
15:37 diakopter pmurias: it's in CIL bytecode I should say.
15:38 * masak reopens that ticket instead of submitting a new one
15:38 diakopter pmurias: it could be disassembled to human-readable CIL with `monodis asmbly_1.exe`
15:38 diakopter that may help
15:39 diakopter pmurias: but otherwise, you'd need something like Reflector, on Windows
15:39 diakopter though I think a very old version of Reflector ran on mono/linux...
15:42 pmurias usr/local/bin/monodis: error while loading shared libraries: libmono.so.0: cannot open shared object file: No such file or directory
15:43 moritz_ looks like it's not properl installed
15:43 diakopter pmurias: you just have to run libtool
15:43 diakopter or whatever it's calls
15:43 diakopter called
15:44 sorear ldconfig ITYM
15:44 diakopter yeah that :)
15:44 sorear libtool is something entirely different
15:44 dalek rakudo: fe59fa8 | moritz++ | src/Perl6/Grammar.pm:
15:44 dalek rakudo: enable rx{...} quoting form. At some point we need a more general solution for these quoting mechanismsn...
15:44 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​e59fa87f315385469375c3bfa76db8ff916beea
15:44 sorear also, add /usr/local/lib to your /etc/ld.so.conf
15:44 diakopter pmurias: sorry :D  what sorear said
15:45 sorear note: these two steps must be done in a specific order.  Namely, the opposite of the one I listed them in.
15:45 wasy_ joined #perl6
15:45 wasy_ left #perl6
15:45 diakopter usually /usr/local/lib is already added in debian/ubuntu, I think.
15:46 pmurias ldconfig worked
15:46 pmurias but monodis segfaults
15:46 diakopter heh; hm
15:46 nihiliad joined #perl6
15:47 moritz_ disassembling is an evil hacker technique and forbidden in your country!
15:47 moritz_ or so :-)
15:47 sorear diakopter: maybe it is now, I've been running this debian install for about seven years
15:48 diakopter pmurias: does it output anything before it segfaults?
15:49 pmurias yes
15:49 pmurias but CIL won't be helpfull
15:49 diakopter oh :P
15:50 diakopter disassembling to C# is very nontrivial, hence the lack of availability of tools
15:50 diakopter open-source tools, I mean
15:51 diakopter http://blog.coryfoy.com/2006/09/​yes-reflector-does-work-on-mono/
15:52 diakopter a very old version ran in linux
15:58 diakopter pmurias: I'd guess you'd have to somehow find one of those old versions of reflector to run it on linux
15:58 diakopter b/c I doubt it runs on it anymore.
15:58 diakopter I haven't tried it lately though.
16:02 chitragupt joined #perl6
16:04 nihiliad joined #perl6
16:05 bradb joined #perl6
16:06 isBEKaml joined #perl6
16:13 cdarroch joined #perl6
16:13 cdarroch joined #perl6
16:15 am0c joined #perl6
16:17 ashizawa joined #perl6
16:17 isBEKaml hi #perl6!
16:18 masak hi isBEKaml!
16:18 isBEKaml I feel like looking at a module today... what's already in? :)
16:19 masak isBEKaml: you mean writing one?
16:19 sorear try src/core/*.pm
16:19 isBEKaml masak: no, reading one! ;)
16:19 masak oh! well, what sorear said.
16:20 masak isBEKaml: I can recommend Druid, too. it's a documented, OO board game in Perl 6. http://github.com/masak/druid
16:20 sorear src/core/*.pm isn't exactly modules, but it's the largest body of reusable Perl 6 code we have
16:20 masak sorear: largest? on what do you base that?
16:20 masak the spectest suite is pretty large.
16:20 masak November and GGE are large projects.
16:21 [particle]1 STD.pm is pretty large
16:21 [particle]1 ...and that's just one module...
16:21 diakopter _reusable_, sorear said
16:21 masak STD.pm might be the largest reusable piece of Perl 6 right now.
16:21 sorear masak: A weighted function of size and reusability
16:21 isBEKaml YOU_ARE_HERE.pm; a single line module, yay! :D
16:21 sorear STD.pm is huge but it's only good for one thing
16:21 * diakopter agrees
16:22 masak hm. I need to think about the difference there.
16:22 masak STD.pm5 isn't reusable because it's only good for one thing?
16:22 [particle]1 where on earth are the p6 acme modules??!?!!!?
16:22 masak even though that one thing is parsing Perl 6?
16:22 sorear masak: it is reusable.  just, less so than stuff like Hash.pm
16:22 jnthn isBEKaml: That's just there to make people think, "wtf?" ;-)
16:23 colomon pir folk: any way to do the equivalent of .?call in pir?
16:23 jnthn Ew!
16:23 jnthn Yes
16:23 jnthn But I'll have to look it up
16:23 colomon maybe there's a better way?
16:23 sorear colomon: src/glue/dispatch.pir
16:23 jnthn See src/glue/dispatch.pir for the thingy to call.
16:23 sorear !dispatch_.?
16:23 jnthn It's got .* in its name.
16:23 jnthn oh, .?
16:24 ash_ joined #perl6
16:24 jnthn What sorear++ said.
16:24 sorear .? actually does two things
16:24 colomon I've patched assign_metaop to take the value of the op called with no parameters.
16:24 sorear it guards against the method not existing
16:24 sorear and it guards against MMD failing
16:24 isBEKaml jnthn: :). Anyway, I was thinking of PIR code generated when building Rakudo after checking out Parrot... Was that all auto generated?
16:24 sorear if you only want to do one of these things, you can get away with less code
16:24 isBEKaml jnthn: I tried reading them, looked close to heavy metal bytecode..
16:24 colomon which works great unless there is no version that takes no parameters.
16:25 sorear isBEKaml: Everything in src/gen is autogenerated compiler output.
16:25 jnthn Yup
16:25 diakopter \_o_/
16:25 sorear There's a fair amount of handwritten (i.e. commented and with sane register names) pir, in src/builtins, src/cheats, and src/glue
16:25 jnthn Pretty much the only hand-written PIR lives in src/builtins/ and src/glue/ iirc.
16:25 sorear oh and src/metamodel
16:26 isBEKaml eww, does anybody ever handcode PIRs?
16:26 sorear Yes
16:26 sorear Look inside your libc sometime, you'll see plenty of assembly there too
16:26 sorear same reason, really
16:27 sorear implementing the entire Perl 6 standard library in Perl 6 has bootstrap issues
16:27 colomon errr, ick.  actually I need the sub equivalent of that, if there is such a thing, now that I think about it.
16:27 sorear $P0 = get_hll_global "&my_sub"
16:27 isBEKaml I thought handcoding assembly was so long ago, unless you really need to get close to hardware.. That isn't the case with perl6, right?
16:27 sorear if null $P0 goto not_found
16:27 sorear $P0()
16:28 colomon sorear: in this case &my_sub should exist, just with a different signature than I need to use.
16:28 sorear isBEKaml: Libraries can't just float in mid-air, they need to be anchored to the bare metal *somewhere*
16:28 ash_ isBEKaml: anytime you port say the GCC to new hardware there will always be handcoded assembly, in embedded systems its happens all the time
16:28 masak swimming &
16:29 jnthn isBEKaml: Calling it assembly and thinking the same was as hardware-level assembly is making it out a bit worse than it is though.
16:29 isBEKaml ash_: I can understand embedded systems, yes...
16:29 jnthn isBEKaml: All your objects are garbage collected, don't need to manage calling conventions by hand, etc.
16:29 ash_ pir has a lot of nice things, its a bit above assembly
16:30 isBEKaml jnthn: I didn't mean that way..  I didn't even call them assembly, I said they looked like auto generated bytecode, akin to java bytecodes..
16:30 [particle]1 isBEKaml: how would you implement infix:<+> in pure perl 6?
16:30 isBEKaml jnthn: sorry if I came out wrong..
16:31 sorear isBEKaml: Yes, they're evil.  We know.
16:31 sorear Are you complaining?
16:31 sorear There's no alternative.
16:31 ash_ [particle]1: I would use a NCI system to call libc to add them together, :P
16:32 isBEKaml sorear: No, not complaining. Just curious why people would still hand-code those bytecodes...
16:32 sorear ash_: How would you implement the NCI in perl 6?
16:32 [particle]1 my platform doesn't have libc :P
16:32 sorear isBEKaml: see [particle]1's responce before last.
16:32 ash_ sorear: thats a different question all together
16:33 jnthn isBEKaml: The hand-written stuff looks rather nicer than the generated stuff. :-)
16:33 jnthn isBEKaml: The overall direction is to write *less* in PIR rather than more, though, that's for sure.
16:33 [particle]1 the generator isn't as smart as the humans yet
16:33 isBEKaml sorear: I'd have thought C, but not assembly.. :)
16:33 colomon isBEKaml: which is why I flounder when I have to break down and write PIR.
16:34 sahadev http://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=60672 says: "According to S29, there should be an sprintf directive %C, ...". I looked at S29 (http://perlcabal.org/syn/S29.html), which points to S32-setting-library/IO.pod for printf. But the latter (http://svn.pugscode.org/pugs/docs/Pe​rl6/Spec/S32-setting-library/IO.pod) also doesn't contain any reference to sprintf.
16:34 sahadev what exactly does %C directive do?
16:34 ash_ i'd probably bootstrap a subset of perl6 that can self compile, a subset that can be directly translated to native code, then go on from there
16:34 TimToady sahadev: beats me..complex?
16:34 moritz_ sahadev: it's actually in S32-setting-library/Str.pod
16:35 sorear isBEKaml: Well... we do that.  Everything in src/Perl6/ is written in our "C"
16:35 moritz_ The special format directive, C<%C> invokes the target argument as
16:35 moritz_ code, passing it the result string that has been generated thus
16:35 moritz_ far and the argument array.
16:35 sorear As well as the .pm modules in builtins/ and cheats/
16:35 sahadev moritz_: thanks. found it.
16:35 TimToady moritz_: I don't like @[] because I don't like noun markers attaching themselves to verbs.
16:35 isBEKaml colomon: gee, looks like I'll be learning the way around things here too... :D
16:35 TimToady how *do* we format a complex?
16:36 colomon rakudo: say -1 + 3i
16:36 p6eval rakudo fe59fa: OUTPUT«-1 + 3i␤»
16:36 moritz_ is there any free format string? :-)
16:36 TimToady rakudo: say -1+3i
16:36 p6eval rakudo fe59fa: OUTPUT«-1 + 3i␤»
16:37 TimToady what if I don't want to output the spaces?
16:37 colomon rakudo: my $a = -1 + 3i; $a.comb(/\S+/).join.say
16:37 p6eval rakudo fe59fa: OUTPUT«-1+3i␤»
16:37 moritz_ colomon++ :-)
16:37 colomon ;)
16:37 TimToady rakudo: my $a = -1 + 3i; $a.words.join.say
16:38 p6eval rakudo fe59fa: OUTPUT«-1+3i␤»
16:38 moritz_ or you sprintf $c.re and $c.im
16:38 TimToady :P
16:38 sorear What's the canonical Perl6 way to lift a smartmatcher?
16:39 jnthn rakudo: my $a = -1 + 3i; say "$a.re()+$a.im()i";
16:39 p6eval rakudo fe59fa: OUTPUT«-1+3i␤»
16:39 sorear I want to find everything for which { $^a.Str ~~ m/.../ }
16:39 isBEKaml What's a GatherIterator() ?
16:39 ash_ rakudo: my $a = -1 + 3i; say $a.perl;
16:39 p6eval rakudo fe59fa: OUTPUT«Complex.new(-1, 3)␤»
16:39 sorear Rakudoese for a lazy list ATM
16:39 sorear (subject to change)
16:39 isBEKaml rakudo: my $str="helpoworld".split(/o/,:all); say $str; say $str.WHAT;
16:39 p6eval rakudo fe59fa: OUTPUT«help o w o rld␤GatherIterator()␤»
16:40 sorear a GatherIterator looks kinda like an array but can be infinite and is not calculated all at once
16:40 moritz_ and should be called List or Seq or Array or so
16:40 TimToady "everything" seems underspecified
16:40 sorear tokens are only split from that string when you need them
16:41 sorear TimToady: everything is a list of methods.
16:41 sorear currently .grep({ $^a.Str ~~ m/.../ })  but that feels wrong
16:41 isBEKaml sorear: iterator, hmmm... why can I just display it in one fell swoop then?
16:41 TimToady why does it feel wrong?
16:41 moritz_ isBEKaml: because the consumer (here say) iterates it
16:42 sorear TimToady: the point, mostly
16:42 isBEKaml sorear: if that's an iterator, I should only be able to do something like next() until it exhausts itself, right?
16:42 moritz_ sorear: .grep(/.../)
16:42 moritz_ sorear: it will stringify internally anyway
16:42 moritz_ sorear: and .grep does a smart match against its argument anyway
16:42 molaf joined #perl6
16:43 isBEKaml moritz_: I don't understand the behaviour of "say", maybe I should go look at it again... You're saying it just doesn't do printing stuff, but more than that, like eat a _potentially_ infinite array/seq... :|
16:44 moritz_ isBEKaml: well, how else would it print their contents?
16:44 moritz_ isBEKaml: actually it just calls .Str on its argument
16:45 TimToady each argument, surely
16:45 moritz_ isBEKaml: the the iterator consumes itself to generate the string representation of its argument
16:45 isBEKaml moritz_: so it stringifies whatever is passed to it?
16:45 sorear rakudo: (1, 1, *+* ...).batch(20).say
16:45 moritz_ right
16:45 p6eval rakudo fe59fa: OUTPUT«Confused at line 11, near "(1, 1, *+*"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
16:45 sorear rakudo: (1, 1, *+* ... *).batch(20).say
16:45 p6eval rakudo fe59fa: OUTPUT«112358132134558914423​33776109871597258441816765␤»
16:45 TimToady .Str would insert spaces
16:45 sorear rakudo: (1, 1, *+* ... *).batch(20).Str.say
16:45 p6eval rakudo fe59fa: OUTPUT«1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765␤»
16:45 moritz_ isBEKaml: yes
16:46 TimToady rakudo: (1|2|3).Str.say
16:46 hejki rakudo: (1, 1, *-1+*-2 ... *).batch(10).Str.say
16:46 p6eval rakudo fe59fa: OUTPUT«any(1, 2, 3)␤»
16:46 p6eval rakudo fe59fa: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
16:46 moritz_ Whatever currying not yet fully implemented
16:46 hejki rakudo: (1, 1, (*-1)+(*-2) ... *).batch(10).Str.say
16:46 isBEKaml Actually, I got a slightly different output on my local perl6 interpreter. It didn't display the "o"s at all..
16:46 p6eval rakudo fe59fa: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
16:47 TimToady rakudo: (1|2|3).Str.WHAT.say
16:47 p6eval rakudo fe59fa: OUTPUT«Str()␤»
16:47 TimToady rakudo: (1|2|3).Stringy.WHAT.say
16:47 p6eval rakudo fe59fa: OUTPUT«Method 'Stringy' not found for invocant of class 'Integer'␤current instr.: '!DISPATCH_JUNCTION_METHOD' pc 16732 (src/builtins/Junction.pir:76)␤»
16:47 isBEKaml rakudo: my $str="helpoworld".strip(/o/,:all); say $str; say $str.WHAT;
16:47 p6eval rakudo fe59fa: OUTPUT«Method 'strip' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
16:47 TimToady rakudo: (~(1|2|3))WHAT.say
16:47 p6eval rakudo fe59fa: OUTPUT«Confused at line 11, near "(~(1|2|3))"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
16:47 isBEKaml rakudo: my $str="helpoworld".split(/o/,:all); say $str; say $str.WHAT;
16:47 TimToady rakudo: (~(1|2|3)).WHAT.say
16:47 p6eval rakudo fe59fa: OUTPUT«help o w o rld␤GatherIterator()␤»
16:47 p6eval rakudo fe59fa: OUTPUT«Str()␤»
16:48 isBEKaml gack..
16:48 TimToady rakudo: (1|2|3).WHAT.say
16:48 isBEKaml why are the "o"s there?
16:48 p6eval rakudo fe59fa: OUTPUT«Junction()␤»
16:49 TimToady ~ doesn't seem to autothread correctly yet
16:49 moritz_ rakudo: say "helpoworld".subst(/o/, '', :g)
16:49 p6eval rakudo fe59fa: OUTPUT«helpwrld␤»
16:49 moritz_ isBEKaml: because your build of rakudo is too old
16:49 moritz_ isBEKaml: colomon++ fixed that about a day ago
16:49 jnthn TimToady: It's the Stringy / Str discintion, iirc.
16:49 isBEKaml moritz_: A few days is too old.. :)
16:50 TimToady yes
16:50 sorear Unable to parse blockoid, my favorite error
16:50 moritz_ TimToady: I hope masak is going to correct that as part of his gsoc project
16:50 TimToady rakudo: (+(1|2|3)).WHAT.say
16:50 p6eval rakudo fe59fa: OUTPUT«Junction()␤»
16:50 TimToady looks like Numeric is right tho
16:50 jnthn Yeah
16:50 TimToady rakudo: (1|2|3).Num.WHAT.say
16:51 p6eval rakudo fe59fa: OUTPUT«Junction()␤»
16:51 TimToady well, maybe Num is different from Str that way
16:52 sorear it seems that smartmatching against rx// is doing something extremely wrong
16:52 TimToady but perhaps .Num ought to blow up on a Junction, so we can make sure + is calling Numeric
16:54 jnthn Auto-threading methods on junctions plays interestingly with coercions. :-)
16:54 jnthn SomeType(1|2) => Junction of SomeType instances, not SomeType
16:56 jnthn Thankfully though not a problem for
16:57 jnthn sub foo($x as SomeType) { ... }
16:57 jnthn Which will still auto-thread just fine.
16:57 jnthn (Because a junction is not Any)
16:58 TimToady well, maybe Str is just special in having a multi that takes Junction
16:58 spinclad joined #perl6
16:58 TimToady we have to give the low level stringifier used by say and print a name of some sort
16:58 TimToady and .Str doesn't seem so bad as long as .Stringy provides ~ semantics, which do autothread
16:59 jnthn *nod*
16:59 jnthn I'm not complaining as such, just pointing out the various interesting semantics. :-)
16:59 lisppaste3 sorear pasted "Insane bug w/ rx and for?" at http://paste.lisp.org/display/98544
17:01 sorear does anyone have a clue what's going on there?
17:03 TimToady it's interpreting it as "go there" instead of "got here"?  :)
17:04 jnthn I wish I had a better guess than TimToady...
17:04 jnthn epic wtf.
17:05 kst joined #perl6
17:05 ash_ if you take out the ~~ rx/./ it says got here twice
17:06 sorear yes, I mentioned that in a comment
17:06 * [Coke] ponders how to setup his dev machine so he can have master and parrot-latest installed simultaneously.
17:06 moritz_ sorear: it's $^a brokenness
17:07 moritz_ sorear: if you use -> $a { ... } instead of { $^a; $^a; } it's all good
17:07 sorear Whaaat
17:07 sorear Hoowwww
17:07 sorear Known?
17:07 moritz_ sorear: there are various bug reports wrt $^a in RT - non of them affects control flow, to the best of my knowledge
17:08 * sorear wants a streaming PIR pretty-printer
17:08 * moritz_ want's production ready Perl 6 now!
17:08 moritz_ and a ponie
17:09 * ash_ wants more time to get nq-nqp working
17:09 sorear Production is ready for Perl 6.
17:09 * moritz_ hands ash_ a round tuit
17:10 jnthn oh ouch, is it somehow added that placeholder to the block twice...
17:10 moritz_ seems like
17:10 jnthn rakudo: for 1,2 { say $^a, $^a }
17:10 p6eval rakudo fe59fa: OUTPUT«22␤»
17:10 jnthn arse.
17:10 jnthn Well, that explains it.
17:10 moritz_ rakudo: say ({$^a, $^a}).signature.perl
17:10 p6eval rakudo fe59fa: OUTPUT«:(;; Mu $a, Mu $a)␤»
17:11 jnthn Who implemented this crap...
17:11 [Coke] jnthn: you?
17:11 * jnthn would fix, but his Rakudo build is busted due to patches to try and get it to build on latest Rakudo.
17:11 jnthn [Coke]: :-P
17:12 [particle] s:2nd/Rakudo/Parrot/
17:12 jnthn Er, yes.
17:12 jnthn :-)
17:12 * jnthn svn ups to get latest Parrot
17:12 jnthn with fixes
17:12 sorear Do I file a bug or...
17:12 moritz_ sorear: please do
17:13 sorear Also, the original manifestation had only one reference to $^a
17:13 sorear this double $^a weirdness came about while trying to debug the first bug
17:13 sorear I don't know if these are the same
17:13 * isBEKaml is svn upping Parrot and git pulling Rakudo to the latest build...
17:14 sorear rakudobug@perl ?
17:14 moritz_ @perl.org, yes
17:16 * moritz_ has a working desktop PC again, with enough RAM to build a few copies of rakudo at the same time :-)
17:16 sorear sent
17:16 moritz_ sorear++
17:17 ash_ moritz_: ooo its always fun getting new hardware
17:18 moritz_ ash_: well, I had the RAM and the machine before, but the power supply unit made "plopp" on the last weekend, and smelled like busted condensators
17:18 moritz_ on that occasion I also ordered a new hard disc :-)
17:19 pacificpelican joined #perl6
17:20 [particle] ...unless your hardware refuses to work, like the case of my new cpu's...
17:20 sorear Condensators!
17:20 sorear rakudo: my $name = "moo"; say "_handler_moo" ~~ m/_handler_ moo/;
17:20 p6eval rakudo fe59fa: OUTPUT«_handler_moo␤»
17:20 sorear rakudo: my $name = "moo"; say "_handler_moo" ~~ m/_handler_ $name/;
17:20 p6eval rakudo fe59fa: OUTPUT«␤»
17:20 sorear ?
17:20 sorear Is regex interpolation just not implemented yet?
17:20 jnthn NYI
17:21 jnthn bkeeler++ is working on it.
17:21 slavik moritz_: what's your native language?
17:21 jnthn lolspeak
17:22 jnthn ;-)
17:22 sorear What's the neatest way to say `startsWith` in rakudo?
17:22 sorear let's see... Len*z*... perl6geek.*de*...
17:22 sorear I've got some guesses
17:22 jnthn Must be .DEnmark!
17:22 sorear er, just perlgeek
17:23 moritz_ ~~ /^startsWith/ ?
17:23 slavik moritz_: condenser/capacitor :P
17:23 moritz_ slavik: Perl :-)
17:24 moritz_ slavik: German, actually
17:24 sorear moritz_: NYA.
17:24 sorear NYI.
17:24 moritz_ huh?
17:24 slavik moritz_: I guess condensator is from german?
17:24 moritz_ slavik: yes, actually with s/c/k/
17:24 slavik which would prolly explain the russian word
17:24 sorear rakudo: my $pfx = "_handler_"; say "_handler_moo" ~~ m/^$pfx/; #moritz_
17:24 p6eval rakudo fe59fa: OUTPUT«␤»
17:25 moritz_ oh
17:25 moritz_ substr then
17:28 sorear finally, it works!
17:29 REPLeffect joined #perl6
17:35 M_o_C joined #perl6
17:46 SmokeMachine joined #perl6
17:48 * [Coke] finds mst talking smack in #yapc!
17:56 kst joined #perl6
18:00 [Coke] yay, I now have an installed stable-parrot and regular parrot and finally build rakudo master again.
18:01 * [Coke] wonders if ./perl6 will ever be renamed ./rakudo
18:01 isBEKaml [Coke]: unstable is regular?  :D
18:01 [Coke] er, supported-parrot.
18:02 [Coke] "2.3.0"
18:02 jnthn current instr.: 'perl6;Callable[::T];' pc 13147 (src\builtins\Num.pir:185)
18:02 [Coke] I tend to track parrot-trunk normally; just installed the 2.3.0 tarball separately and modified my rakudo build script.
18:02 jnthn ...I think the erros might not be fixed yet. :-|
18:04 isBEKaml [Coke]: oh, I thought you were tracking trunk when you said regular.. ;)
18:05 * isBEKaml wonders how often he should build when updates yied so many changes all in a span of few days.. :|
18:11 * jnthn gets the stage 1 compiler to build and startup on latest Parrot
18:11 jnthn Too bad it explodes as soon as it then tries to parse anything.
18:11 ash_ joined #perl6
18:25 jnthn OK, Rakudo builds on latest Parrot now, but we has a startup crash.
18:25 jnthn Dinnertime.
18:30 pyrimidine joined #perl6
18:31 [particle] joined #perl6
18:53 dakkar joined #perl6
18:57 diakopter There's More Than One Way To Implement It
19:05 dalek rakudo: c4857ab | (Solomon Foster)++ | src/core/metaops.pm:
19:05 dalek rakudo: Turn on zero-argument versions of infix:<~> and infix:<//>.
19:05 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​4857abdafc69298550c501e0903c731b13df748
19:05 dalek rakudo: 4aeb5a2 | (Solomon Foster)++ | src/builtins/assign.pir:
19:05 dalek rakudo: Have $a op= $b call op() to get a value for $a if $a is not defined.
19:05 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​aeb5a270c258cfb103f9d4742eaa9a26e352402
19:05 dalek rakudo: 9d955f2 | (Solomon Foster)++ | src/core/ (2 files):
19:05 dalek rakudo: Be more specific about types for Complex mixed-type math.  Change Any, Any versions of the basic math functions to coerce to Numeric (instead of called PIR functions which coerce to Num).
19:05 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​d955f2ed5afe60721007ca47cc15280ed18ada7
19:05 pugssvn r30505 | colomon++ | [t/spec] New tests of basic arithmetic mixing Complex and numeric Strs.
19:06 jnthn colomon++ :-D
19:06 colomon Took me quite a while to get all the tests passing again.  :)
19:08 jnthn > say "yes, I work with latest Parrot"
19:08 jnthn yes, I work with latest Parrot
19:08 colomon \o/
19:08 pugssvn r30506 | colomon++ | [t/spec] Turn on two more zero-arg tests which now work.
19:08 colomon left #perl6
19:08 [particle] say "YES, I CAN HAZ SPEEDUPS!!!"
19:08 jnthn [particle]: It feels...erm...slow. :-|
19:08 colomon joined #perl6
19:09 * [particle] blames chromatic
19:09 [particle] he's looking forward to benchmarking it
19:10 jnthn erm.
19:10 jnthn The benchmarks...segfault.
19:10 jnthn (one of 'em, anyway)
19:11 * jnthn runs the spectests to see what the fallout is.
19:11 colomon It's probably segfaulting because it's running so incredibly fast it melts your CPU.
19:12 [particle] i wish... parrot cut out the 'hcf' opcode last year, though :(
19:14 ShaneC joined #perl6
19:15 colomon I think this would be the grfcf opcode...
19:16 ShaneC left #perl6
19:17 jnthn Down to S04 and things are looking fairly OK.
19:18 jnthn We epic fail S05 though.
19:19 * moritz_ hopes it's not his nqp-rx update
19:19 moritz_ well, other parrot based languages haven't complained yet
19:20 jnthn One fail in S10, but probably not too concerning.
19:20 jnthn S12 and S14 are in great shape.
19:21 pyrimidine left #perl6
19:21 jnthn I don't actually have latest changes from @other mind, so some of my test fails may well be to do with that too.
19:23 colomon oh, you have the latest tests but not the latest commits?
19:26 jnthn Right.
19:26 jnthn Which means I probably needn't worry too much over having a couple of fails here and there.
19:26 jnthn At this rate, it looks like the only big issue left is going to be why we fail S05 so much.
19:27 jnthn (We pass the majority of test files, but there's a streak of them that we don't.)
19:27 moritz_ and the rest might be due to regex failures in other files (/me hopes)
19:29 jnthn Oh, I think the S05 ones are probably all for the same underlying reason.
19:29 moritz_ that's good
19:30 jnthn (namely, crash in GrammarHOW.compose, investigating.)
19:30 [Coke] jnthn++
19:33 dual joined #perl6
19:34 lichtkind joined #perl6
19:38 moritz_ rakudo: my $x *= 5; say $x
19:38 p6eval rakudo fe59fa: OUTPUT«Use of uninitalized value in numeric context␤0␤»
19:39 sahadev joined #perl6
19:39 diakopter pugs: my $x *= 5; say $x
19:39 p6eval pugs: OUTPUT«0␤»
19:39 moritz_ that's wrong
19:39 diakopter which?
19:39 moritz_ both
19:39 diakopter heh
19:39 ash_ alpha: my $x *= 5;
19:40 p6eval alpha 30e0ed:  ( no output )
19:40 ash_ alpha: my $x *= 5; say $x;
19:40 p6eval alpha 30e0ed: OUTPUT«5␤»
19:40 diakopter moritz_: what should it be
19:40 moritz_ diakopter: 5
19:40 ash_ o.0
19:40 diakopter why 5
19:40 [Coke] I would expect 0. =-)
19:40 ash_ yeah, why 5?
19:41 jnthn ESRSLYMAGIC
19:41 * [Coke] grabs some popcorn. this is gonna be great!
19:41 moritz_ because  op= treats an undefined value on the LHS specially
19:41 diakopter ESRSLYUNIMPLEMENTABLE
19:41 moritz_ it takes the neutral element for this operation
19:41 diakopter INTHEGENERALCASE
19:41 jnthn diakopter: Just falls out of multi-dispatch. ;)
19:41 [Coke] moritz_: ... my initial reaction is one of revulsion. =-)
19:42 moritz_ and the neutral element is provided by the 0-ary form of the operator, e.g. infix:<*>()
19:42 ash_ thats going to be confusing....
19:42 diakopter jnthn: that's an easy way of saying, the general case isn't handled.
19:42 * moritz_ likes it
19:42 jnthn diakopter: ?
19:42 * jnthn was a bit surprised by it.
19:42 moritz_ it means you can say things like   for @a.kv -> $k, $v { %hash{$k} *= $v }
19:42 diakopter I mean, cases for which there isn't a multi
19:42 diakopter that matches
19:42 moritz_ and DWIM
19:42 ash_ std: my $x *= 4;
19:43 p6eval std 30506: OUTPUT«ok 00:01 110m␤»
19:43 jnthn diakopter: Sure, well, then you just gotta supply a multi that matches. :-)
19:43 jnthn I think it defaults to undef if there isn't one though
19:43 * jnthn didn't check the patch yet
19:43 jnthn BTW, spectests actually aren't horrifyingly slower, it seems.
19:43 moritz_ s/undef/Any/
19:43 jnthn moritz_: er, yes. :-)
19:44 diakopter s/er//, no
19:44 diakopter oh wait; heh; nm.
19:45 moritz_ colomon++ # implementing this insanity
19:45 [Coke] jnthn: weren't we hoping for 10% faster?
19:45 moritz_ [Coke]: that's kinda defied by code generation using many, many concatenations, no?
19:45 moritz_ I remember such a mail on parrot-dev
19:46 [Coke] ah, yes. I am reminded to dig into CodeString to see if there was an easy fix there.
19:46 diakopter rakudo: my $a = 'hi'; $a ~= $a; say $a;
19:46 p6eval rakudo fe59fa: OUTPUT«hihi␤»
19:46 diakopter rakudo: my $a ~= 'hi; say $a;
19:46 p6eval rakudo fe59fa: OUTPUT«Confused at line 11, near "my $a ~= '"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
19:46 diakopter rakudo: my $a ~= 'hi'; say $a;
19:46 jnthn I have a grammars fix.
19:46 p6eval rakudo fe59fa: OUTPUT«Any()hi␤»
19:47 diakopter that one needz an empty string
19:47 [Coke] moritz_: looks like it would be pretty easy to convert CodeString to do it the fast way internally.
19:47 moritz_ diakopter: works here, with newest rakudo
19:47 moritz_ [Coke]: then go for it :-)
19:47 diakopter ? p6eval should be newest
19:47 [Coke] If someone volunteers to benchmark it, I can craft a patch for that this $evening.
19:48 diakopter unless that was committed in the last hour
19:49 moritz_ diakopter: it was
19:49 diakopter oh :)
19:49 jaldhar joined #perl6
19:50 jnthn Going for a spectest run now, and then probably I push the update that gets us running on latest Parrot for wider feedback.
19:51 moritz_ jnthn++
19:52 ash_ nqp: class Foo { has $a }; my $a := Foo.new; $a.a := 3; my $b := $a.a; my $a.a = 4; say($b);
19:52 p6eval nqp: OUTPUT«Redeclaration of symbol $a at line 1, near ".a = 4; sa"␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤»
19:53 ash_ are object variables write-once in nqp?
19:53 moritz_ ash_: has $.a
19:54 moritz_ my $a.a = 4;
19:54 moritz_ ENOSENSE
19:54 ash_ oh, okay
19:54 jnthn $a.a = 4 # works fine
19:54 moritz_ [Coke]: would "compiling rakudo" be a sufficient benchmark?
19:56 ash_ hmmm odd...
19:56 ash_ nqp: class Foo { has $!a }; class Bar { has $a }; class Broke { has $.a };
19:56 p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1664 (src/Regex/Cursor-builtins.pir:179)␤»
19:56 [Coke] moritz_: absolutely. I guess I can do that myself, huh? =-)
19:56 ash_ it does $!a, and $a okay, but $.a gives me a parse error
19:57 jnthn ash_: NQP doesn't implement that.
19:57 moritz_ ash_: ah, then use $!a
19:57 ash_ oh, okay
19:57 jnthn (Intentionally.)
19:57 moritz_ and write an accessor if you want one
19:57 ash_ so in nqp is "has $a" a mistake?
19:58 moritz_ std: has $a
19:58 p6eval std 30506: OUTPUT«ok 00:01 107m␤»
19:58 goksie joined #perl6
19:58 moritz_ ash_: I'm not sure what it is meant to mean... a class attribute maybe?
19:59 ash_ in perl6 the spec says class Foo { has $a } is the same as class Foo { has $.a } (i believe)
19:59 ash_ i was just wondering what it meant in nqp terms
20:00 moritz_ maybe look at the PIR that nqp generates for it
20:00 [Coke] moritz_: oooh. there's a lot of concat going on in CodeString. *glee*
20:03 chitragupt joined #perl6
20:05 moritz_ [Coke]: is .'emit' a method in CodeString?
20:05 kensanata joined #perl6
20:05 moritz_ seems like, yes
20:06 moritz_ and that method looks like a hot path to me
20:07 ash_ interesting
20:07 ash_ $a and $!b both act the same, as private variables
20:08 ash_ in nqp
20:08 [Coke] moritz_: yup. I can definitely clean tht up.
20:08 pyrimidine joined #perl6
20:09 ash_ since they are attributes, they both end up calling " getattribute $P34, self, "$a" " or getattribute $P34, self, "$!b"
20:09 ash_ so functionally, they are equivalent
20:10 colomon actually, op= defaults to failing at the moment if there isn't a 0-arg form of the operator defined.
20:10 colomon patches welcome.  ;)
20:11 ash_ hmm, thats odd, one minor difference between the two, one made a find_lex lookup for "self" the other just used self
20:14 colomon (defaults to failing if $a (of $a op= $b) isn't defined, that is.)
20:14 wolv joined #perl6
20:17 jnthn Hold on tight... :-)
20:17 _buno_ joined #perl6
20:17 * jnthn pushes
20:20 dalek rakudo: cdd3430 | jonathan++ | src/ (6 files):
20:20 dalek rakudo: A bunch of changes required to make us run under latest Parrot, mostly because we relied wrongly on :method's old semantics of putting things into the namespace, and the 4-argument substr op has gone.
20:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​dd343038cbee11eb50b93414dad56c28dc86939
20:20 dalek rakudo: 9d927ac | jonathan++ | build/PARROT_REVISION:
20:20 dalek rakudo: Bump PARROT_REVISION to latest Parrot.
20:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​d927acc873bfe5d2a4f7eb4848849b132cacacb
20:20 dalek rakudo: 6e91b9b | jonathan++ |  (10 files):
20:20 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
20:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​e91b9b6a717421d5d6de1f55dcd187ca4b095f4
20:24 ash_ joined #perl6
20:31 lichtkind there is no slurp in list context?
20:31 lichtkind ah lines is the command
20:32 TimToady rakudo: say infix:<min>()
20:32 p6eval rakudo c4857a: OUTPUT«Inf␤»
20:32 TimToady rakudo: say infix:<max>()
20:32 moritz_ there is no inward flowing context at all
20:32 p6eval rakudo c4857a: OUTPUT«-Inf␤»
20:34 am0c joined #perl6
20:34 spinclad joined #perl6
20:35 [Coke] How often do Codestrings have to return their string value more than once, I wonder.
20:36 moritz_ jnthn: rx.t fails here...
20:36 moritz_ Unrecognized backslash sequence: '\e' at line 1171, near "def\" ~~ /c"
20:36 moritz_ probably because pmichaud has removed that stuff from NQP-rx
20:37 moritz_ need to add that to rakudo
20:37 * moritz_ will take a look tomorrow
20:39 _buno_ joined #perl6
20:43 jnthn moritz_: Here too.
20:43 jnthn moritz_: oh argh...why remove it rather than move it. :-/
20:43 jnthn moritz_++
20:44 adamsj joined #perl6
20:45 colomon moritz_: was just thinking that fixing op= to work fully when op() isn't defined might be a good LHF for your blog project.
20:46 moritz_ colomon: then add it to the pugs repo, misc/helpnow/README
20:46 moritz_ that's where I collect ideas for that project
20:47 moritz_ colomon: I've now closed the masabug wrt op= defaults
20:48 * moritz_ -> bed
20:52 lichtkind good night moritz_
20:52 * lichtkind added term phaser to index
20:53 justatheory joined #perl6
20:54 lichtkind jnthn: hej
20:56 chitragupt joined #perl6
20:56 jnthn lichtkind: hej hej
20:58 pugssvn r30507 | lwall++ | [prior.t] fix parsefail
21:01 [particle] joined #perl6
21:02 Intensity joined #perl6
21:03 pugssvn r30508 | lwall++ | [charset.t] fix parsefail
21:03 ReiniUrban joined #perl6
21:26 k23z__ joined #perl6
21:28 [particle] joined #perl6
21:28 alexn_org joined #perl6
21:31 [particle] joined #perl6
21:34 dalek csmeta: r225 | diakopter++ | trunk/Sprixel/ (4 files):
21:34 dalek csmeta: [perlesque] try to fix mono's not-quite-as-correct-as-.NET's
21:34 dalek csmeta: Type.IsAssignableFrom(Type t) by creating my own edition.
21:34 dalek csmeta: stop catching exceptions in the reified frame trampoline; test for null instead.
21:34 dalek csmeta: review: http://code.google.com/p/c​smeta/source/detail?r=225
21:35 pmurias joined #perl6
21:35 pmurias diakopter: sprixel HEAD is broken
21:37 diakopter fixing
21:37 diakopter :)
21:37 diakopter sry
21:37 diakopter (it worked on .NET but not on mono)
21:38 diakopter pmurias: fixed :D
21:38 dalek csmeta: r226 | diakopter++ | trunk/Sprixel/RunSharp/Conversion.cs:
21:38 dalek csmeta: [perlesque] fix
21:38 dalek csmeta: review: http://code.google.com/p/c​smeta/source/detail?r=226
21:41 diakopter pmurias: and yet still I get this:
21:41 diakopter perlesque: my $a = sub (string $b) { say($b ~ $b); return 1 }; my $c = $a.Bind(frame, 'hi');  $c.Exec();
21:41 p6eval perlesque: OUTPUT«␤Unhandled Exception: System.MissingMemberException: Cannot find property Bind in _IClosure_2␤  at TriAxis.RunSharp.TypeInfo.FindProperty (System.Type t, System.String name, TriAxis.RunSharp.Operand[] indexes, Boolean static) [0x00000] in <filename unknown>:0 ␤  at
21:41 p6eval ..TriAxis.RunSharp…
21:41 diakopter but the same thing works fine in .NET
21:41 diakopter sigh.
21:41 kensanata joined #perl6
21:42 pmurias diakopter: you commit fix the bug here
21:42 pmurias diakopter: see the daily failing test
21:42 diakopter ok
21:43 wolv are the perlesque .cs files generated from something? they don't look exactly something I'd want to code... :)
21:44 dalek csmeta: r227 | pawelmurias++ | trunk/Sprixel/ (2 files):
21:44 dalek csmeta: failing test with P6capture
21:44 dalek csmeta: review: http://code.google.com/p/c​smeta/source/detail?r=227
21:44 pmurias wolv: you mean the grammar ones?
21:44 wolv yes
21:44 diakopter heh
21:44 wolv (the only ones under Perlesque/ I think?)
21:44 diakopter it's code-gen-gen
21:45 diakopter twice-deferred code
21:45 diakopter input language syntax directly transformed to runtime code, via parameterized codegen, where the compiler action routines themselves are also codegen-d
21:46 wolv ah, thanks
21:46 diakopter wolv: you're the first that understood my explanation of that
21:46 diakopter my (first) explanation, I mean.
21:47 wolv I took that CS course ;)
21:47 diakopter wait, what?
21:47 diakopter what cs course
21:47 pmurias somebody in your uni suggested implementing stuff that way?!
21:48 diakopter heh
21:48 wolv mostly I was joking. but I did read up on all kinds of weird stuff during the compiler course...
21:48 * diakopter hasn't taken a cs course
21:48 diakopter <-- (and it shows)
21:49 pmurias what did you study?
21:49 wolv me?
21:49 diakopter nothing, but I got a degree in business (finance/investments)
21:49 diakopter actually, during college I studied theology/hermeneutics
21:49 wolv by doing nothing? :)
21:50 diakopter yeah; the degree isn't worth much.
21:50 bradb left #perl6
21:50 diakopter (or anything, at this point)
21:53 diakopter pmurias: actually it's not parsefailing
21:53 diakopter it runs
21:54 pmurias yes
21:54 diakopter the positionals member is not initialized
21:54 diakopter want me to fix it?
21:55 pmurias ok
21:55 diakopter also I need to move the "Catch" in TopLevel.cs up several lines
21:55 diakopter so it doesn't catch that exception
21:55 pmurias you shouldn't catch all exceptions
21:55 diakopter that's what I said
21:55 pmurias the parse ones should inherit from a parse exception subclass
21:55 diakopter yes, someday.
21:56 diakopter here's the error it throws now:
21:56 diakopter Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocati
21:56 diakopter on. ---> System.NullReferenceException: Object reference not set to an instance of an object. at Sprixel.Runtime.P6capture.add_positional(P6object pos) in C:\Users\mwilson\Documents\s​rc\csmeta\Sprixel\src\Types\
21:56 diakopter P6capture.cs:line 11
21:57 diakopter (fixing and comitting)
21:59 diakopter sigh.
21:59 pmurias ?
21:59 diakopter svn up :P
22:00 pmurias i don't do svn up
22:00 diakopter what do you do
22:00 pmurias i use git svn rebase
22:00 diakopter ok
22:00 diakopter :)
22:00 pmurias as i'm not on speaking terms with the svn CLI client
22:01 diakopter lol.
22:03 dalek csmeta: r228 | diakopter++ | trunk/Sprixel/ (3 files):
22:03 dalek csmeta: [perlesque] program exceptions aren't caught as a "parsefail"
22:03 dalek csmeta: fix P6capture to initialize its positionals member.
22:03 dalek csmeta: review: http://code.google.com/p/c​smeta/source/detail?r=228
22:03 dalek csmeta: r229 | diakopter++ | trunk/Sprixel/Main.cs:
22:03 dalek csmeta: [perlesque] disable debug mode
22:03 dalek csmeta: review: http://code.google.com/p/c​smeta/source/detail?r=229
22:06 [particle] joined #perl6
22:06 sahadev left #perl6
22:13 diakopter wolv: much of that action code can feasibly be extracted out into combinators in only singly-deferred C#
22:13 diakopter so that one could call a routine like  c.DescendNewLexicalScope()
22:14 diakopter instead of the 200-character 4 lines
22:14 wolv heh
22:18 pyrimidine left #perl6
22:29 crythias joined #perl6
22:45 crythias left #perl6
22:57 wknight8111 joined #perl6
22:57 rgrau__ joined #perl6
23:17 cls_bsd joined #perl6
23:33 dalek book: 1106aab | chromatic++ | src/basics.pod:
23:33 dalek book: Edited chapter.  It looks good.
23:33 dalek book: review: http://github.com/perl6/book/commit/11​06aabef909c9dfaec6d740b48d5ea93ca080ee
23:35 crythias1 joined #perl6
23:41 cls_bsd joined #perl6
23:45 jaldhar joined #perl6
23:49 pugssvn r30509 | lwall++ | [STD] allow subscripts on regex variables so $x[0] isn't taken as a character class
23:49 pugssvn r30509 | [STD,Cursor] revamp of character class parsing to be more helpful/correct
23:54 pugssvn r30510 | lwall++ | [S03] remove p5=> description since it's not supported in core
23:54 kst joined #perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs