Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-03-24

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:04 snarkyboojum std: say 3 !* 0
00:04 p6eval std 30187: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't negate * because multiplicative operators are not iffy enough at /tmp/nrmYfkT6kM line 1:␤------> [32msay 3 !*[33m⏏[31m 0[0m␤FAILED 00:01 108m␤»
00:04 snarkyboojum rakudo: say 3 !* 0
00:04 p6eval rakudo db0f85: OUTPUT«1␤»
00:04 snarkyboojum "not iffy enough" heh
00:04 colomon what the heck?
00:05 jnthn colomon: Yeah. :-/
00:05 colomon (in response to the != tests.)
00:05 jnthn colomon: I'm not having much luck figuring it out just yet other than we parse it as meta.
00:05 snarkyboojum what meta ops would you use with ! ?
00:05 colomon !* isn't supposed to work, but it's actually easier to allow it that to disallow it because it's not iffy.
00:06 jnthn colomon: It does emit
00:06 jnthn $P23 = "&infix:<!=>"(3, 3)
00:06 jnthn Which is fine
00:06 jnthn Less fine is
00:06 jnthn find_sub_not_null $P24, "&notresults"
00:06 jnthn find_sub_not_null $P25, "&infix:<==>"
00:06 jnthn $P26 = $P24."assuming"($P25)
00:06 jnthn set_global "&infix:<!=>", $P26
00:06 colomon snarkyboojum: basically comparison plus %
00:06 snarkyboojum oic!
00:06 snarkyboojum so ! is a valid prefix meta op :)
00:06 jnthn Yes
00:06 snarkyboojum infix prefix even
00:06 jnthn Oh
00:07 jnthn But != is !==
00:07 jnthn So that would seem to be an OK thing for it to do...
00:07 colomon jnthn: What's wrong with those four lines of PIR?
00:07 colomon Other than we probably have already defined != elsewhere?
00:07 jnthn colomon: I'm not immeidately sure there is...
00:07 jnthn Yeah, that
00:07 jnthn I mis-read at first.
00:07 jnthn I thought the second line was looking up &infix:<=> rather than ==.
00:07 jnthn So, hmm.
00:08 jnthn colomon: Is != special cased?
00:08 colomon that's actually a special case I added, because originally it was looking up &infix:<=>.
00:08 jnthn In the meta-op gen?
00:08 colomon yes
00:08 jnthn Ah, ok.
00:08 jnthn Fair enough. In that case, we've just down to...
00:08 jnthn rakudo: say 3 != 3; say 3 !=3;
00:08 p6eval rakudo db0f85: OUTPUT«0␤3␤»
00:09 jnthn oh
00:09 jnthn epic wtf.
00:10 xomas joined #perl6
00:10 xomas joined #perl6
00:10 jnthn oooh.
00:10 jnthn We're missing something important from STD.
00:10 jnthn || <?{ $<infixish>.Str eq '=' }>
00:10 jnthn <O(|%chaining)>
00:10 jnthn That.
00:11 jnthn Otherwise we end up with item assignment precedence for !=
00:11 jnthn Not chaning.
00:11 lichtkind check this : http://www.youtube.com/watch?v=iG9CE55wbtY&amp;feature=channel
00:12 jnthn colomon: Trying it.
00:14 synth joined #perl6
00:16 aindilis joined #perl6
00:18 colomon sorry for disappearing there...
00:18 snarkyboojum also, if I remove <?before \s> at line 1306 in Grammar.pm it works :)
00:18 snarkyboojum > say 3 != 3
00:18 snarkyboojum 0
00:18 snarkyboojum > say 3 !=3
00:18 snarkyboojum 0
00:19 snarkyboojum but probably breaks other stuff :)
00:19 jnthn Quite possibly
00:19 jnthn snarkyboojum: STD has it.
00:19 jnthn As well as the thing I'm adding
00:19 jnthn So it seems like both matter.
00:20 snarkyboojum oh ok.. I should cease changing stuff I don't understand :)
00:20 jnthn > say 3 != 3
00:20 jnthn 0
00:20 jnthn > say 3 !=3
00:20 jnthn 0
00:20 colomon snarkyboojum: nah, changing stuff you don't understand is par for the course.  :)
00:20 jnthn snarkyboojum: Well, I had to check STD to be sure...and was all ready to try ripping it out if STD didn't have it. :-)
00:20 nihiliad joined #perl6
00:21 snarkyboojum ah cool ;)
00:21 snarkyboojum why would the != token be different to all the others defined there == <= =:= etc
00:22 snarkyboojum i.e. be space sensitive
00:22 colomon I don't know why the space sensitive issue;
00:22 jnthn snarkyboojum: Because ! is also a prefix infix meta op
00:22 colomon but on some level, != is different because logically speaking it should be !==
00:22 jnthn colomon: Oh hm]
00:23 jnthn colomon: OK, so I've fixed this BUT precedence.t is also wrong.
00:23 jnthn colomon: Here's the test
00:23 snarkyboojum ok, I should read more
00:23 jnthn ?(   (1 & 2 | 3) !=3)
00:23 jnthn colomon: So in theory, this is the same as:
00:23 jnthn ?(   !((1 & 2 | 3) ==3))
00:23 jnthn Since != is just not of ==
00:23 jnthn Apart from...it's not.
00:24 jnthn er
00:24 jnthn Well, it is by Perl 6 spec
00:24 jnthn But since (1 & 2 | 3) ==3 is true
00:24 jnthn The not of that comes out false.
00:24 jnthn Thus the test fejls.
00:24 jnthn So I was right. The test is wrong AND Rakudo had an unrelated bug. :-)
00:25 colomon how does (1 & 2 | 3) == 3 parse?
00:25 jnthn ((1 & 2) | 3) == 3
00:25 jnthn rakudo: say ?(((1 & 2) | 3) == 3)
00:25 p6eval rakudo db0f85: OUTPUT«1␤»
00:25 colomon so shouldn't boh ((1 & 2) | 3 ) == 3
00:25 jnthn rakudo: say ?((1 & 2 | 3) == 3)
00:25 p6eval rakudo db0f85: OUTPUT«1␤»
00:25 colomon and ((1 & 2 | 3) != 3 ?
00:25 colomon *both
00:25 jnthn No
00:25 jnthn Logically you'd think so
00:25 jnthn But remember what != is implemented as
00:26 jnthn Do ==
00:26 jnthn And then not it.
00:26 jnthn So since == is true, and != nots true, we get false.
00:26 jnthn :-/
00:26 colomon It's just that I'm not clear that is the right way to approach the problem.
00:26 ingyfoo joined #perl6
00:26 colomon junctions are still a bit over my head, I fear.
00:26 [hudnix] joined #perl6
00:27 jnthn I think this is why there's a warning somewhere about "avoid using negative tests with junctions because you might get bitten"
00:28 colomon (1 & 2) | 3 is any(all(1, 2), 3), right?
00:28 snarkyboojum rakudo: say (1 & 2 | 3)
00:28 p6eval rakudo db0f85: OUTPUT«any(all(1, 2), 3)␤»
00:28 jnthn colomon: It's in S3
00:28 jnthn Use of negative operators with syntactically recognizable junctions may
00:28 jnthn produce a warning on code that works differently in English than in Perl.
00:28 jnthn Instead of writing
00:28 jnthn if $a != 1 | 2 | 3 {...}
00:28 jnthn you need to write
00:28 colomon snarkyboojum++
00:28 MOAR-f00li5h joined #perl6
00:28 jnthn if not $a == 1 | 2 | 3 {...}
00:29 snarkyboojum rakudo: say !(1 & 2 | 3)
00:29 p6eval rakudo db0f85: OUTPUT«0␤»
00:29 jnthn colomon: Rakudo has it right, it's just that negated ops on junctions will be a tad confusing.
00:29 colomon So the test is officially wrong, then.  \o/
00:29 jnthn Yes
00:29 snarkyboojum say: (!(1 & 2 | 3))
00:29 jnthn We should also add a test for the 3 !=3 bug though
00:29 jnthn I'll do that too.
00:29 colomon Thanks for straightening that one out, I have been feeling guilty about it all week.  :)
00:29 snarkyboojum rakudo: say (!(1 & 2 | 3))
00:29 p6eval rakudo db0f85: OUTPUT«0␤»
00:30 colomon so do you have a clue what's going on with the 3 !=3 thing?
00:30 jnthn #?rakudo skip 'false positive (passes due to absense of infix:<X>'
00:30 jnthn I guess we can unskip this
00:30 jnthn colomon: Yes
00:30 jnthn colomon: I'm spectesting the fix now
00:30 colomon \o/
00:30 jnthn colomon: But to explain the issue...
00:30 jnthn say 3 != 3 # fine, it parsed as infix:<!=> straight off because it was followed by a space
00:31 doublec_ joined #perl6
00:31 jnthn say 3 !=3 # parsed as a meta-op. Problem was, it took the precedence of =, not chaining precedence.
00:31 jnthn So it came out as
00:31 jnthn (say 3) != 3
00:31 colomon Aha!
00:31 snarkyboojum so much cleverness :)
00:32 jnthn So I just copied the STD check for =
00:32 jnthn That sets precedence to chaining if it spots it :-)
00:32 jnthn Yes, I was a bit surprised too.
00:32 colomon so that's what   || <?{ $<infixish>.Str eq '=' }>  was about.  jnthn++
00:32 jnthn Right. :-)
00:33 TimToady you know, we can just make it Work Right if the ! metaop takes Junction args instead of Any args, and delegates the autothreading to the inner ==
00:34 jnthn rakudo: my $r; sub foo($x) { $r = $x }; foo 3 != 3; say $r; foo 3 !=3; say $r;
00:34 p6eval rakudo db0f85: OUTPUT«0␤3␤»
00:34 jnthn TimToady: Hmm. That...could just work. ;-)
00:34 colomon but is it the Right Thing To Do?
00:34 TimToady it's what English does :)
00:35 wormwood_ joined #perl6
00:36 colomon jnthn: can assuming work with a multi?
00:36 jnthn colomon: From what I remember last time I saw the implementation, probably.
00:37 jnthn colomon: Only question is if it exists on Multi
00:37 jnthn rakudo: multi foo() { }; &foo.assuming()
00:37 p6eval rakudo db0f85:  ( no output )
00:37 jnthn rakudo: multi foo($x) { say $x }; my $y = &foo.assuming(42); $y()
00:37 p6eval rakudo db0f85: OUTPUT«42␤»
00:37 jnthn Yes
00:37 jnthn colomon: I figure we're already doing that since e.g. hyper is a multi though.
00:38 * snarkyboojum feels like curry for lunch :)
00:40 yinyin joined #perl6
00:40 wormwood joined #perl6
00:41 jnthn colomon: Pushed Rakudo patch and spectest updates. :-)
00:41 pugssvn r30188 | jnthn++ | [t/spec] Actually, I was right to correct that test earlier. :-) Add some tests for the actual bug we were tripping over. Also turn a skip into a todo now it won't bogusly pass.
00:41 colomon \o/
00:42 jnthn So that gets our test run a bit cleaner. :-)
00:42 jnthn I don't think I'll get to that instance.t intermittent fail tonight.
00:42 jnthn Ah well. Tomorrow.
00:43 dalek rakudo: 6adcf14 | jonathan++ | src/Perl6/Grammar.pm:
00:43 dalek rakudo: Add missing bit from STD that caused us to get a precedence FAIL with say 3 !=3.
00:43 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6adcf1455d48ff84b1fb9f0d63e06d22d7a24c62
00:44 snarkyboojum jnthn++
00:44 snarkyboojum thanks for the learning experience :) (I think I got about 10% of that :))
00:47 jnthn :-)
00:47 solarion joined #perl6
00:48 jnthn rakudo: my $c = &infix:<cmp>; say &$c(5, 42);
00:48 p6eval rakudo db0f85: OUTPUT«␤»
00:48 justatheory joined #perl6
00:48 jnthn rakudo: my $c = &infix:<cmp>; say $c(5, 42);
00:48 p6eval rakudo db0f85: OUTPUT«-1␤»
00:50 jnthn rakudo: <>
00:50 p6eval rakudo db0f85: OUTPUT«Unsupported use of <>; in Perl 6 please use lines() or () at line 11, near "<>"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
00:50 jnthn rakudo: <STDIN>
00:50 p6eval rakudo db0f85: OUTPUT«Unsupported use of <STDIN>; in Perl 6 please use $*IN.lines at line 11, near "<STDIN>"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
00:52 snarkyboojum std: 3 !* 4
00:52 p6eval std 30187: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't negate * because multiplicative operators are not iffy enough at /tmp/7UX76UQdGx line 1:␤------> [32m3 !*[33m⏏[31m 4[0m␤FAILED 00:01 107m␤»
00:52 snarkyboojum rakudo: 3 !* 4
00:52 p6eval rakudo db0f85:  ( no output )
00:52 jnthn Adding iffy and diffy shouldn't be too hard, if anyone's up for it. :-)
00:54 jnthn rakudo: loop { say "OH HAI"; last } while 1
00:54 p6eval rakudo db0f85: OUTPUT«Missing block at line 11, near ""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
00:54 colomon jnthn: how straight a port from STD are iffy and diffy
00:55 colomon ?
00:55 jnthn colomon: My guess is fairly straight.
00:55 jnthn Add the :iffy<1> and :diffy<1> and so on
00:55 jnthn And then the checks should look fairly similar too.
00:56 jnthn If anyone wants to try it, I'm happy to help out if they get stuck.
01:00 jnthn rakudo: (map { say "$^a - $^b"}, 1..10 Z 1..10).eager
01:00 p6eval rakudo db0f85: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤current instr.: 'map' pc 280430 (src/gen/core.pir:9085)␤»
01:01 colomon rakudo: (map -> $a, $b { say "$a - $b"}, 1..10 Z 1..10).eager
01:01 p6eval rakudo db0f85: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤current instr.: 'map' pc 280430 (src/gen/core.pir:9085)␤»
01:02 colomon rakudo: (map -> $a { say $a.WHAT}, 1..10 Z 1..10).eager
01:02 p6eval rakudo db0f85: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤current instr.: 'map' pc 280430 (src/gen/core.pir:9085)␤»
01:02 colomon :\
01:03 jnthn rakudo: (map -> $a { say $a.WHAT}, (1..10 Z 1..10)).eager
01:03 p6eval rakudo db0f85: OUTPUT«Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤»
01:04 jnthn ah
01:04 colomon ah>/
01:04 colomon ?>
01:04 colomon ?
01:05 jnthn The parens fix it
01:06 jnthn "fix"
01:06 jnthn Oddness. :-)
01:06 colomon Ah, I thought you understood why the parens fix it.  :)
01:06 jnthn rakudo: class Foo { }; my $x = "Foo"; my $y = $x.new; $y.WHAT.say;
01:06 p6eval rakudo db0f85: OUTPUT«Foo()␤»
01:06 jnthn gah
01:06 jnthn And srsly wtf. :-/
01:06 colomon what does map take as an argument, I wonder?
01:07 jnthn colomon: I'm not sure. There's an RT that had that example.
01:07 colomon our proto sub map(&mapper, @values)
01:07 colomon say (1..10 Z 1..10).WHAT
01:07 colomon rakudo: say (1..10 Z 1..10).WHAT
01:07 p6eval rakudo db0f85: OUTPUT«GatherIterator()␤»
01:08 colomon could it be map is getting a single GatherIterator rather than a list?
01:08 jnthn That is quite possible.
01:09 colomon rakudo: (1..10 Z 1..10).map(->$a, $b { say "$a - $b"; }).eager
01:09 * jnthn is too tired to think now
01:09 p6eval rakudo db0f85: OUTPUT«1 - 1␤2 - 2␤3 - 3␤4 - 4␤5 - 5␤6 - 6␤7 - 7␤8 - 8␤9 - 9␤10 - 10␤»
01:09 jnthn Just mucking out RT a bit. :-)
01:10 colomon rakudo: map -> { say $a.WHAT }, 1..10 Z 1..10;
01:10 p6eval rakudo db0f85: OUTPUT«Symbol '$a' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
01:10 colomon rakudo: map -> $a { say $a.WHAT }, 1..10 Z 1..10;
01:10 p6eval rakudo db0f85: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤current instr.: 'map' pc 280430 (src/gen/core.pir:9085)␤»
01:10 TimToady the closure is just an argument, and Z is looser
01:11 TimToady Z is tigher than say, but looser than ,
01:11 TimToady *tighter
01:11 TimToady so you've got say ({}, 1..10) Z 1..10
01:11 colomon TimToady++
01:14 jnthn If somebody more concious than me fancies commenting on the ticket, it's at http://rt.perl.org/rt3/Ticket/Display.html?id=64568
01:18 jnthn OK, I think I've done my RT duty now. :-)
01:18 colomon :)
01:18 jnthn Closed several, assigned quite a few to moritz++ as "works, needs tests" :-)
01:19 jnthn We're down to 631 tickets now, which is still loads, but almost 100 less than the peak we hit during the Copenhagen hackathon!
01:21 jnthn I've probably mail-bombed moritz_ enough now. :-)
01:35 dalek rakudo: d0bf6e3 | jonathan++ |  (3 files):
01:35 dalek rakudo: Add back IO::Socket and IO::Socket::INET with the small tweak needed for ng, as pointed out by ash++.
01:35 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d0bf6e3077f2c3882b1a52c180bb20325c12086b
01:35 colomon woah, I thought you were going to bed.  ;)
01:36 jnthn oh yeah...ops.
01:36 jnthn *oops
01:36 jnthn :-)
01:37 jnthn That was my last patch for the night. :-)
01:37 sorear jnthn++
01:38 sorear however we still need TimToady to actually design I/O
01:40 jnthn ;-)
01:40 jnthn OK, sleep now!
01:40 jnthn o/
01:40 colomon \o
01:52 payload joined #perl6
01:56 payload1 joined #perl6
01:57 f00li5h joined #perl6
01:58 f00li5h joined #perl6
02:03 envi^home joined #perl6
02:04 lue hello! (hello...ello....lo)
02:11 zostay joined #perl6
02:14 gfx joined #perl6
02:23 lue hello?
02:23 pausenclown whats up?
02:24 sorear hello
02:25 sorear lue: is subethaedit anything like termcast?
02:27 lue I don't know
02:27 * sorear points lue at telnet://termcast.org
02:29 lue looks interesting. (I never used subethaedit, never will use it, that's why I said I don't know)
02:32 sorear interesting?  ITYM awesome
02:33 lue (of course, I have not used it yet :) )
02:34 sorear then how do you know anything about it? :)
02:35 lue the webpage :)
02:36 sorear ;)
02:36 sorear use telnet.
02:37 lue I has not telnet :(
02:39 sorear . . .
02:39 sorear .  .  .
02:39 sorear .   .   .
02:40 Psyche^ joined #perl6
02:41 lue (installing it now, btw)
02:52 am0c joined #perl6
02:56 Sarten-X joined #perl6
03:03 Psyche^ joined #perl6
03:05 lue at perl6.org/community/ : "We are a bunch of ... try real hard to be nice to each others. "
03:08 lue afk
03:10 Chillance joined #perl6
03:14 cognominal joined #perl6
03:20 pausenclown rakudo: grammar G { <[ \x[42] ]> };
03:20 p6eval rakudo db0f85:  ( no output )
03:20 pausenclown rakudo: grammar G { <[ \x[42] ]> }; say G.parse( \x[42] );
03:20 p6eval rakudo db0f85: OUTPUT«Could not find non-existent sub &x␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
03:21 pausenclown rakudo: grammar G { <[ \x[20] ]> }; say G.parse( ' ' );
03:21 p6eval rakudo db0f85: OUTPUT«Method 'TOP' not found for invocant of class ''␤current instr.: 'perl6;Regex;Cursor;parse' pc 282 (ext/nqp-rx/src/stage0/Regex-s0.pir:181)␤»
03:21 * lue checks the spec
03:21 pausenclown rakudo: grammar G { token TOP { <[ \x[20] ]> } }; say G.parse( ' ' );
03:21 p6eval rakudo db0f85: OUTPUT«regex assertion not terminated by angle bracket at line 11, near "]> } }; sa"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
03:21 pausenclown bah. still broken
03:22 pausenclown alpha: grammar G { token TOP { <[ \x[20] ]> } }; say G.parse( ' ' );
03:22 p6eval alpha 30e0ed:  ( no output )
03:22 pausenclown pugs: grammar G { token TOP { <[ \x[20] ]> } }; say G.parse( ' ' );
03:22 p6eval pugs: OUTPUT«*** No such method in class G: "&parse"␤    at /tmp/ooaWjJHIkF line 1, column 47-61␤»
03:25 TimToady lue: you can fix the 'each others' since you have a pugs commit bit; it's in docs/feather/perl6.org/source/community/index.html
03:26 lue each others? I'm afraid I don't follow :(
03:27 TimToady your 'plaint regarding perl6.org/community
03:28 TimToady or were you complaining about that?
03:30 lue oh, that :) I can go do that
03:36 lue methinks you parse your webpages with perl, after seeing lines like [% include camelia %]
03:39 pugssvn r30189 | lue++ | [perl6.org] fixed typo 'each others' to 'each other'
03:39 lue Heh, I guess when it comes to Perl6, if it's not Rakudo, it's in the Pugs repository :D
03:40 jhuni joined #perl6
03:51 xinming '10
03:52 lue hello
03:57 ash_ joined #perl6
04:09 Psyche^ joined #perl6
04:20 meppel joined #perl6
04:21 hanekomu joined #perl6
04:37 rv2733 joined #perl6
04:38 spinclad rakudo: multi foo ($x) {say "$x: 1 potato!"}; multi foo ($x, $y) {say "$x: 2 $y potatoes!"}; my $y = &foo.assuming(42); $y(); $y("hot")
04:38 p6eval rakudo db0f85: OUTPUT«42: 1 potato!␤42: 2 hot potatoes!␤»
04:38 spinclad \o/
04:42 petdance joined #perl6
04:42 am0c joined #perl6
04:46 lue eh... how do you take input in perl6?
04:47 TimToady rakudo: say $*IN.lines
04:47 p6eval rakudo db0f85: OUTPUT«Land der Berge, Land am Strome,Land der Äcker, Land der Dome,Land der Hämmer, zukunftsreich!Heimat bist du großer Söhne,Volk, begnadet für das Schöne,vielgerühmtes Österreich,vielgerühmtes Österreich!Heiß umfehdet, wild umstrittenliegst dem Erdteil du inmitten,einem starken
04:47 p6eval ..Herzen …
04:49 lue um...
04:50 lue huray for german[?]
04:50 am0c joined #perl6
04:51 ingy joined #perl6
04:52 justatheory joined #perl6
04:52 lue rakudo: say $*IN.lines
04:52 p6eval rakudo db0f85: OUTPUT«Land der Berge, Land am Strome,Land der Äcker, Land der Dome,Land der Hämmer, zukunftsreich!Heimat bist du großer Söhne,Volk, begnadet für das Schöne,vielgerühmtes Österreich,vielgerühmtes Österreich!Heiß umfehdet, wild umstrittenliegst dem Erdteil du inmitten,einem starken
04:52 p6eval ..Herzen …
04:53 Psyche^ joined #perl6
04:53 am0c joined #perl6
04:55 rekhajos joined #perl6
04:59 am0c joined #perl6
05:06 cotto joined #perl6
05:09 lue .u FDD0
05:09 phenny U+FDD0 (No name found)
05:09 lue rakudo: say "\xFDD0"
05:09 p6eval rakudo db0f85: OUTPUT«Malformed string␤current instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 972 (compilers/pct/src/PCT/HLLCompiler.pir:538)␤»
05:09 lue rakudo: say "\xFFFD"
05:09 p6eval rakudo db0f85: OUTPUT«�␤»
05:10 lue apparently it doesn't support the whole of unicode...
05:11 lue rakudo: say "\xFFFE"
05:11 p6eval rakudo db0f85: OUTPUT«Malformed string␤current instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 972 (compilers/pct/src/PCT/HLLCompiler.pir:538)␤»
05:11 * lue submits rakudobug
05:14 lue rakudo: say "\xFDDD"
05:14 p6eval rakudo db0f85: OUTPUT«Malformed string␤current instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 972 (compilers/pct/src/PCT/HLLCompiler.pir:538)␤»
05:17 snarkyboojum std: 4 !* 4
05:17 p6eval std 30189: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't negate * because multiplicative operators are not iffy enough at /tmp/adxmxnSO5d line 1:␤------> [32m4 !*[33m⏏[31m 4[0m␤FAILED 00:01 107m␤»
05:17 snarkyboojum rakudo: 4 !* 4
05:17 p6eval rakudo db0f85:  ( no output )
05:18 pausenclown XML::Parser, Grammar 98% complete. 50 tests. ( http://pastebin.com/3fsnf5kq )
05:23 lue good night
05:32 frew joined #perl6
05:47 agentzh joined #perl6
05:55 LionMadeOfLions joined #perl6
06:04 dduncan joined #perl6
06:11 snarkyboojum joined #perl6
06:16 am0c joined #perl6
06:20 quester joined #perl6
06:33 spinclad phenny: tell moritz_ could we start logging #rakudosketch, starting with the last week of backlogs (i or several others have them) and then inviting ilbot2 to #rs?
06:33 phenny spinclad: I'll pass that on when moritz_ is around.
06:41 quester joined #perl6
06:41 sorear jnthn: ping
06:44 spinclad phenny: tell moritz_ oops, i find my backlog is incomplete.  i recall at least one, complete i believe, backlog was mailed or pasted for pmichaud's benefit within the following day.
06:44 phenny spinclad: I'll pass that on when moritz_ is around.
06:52 kaare joined #perl6
07:13 moritz_ spinclad: if you give me some logs, I can do my best to import them
07:13 phenny moritz_: 06:33Z <spinclad> tell moritz_ could we start logging #rakudosketch, starting with the last week of backlogs (i or several others have them) and then inviting ilbot2 to #rs?
07:13 phenny moritz_: 06:44Z <spinclad> tell moritz_ oops, i find my backlog is incomplete.  i recall at least one, complete i believe, backlog was mailed or pasted for pmichaud's benefit within the following day.
07:18 Su-Shee joined #perl6
07:19 moritz_ jnthn: re commit 0188099965dd61e72ab5633523fcb7a8113a94f4, for a small second I have wondered if it could be that easy... and immediately discarded the idea :-)
07:20 uniejo joined #perl6
07:35 sorear rakudo: wantarray
07:35 p6eval rakudo db0f85: OUTPUT«Could not find non-existent sub &wantarray␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
07:36 mberends joined #perl6
07:37 dduncan left #perl6
07:41 moritz_ there's no such thing in Perl 6
07:41 sorear When interoperating with Perl5, what's the best way to fake it?
07:41 sorear yeah I just read the synopsis bit
07:42 moritz_ because context propagates inwards iin Perl 5, and outwards in Perl 6
07:42 moritz_ just call everything in list context
07:42 sorear context propagates outward in p6? explain
07:43 mberends grumble, grumble. the Rakudo build step src/gen/core.pm > src/gen/core.pir takes unacceptable amounts of memory and time. I'm experimenting with build/Makefile.in and Configure.pl to compile each core module to .pir separately.
07:45 quester mberends++  Thank you!  Let us know how it works out.  Please.  I think everyone would be more productive if small incremental patches triggered small incremental builds.
07:49 mberends sure
07:49 jjore joined #perl6
07:51 mberends my main worry is tweaking the build process and finding that it works on Linux but then fails in some other environment
07:53 quester joined #perl6
08:11 pugssvn r30190 | lwall++ | [STD, etc.] complete refactor of commit point transactions; no longer uses exceptions to commit
08:11 pugssvn r30190 | instead, walks commit chain to disable transactions that should not produce any more options
08:11 pugssvn r30190 | commit chains are managed by cursors, mostly transparently
08:15 sorear sounds interesting
08:15 mberends TimToady++, that looks like a big refactor
08:19 IllvilJa joined #perl6
08:21 mathw Sounds very interesting
08:42 zen52 joined #perl6
08:43 zen52 Is everybody sleeping?
08:43 mathw I'd like to be
08:43 mathw But it's considered unseemly at quarter to nine in the morning
08:43 zen52 left #perl6
08:45 * sorear pokes jnthn
08:53 mariuz joined #perl6
09:00 zen52 joined #perl6
09:02 zen52 anybody there?
09:02 zen52 alpha:
09:03 sorear Hi, I'm here
09:03 sorear Where did you go?
09:03 sorear Why did you leave?
09:03 zen52 Didn't leave: just arrived and nobody talking!
09:04 sorear 01:45 <@mathw> But it's considered unseemly at quarter to nine in the morning
09:04 sorear 01:45 -!- zen52 [~553148a0@gateway/web/freenode/x-qfjwwmspomtgfare] has left  #perl6 []
09:04 IllvilJa rakudo seem to start up faster these days (at least compared to a few weeks ago).  Good work!
09:04 Brian_S joined #perl6
09:04 dakkar joined #perl6
09:05 payload joined #perl6
09:05 Brian_S left #perl6
09:06 payload joined #perl6
09:06 zen52 Can someb help me with this channel?
09:07 zen52 sorear appears to be an admin.
09:07 payload1 joined #perl6
09:08 iblechbot joined #perl6
09:09 sorear zen52: No, we can't, because you haven't told us your problem.
09:10 zen52 This chat is only for problems with Perl6?
09:10 IllvilJa Perl6 stuff in general, yes.
09:11 zen52 I'm just checking on its status; I used 5.8.7...
09:12 sorear Perl 6 does not claim to meet any specification, thus, a fortiori, it has no problems
09:12 zen52 convenient.
09:12 sorear this channel is for people who want to make Perl 6 happen
09:13 sorear after the release, there will be problems
09:13 sorear until then, there is only needs-more-work
09:13 sorear I presume you want to help
09:14 zen52 doubt that I have time, but do have leading edge ideas.
09:14 sorear sadly, we have no shortage of idea men
09:15 zen52 I do web devel and data inventing.
09:15 zen52 I'm sure.
09:16 sorear (TimToady alone makes up 90% of our requirements...)
09:22 zen52 sorry, had a call.
09:23 zen52 Perl6 dedicated to timtoad.  I'd thot that atomicity would be enough.
09:23 sorear mm?
09:25 sorear phenny: tell jnthn http://github.com/jnthn/blizkost/commit/5d2d9e7ad911384527bf6de976d2641d426733bc - is there any important historical reason I shouldn't have done this?
09:25 phenny sorear: I'll pass that on when jnthn is around.
09:26 holli joined #perl6
09:28 mathw sorear: I like the comment on that commit :)
09:29 mathw sorear: The argument might be that you should use the most insane calling convention available because Blizkost itself is an utterly insane (but brilliant) idea
09:29 mathw :)
09:29 zen52 Personally I think Java is a dinosaur but doens't know it, so keep a smile on your face.
09:29 sorear Java is a dinosaur by design
09:29 mathw Don't get me started on Java
09:32 quester left #perl6
09:37 zen52 Anybody heard of a lisp interpreter where the code is xml compatible?
09:38 jnthn morning, all
09:38 phenny jnthn: 09:25Z <sorear> tell jnthn http://github.com/jnthn/blizkost/commit/5d2d9e7ad911384527bf6de976d2641d426733bc - is there any important historical reason I shouldn't have done this?
09:38 mathw zen52: No. Isn't Lisp's syntax bad enough already?
09:39 zen52 just like xml...
09:40 jnthn sorear: No, I think what you've done will work too. Neither interface is great, but it probably doesn't matter much either...
09:40 zen52 I think lisp syntax is beautiful.
09:41 snarkyboojum joined #perl6
09:41 jnthn And I can't immediately think of anything better.
09:42 zen52 How many C codign Perl6 these days?
09:44 zen52 coding
09:44 payload joined #perl6
09:47 zen52 Perl is beautiful too...
09:51 mathw Oh dear
09:52 mathw Feather having trouble?
09:52 jnthn Maybe
09:52 jnthn Looks like yes.
09:53 mathw how're you settling in your new city?
09:56 zen52 Hopeully it's just a cable...
09:56 zen52 Hopefully (need another keyb)
09:59 jnthn mathw: It's been an easy place to settle in to, in a sense. Everything is conveniently close to hand. Still going to take a while to really feel like home though.
10:03 Sarten-X joined #perl6
10:05 zen52 sorear: mathw: thanks for the chat. sorry can't help. don't know enough.no time.
10:13 holli hi. i'm having trouble with github. I created a repository for XML::Parser and followed the steps and get
10:13 holli root@holli-laptop:/p6/XML--Parser# git push origin master
10:13 holli Permission denied (publickey).
10:13 holli fatal: The remote end hung up unexpectedly
10:13 holli any clues?
10:14 holli other ssl connections work.
10:16 moritz_ holli: /join #github
10:18 holli will do. btw, the grammar for XML::Parser is now 98% finished. along with 50 tests at http://pastebin.com/3fsnf5kq
10:21 payload joined #perl6
10:22 holli moritz, can u tell when the use bug will be fixed?
10:23 ascent_ holli: try ssh -v git@github.com and look what's going on. Also read help on www.github.com about adding ssh keys and troubles with that. Everything is explained.
10:24 jnthn holli: Which use bug in particular? :-)
10:24 moritz_ holli: one was fixed yesterday
10:25 jnthn Aye, was wondering if it might be the same one. :-)
10:27 payload2 joined #perl6
10:31 Trashlord joined #perl6
10:32 holli i mean the "Can't handle scope declarator  on modules yet" bug
10:32 jnthn Got fixed last night.
10:33 holli cool.
10:35 mberends jnthn: o/
10:35 jnthn mberends: morning o/
10:41 colomon morning!
10:42 jnthn oh hai
10:43 synth joined #perl6
10:43 mathw oh hai people
10:44 colomon probably won't have much time on here today, but I thought I'd pop by for a bit anyway.  :)
10:44 Trashlord hey
10:44 mathw nice to see you colomon as always
10:44 colomon mathw: how goes it?
10:45 holli pokemon, digimon, colomon! =)
10:45 colomon oh noez, pugscode.org is down?
10:45 mathw colomon: Oh, I could complain but then we'd be here all day
10:46 jnthn Seems so :-(
10:49 colomon mathw: You'd be here all day, I'll be off for the boy's 18-month checkup in 70 minutes or so.  :)
10:49 colomon Sorry to hear there are things to complain about, though!  Things here are super-busy and chaotic, but on the whole very good.
10:49 mathw colomon: okay, that's more accurate, except that you'd be so horrified by the things I could moan about that you'd forget all about your other commitments :P
10:49 mathw I do sometimes think of getting another job
10:50 mathw But I'm not convinced they would, in general, be better
10:52 mathw as ordinary jobs go, this one's pretty good really
10:52 mathw lots of my friends have much worse environments
10:54 masak joined #perl6
10:54 masak oh hai, #perl6
10:54 mberends setting some ulimit before building Rakudo gave: failed allocation of 179414408 bytes Parrot VM: PANIC: Out of mem!
10:55 mberends where's lue when you need to PANIC!
10:55 colomon Don't panic!
10:55 mathw Saluton, masak!
10:55 colomon masak: hello!
10:56 masak saluton!
10:56 mberends \o masak
10:56 masak I'm glad you're all here.
10:56 jnthn o/ masak
10:56 masak \o
10:56 jnthn mberends: 179 MB allocation? Whoa!
10:57 * jnthn is slightly alarmed that the VM is asking for a chunk that big...
10:59 * mberends too
11:01 * masak is quite calm about it :P
11:01 masak but it would be interesting to learn what needs so much memory.
11:03 jnthn masak: Do you ever panic? :-)
11:04 * jnthn isn't sure why, but suspects it may be a case of "so far, my memory pools is X sized, and I need more, so I'll allocate growth_factor * x" or something like that.
11:04 masak jnthn: it happens. but admittedly not often. :)
11:05 masak moritz_++ # http://perlgeek.de/blog-en/perl-tips/in-search-of-an-exponetial-regexp.html
11:08 * mberends suspects it is a case of "so far, I have 178MB, I think I need 179MB, so I'll just get a new block a bit bigger and copy everything to it" :/
11:08 mberends nom &
11:08 colomon noooooo....
11:08 masak mberends: makes an appropriate amount of sense.
11:09 jnthn mberends: I...so hope not. :-/
11:09 jnthn But given our overall performance... :-/
11:16 jaldhar joined #perl6
11:24 fda314925 joined #perl6
11:24 dalek joined #perl6
11:24 Juerd joined #perl6
11:27 Juerd Cause of the feather crash is unknown. The physical box crashed.
11:27 Juerd If anyone has any info that could possibly be remotely related, please tell me :)
11:31 envi^home joined #perl6
11:48 Trashlord joined #perl6
11:52 sorear joined #perl6
11:54 mberends .oO( post-nom, I think that alloc request could stem from an inappropriate use of realloc within parrot )
11:56 Trashlord joined #perl6
11:58 jnthn mberends: Heh. I've NEVER seen realloc mis-used i...oh wait.
11:58 jnthn :-)
11:59 masak :)
12:01 * mathw has never used realloc
12:01 * mathw does not have any desire to use realloc
12:01 mberends mathw: you're a good boy then :)
12:01 * mathw thinks realloc sounds quite scary
12:01 mathw I was just reading a thing about failings in C++
12:01 mathw And tutting at it
12:02 mathw So heavily oriented towards desktop app development stuff
12:02 mathw Criticising all the fiddly stuff you can do to make things run ridiculously quickly because you're always limited by user input speed anyway
12:02 mathw hah
12:02 mathw I wish
12:03 mathw although there are better languages for GUI work, of course
12:03 mathw Perl 6, one day :D
12:03 jnthn There's no reason to write most GUI apps in C or C++ these days.
12:03 mathw I suspect Perl 6 is going to be utterly awesome for building GUI apps
12:03 mathw yeah write your algorithmic core in C++ if you need to
12:03 jnthn There's reasons to write stuff in C and C++, of course. :-)
12:03 mathw but you can write your UI in something higher level
12:03 jnthn Yeah
12:03 mathw high-performance server software though...
12:03 jnthn Whole different matter.
12:04 mathw we're getting to the point where the VMs for some languages are fast enough for some of those applications
12:04 mathw and that's awesome
12:04 mathw or where the compilers are efficient enough
12:04 mathw There are some truly astonishing things coming out of the Haskell community
12:04 mberends the Ubuntu developers seem to have written most of their GUI stuff in python
12:04 mathw yeah Python's very popular for that on Linux
12:04 mathw On Windows, C# and VB.NET have become the de facto GUI development languages
12:05 mathw Who was looking at running Perl 6 on .NET?
12:05 jnthn Yes, C# is primarily what I use.
12:05 jnthn For that stuff
12:05 jnthn Not that I do heavy GUI dev
12:06 jnthn But need to now and then (mostly small things)
12:07 jnthn mathw: After Rakudo *, one of my desires is to take Rakudo multi-backend, and given .Net is the platform I'm most familiar with after Parrot, it's the obvious candidate for another backend.
12:07 jnthn Other people have been looking at Perl 6 on .Net too though, including diakopter.
12:08 jnthn Our approaches are probably from quite different angles though.
12:08 mathw yeah
12:08 mathw how would you take Rakudo to another backend
12:08 mathw port NQP?
12:09 jnthn My plan is something like...
12:09 jnthn * Get a first cut meta-model implementation
12:09 jnthn * Use it to define the PAST types
12:10 jnthn * PAST -> IL implementation
12:10 jnthn * Bootstrap nqp-rx on it
12:10 jnthn Beyond that, the real fun starts. :-)
12:11 mathw Sounds fun enough as it is
12:12 mathw Is there anywhere a definition of the metamodel?
12:12 jnthn Rakudo's metamodel.pod is part of it. See also smop - there's some more borrowiings from there that I have in mind.
12:13 mathw cool
12:13 mathw but rakudo * first :)
12:13 jnthn Yes, certainly.
12:13 mathw I really want to get into something though
12:13 mathw Make the time to work on it
12:14 mathw Every time I try to do something in Rakudo I just end up not doing it because I don't know how
12:14 clintongormley joined #perl6
12:14 jnthn Grab someone who does know who and get them to walk you through it. :-)
12:14 jnthn s:2nd/who/how/
12:15 mathw \o/ Perl 6 s///
12:15 mathw also \o/ lunchtime
12:15 jnthn Yeah, I just noticed it's lunchtime...that means I can put off writing a few lines of Java for at least half an hour. :-)
12:17 xomas joined #perl6
12:17 xomas joined #perl6
12:18 takadonet morning all
12:20 holli Perl6.NET definitly sounds charming.
12:20 holli Would make look powershell pretty obsolete =)
12:21 holli s/(look) (powershell)/$2 $1/
12:23 holli (Assuming such an implementation would have access to the .NET library)
12:23 holli would it?
12:23 * moritz_ reminds holli++ that catpure numbering starts at 0 :-)
12:24 holli it will take a while until i start to think in perl6 regexes =)
12:24 solarion joined #perl6
12:25 moritz_ aye
12:25 moritz_ re .NET libs: sure, would make sense to enable access to them
12:26 holli it's been a while (8 yrs or so) since i did .NET stuff, but i remember the library to be veeeeeery powerful.
12:27 holli once you got how to navigate to the equally huge docs.
12:28 * holli rereads
12:28 holli .oO( catpure numbering =D
12:35 jnthn holli: Yes, it'd be sensible to enable use Foo:from<.net> or some such, just as we have use Foo:from<parrot> or use Foo:from<perl5> today.
12:36 lichtkind joined #perl6
12:36 lichtkind mberends: i tell you what table missed.. conditionals :)
12:37 holli i wasnt aware that we have that already =) how is the Perl5 bridge built? does rakudo contain a perl5 binary?
12:37 jnthn masak: My mission to try all types of Bilar godis goes on! Today's find: The "WHAOW!!1!1 sur-sockrade" variant! :-D
12:37 snarkyboojum where std.pm does stuff like "$op<O><fiddly>" or "$<infixish><O><iffy>", what would that look like in rakudo's grammar.pm?
12:37 holli hoi herbert
12:37 masak jnthn: when I went looking for your salty ones, that's the one I found first.
12:38 jnthn masak: Did you find the salties too? :-)
12:38 masak jnthn: I was thinking .oO( jnthn must have mixed up salty and sour )
12:38 masak jnthn: aye, then I found the salties.
12:38 jnthn Three types. How god is that?
12:38 masak very god :)
12:39 holli a foreign cat has jumped into my window and disappeared into my cupboard!
12:39 masak jnthn: but did you try Djungelvrål yet?
12:39 holli shall i close the door?
12:39 masak holli: was it a lolcat?
12:40 masak holli: if it greets you with 'mi ha ho', it's a Japanese cat.
12:40 jnthn .oO( you can tell a cat's nationality just by looking at it? )
12:41 jnthn ooh...the language of it's caption...duh.
12:41 masak holli: or if it does this: http://www.youtube.com/watch?v=z_AbfPXTKms
12:41 jnthn masak: No, I didn't try Djungelvrål
12:41 jnthn Jungle...something? :-)
12:41 masak jnthn: ooh, you'd better! much better than Bilar!
12:41 jnthn They look...interesting.
12:42 masak jnthn: 'Roar of the Jungle'
12:42 masak not thusly named without reason :)
12:44 holli its a smooching cat. sitting next to me on my bed now
12:44 holli .. and left as soon as i directed my attention to the computer :-D
12:46 masak std: 1 R + 2
12:46 p6eval std 30190: OUTPUT«[31m===[0mSORRY![31m===[0m␤Confused at /tmp/ZVD4mLb2Iv line 1:␤------> [32m1 R[33m⏏[31m + 2[0m␤    expecting any of:␤  bracketed infix␤  infix or meta-infix␤FAILED 00:01 108m␤»
12:46 jnthn rakudo: 1 R + 2
12:46 p6eval rakudo db0f85: OUTPUT«Confused at line 11, near "1 R + 2"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
12:46 jnthn Could be awesomeized.
12:46 * masak submits LTA rakudobug
12:46 jnthn (in STD and Rakudo)
12:47 masak would it be possible to create a metaoperator which accepts whitespace between itself and the meta'd operator?
12:47 jnthn In theory.
12:47 jnthn Take a look at how STD parses them, and imagine slotting in a <.ws> after the initial thingy, for example.
12:48 jnthn Not sure if there'd be unwanted fallout though.
12:48 jnthn None comes to mind immediately, apart from the prefix becomes of indeterminate length so the LTM is trickier.
12:49 jnthn Or so my sort-of-understanding of LTM says anyway. :-)
12:50 payload joined #perl6
12:50 [particle] is there a unicode character that looks like a space but isn't classified as one?
12:50 [particle] unicode is so wacky, it just may exist
12:51 masak jnthn: I just had the idea for a possibly-nice testing framework, where you write things like '2 + 2 should == 4'.
12:52 masak [particle]: maybe this? :)
12:52 masak .u 2063
12:52 phenny U+2063 INVISIBLE SEPARATOR (⁣)
12:52 Juerd U+2007 perhaps?
12:52 masak .u 2007
12:52 phenny U+2007 FIGURE SPACE ( )
12:52 [particle] see, ask a silly question, get a unicode answer.
12:52 Juerd Oh, U+2007 =~ /\s/ :(
12:53 payload joined #perl6
12:53 [particle] masak, if i may paint your bikeshed, 'must' is better than 'should'
12:53 masak [particle]: good idea.
12:54 jnthn masak: That could well be possible. :-)
12:54 masak build failure in Rakudo: http://gist.github.com/342253
12:55 jnthn If it's a segfault I'll cry.
12:55 jnthn wtf.
12:56 masak indeed.
12:56 jnthn At least I don't have to cry.
12:57 * jnthn git pulls...but is already up to date
12:57 jnthn hm
12:57 jnthn masak: I realclean'd and re-configured and make'd and...it certainly compiles that file. :-|
12:59 jnthn masak: I have no local diffs on my Parrot or Rakudo
12:59 jnthn At Parrot rev 45127.
13:00 * masak looks
13:00 jnthn (Which is the PARROT_REVISION one.)
13:00 masak Parrot rev 45148 here. it's built and installed.
13:01 masak I'll try with 45127.
13:01 jnthn Maybe worth checking against 45127 locally, and filing Parrot bug if that works.
13:02 masak nodnod
13:03 Alias joined #perl6
13:04 * jnthn glances the timeline out of curiosity
13:04 masak jnthn: yup, downgrading Parrot did the trick.
13:04 masak submitting Parrotbug.
13:06 lichtkind masak++
13:06 * lichtkind did http://wiki.perl-community.de/Wissensbasis/Perl6TafelAnhangB#Bedingte_Ausf_hrung
13:06 jnthn Taking a wild guess, I suspect 45133 (change involving outer) or maybe less likely branch merge in 45138.
13:06 lichtkind see ya guys
13:08 takadonet OMG reddit.com is down!
13:09 jnthn OH NO clearly we're all going to die!
13:09 masak takadonet: a chance to be productive :)
13:10 takadonet masak: somewhat..... Some of my test run take 5 to 15 mins to finish
13:10 masak ah :)
13:10 masak takadonet: write something in Perl 6 in the meantime :)
13:11 takadonet masak: Then I start getting excited about Perl 6 only to find out that a feature that I really want is not done :(
13:12 masak takadonet: that's just a risk you'll have to take :)
13:14 takadonet masak:indeed
13:15 rv2733 joined #perl6
13:21 takadonet masak: Only thing that stop me right now is that grammar are not fully back
13:22 mathw holli: It clearly wasn't my cat then, he'd not leave you alone even if you were paying more attention to the computer.
13:22 mathw And I'd think that it would be very odd to have Perl 6 on .NET without access to the .NET libraries
13:23 mathw As that would surely be one major reason why people would choose to run that version of it
13:25 masak mathw: well, apart from the speed and the stability...
13:28 jnthn masak: Those are kinda what I'm shooting for as much as anything.
13:28 jnthn masak: Also, there's a lot of parallel programming stuff handy.
13:28 jnthn masak: Which would be good for prototyping what we want to do in that area for Perl 6.
13:28 masak \o/
13:34 meppl joined #perl6
13:35 masak std: class A; my method ^foo() {}
13:35 p6eval std 30191: OUTPUT«ok 00:01 108m␤»
13:35 masak std: class A; sub ^foo() {}
13:35 p6eval std 30191: OUTPUT«[31m===[0mSORRY![31m===[0m␤Malformed block at /tmp/BK16EO2hnc line 1:␤------> [32mclass A; sub [33m⏏[31m^foo() {}[0m␤    expecting any of:␤    block␤  name␤     routine_def␤       trait␤FAILED 00:01 105m␤»
13:35 jnthn rakudo: class A; sub ^foo() {}
13:35 p6eval rakudo db0f85: OUTPUT«Confused at line 11, near "class A; s"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
13:36 masak std: class A; my submethod ^foo() {}
13:36 p6eval std 30191: OUTPUT«ok 00:01 107m␤»
13:36 jnthn meta-submethod...
13:36 jnthn Heh.
13:36 masak http://www.dlugosz.com/Perl6/web/class-declarators.html would imply that they make sense.
13:38 colomon joined #perl6
13:40 jnthn It's on the internet so it must be true! ;-)
13:40 jnthn sub ^foo() doesn't make sense to me at all, though.
13:40 masak sometime around UTC 01:00-02:00 occurs the so-called 'lue moment', where the channel goes quiet and lue feels the need to wake it up again. :) it's becoming somewhat of a tradition.
13:41 masak jnthn: ok; though much of what dlugosz++ writes is informative and useful, he sometimes falls into the blue-sky category too.
13:42 jnthn masak: Yes, it's a mixture. :-)
13:43 jnthn There is some good stuff in there too.
13:43 masak aye.
13:43 masak same with "Perl 6 Rigorous Technical Specification". it's a good idea, but (so far) it hasn't established itself as relevant.
13:44 drakej joined #perl6
13:45 jnthn It's hard to maintain another window on a spec that is still evolving.
13:45 justatheory joined #perl6
13:45 colomon takadonet: One thing about trying to write Perl 6 code now -- you'd be amazed at how having an interesting project block on a missing feature can inspire the Rakudo team to get working on that feature.
13:45 masak that, and the Spec is already normative in a de facto way. it's alive "by itself".
13:46 takadonet colomon: I have done that a few time already.  :)
13:46 jnthn Aye, though there are those who feel a need for a more formal spec, FSVO formal.
13:47 takadonet colomon:My current project at work is really interesting , doing comparative genomics with a large data set !
13:47 masak perl6.org is down.
13:47 masak so is november-wiki.org. guess it's due to the recent feather crash.
13:47 colomon takadonet: ah, yes, the missing feature "Rakudo should be 100x faster" is one that's hard to implement in a weekend.  ;)
13:49 takadonet colomon: Speed is not my issue, my main project is about half a million lines of perl 5 code so... not changing over any time soon
13:49 takadonet colomon: My side projects at work .... that is where I could use Perl 6
13:49 colomon :)
13:51 masak sorear: [backlogging] <sorear> after the release, there will be problems
13:51 mathw jnthn: I suppose .NET would be nice, since it's already got a multithreaded runtime, for experimenting with that sort of thing.
13:51 masak sorear: are you implying that there aren't problems now? :P
13:51 jnthn mathw: Right.
13:51 jnthn According to RT there are 631 problems.
13:52 jnthn Unless masak has created more today.
13:52 jnthn ;-)
13:52 masak actually, I have one in store.
13:52 mathw Maybe I can help with that when the time comes. It would be interesting to learn about the necessary things. Must read metamodel.pod and steal my boss's .NET compiler development book.
13:52 mathw although it might be of limited use, as porting Rakudo is something of a different task
13:54 pmurias joined #perl6
13:55 jnthn mathw: Help will be welcome when we get to that stage, for sure.
13:55 jnthn mathw: I expect there'll be plenty of LHF as well as MBF.
13:55 mathw LHF? MBF?
13:55 colomon MBF?
13:55 SmokeMachine joined #perl6
13:55 jnthn Low Hanging Fruit vs Mind Bending Fruit
13:55 jnthn ;-)
13:55 ash_ joined #perl6
13:56 mathw aaah
13:56 mathw well everyone likes a little mind-bending from time to time
13:57 jnthn Oh yes. :-)
13:58 ash_ rakudo: IO::Socket::INET.new.^methods.say;
13:58 p6eval rakudo db0f85: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
13:58 ash_ hmm, locally i get maximum recursion depth exceeded
13:59 jnthn rakudo: say IO::Socket::INET
13:59 p6eval rakudo db0f85: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
13:59 jnthn huh
13:59 jnthn out of date?
14:01 ash_ what is the max recursion depth anyway?
14:01 ash_ like 32 calls?
14:01 jnthn 1000 Parrot-level frames.
14:01 jnthn But the revursion is going infinite there anyway
14:01 jnthn due to bug
14:02 ash_ ah, okay, i was just wondering why it seems to do that
14:02 ash_ i just have been passing :local
14:03 ash_ > IO::Socket::INET.new.^methods(:local).say;
14:03 ash_ closesocketsendbindlistenrecvacceptopen
14:03 masak jnthn: bacek reverted r45133 in response to my Parrot ticket.
14:03 PerlJam joined #perl6
14:08 jaldhar joined #perl6
14:11 ash_ is there any reason (logically) if i did class Foo { ... }; Foo.HOW does role { }; shouldn't work?
14:15 iblechbot joined #perl6
14:21 jnthn It should work
14:21 jnthn But it's a slighly weird thing to be doing :-)
14:21 Trashlord joined #perl6
14:22 ash_ well, you can't have method foo^ {} in a role right now
14:22 masak std: class Foo { ... }; Foo.HOW does role {}
14:22 p6eval std 30191: OUTPUT«ok 00:01 108m␤»
14:23 masak ash_: are you sure the ^ should be at the end?
14:23 ash_ no, that goes at the beginning *needs caffeine*
14:23 jnthn no, comes at start.
14:24 jnthn ash_: True, but if you're talking about what method ^foo in a role might do, it sounds like you have the right expectations on what mixing into Foo.HOW will do. :-)
14:27 nihiliad joined #perl6
14:28 ash_ i know i refer to ruby a lot, but they have 2 different ways of mixing in a module (their version of a role), one for mixing into the class and another for mixing into the instance... and that removes the issue of ^methods in roles, /shrug thinking out loud
14:28 Juerd Oops, this reboot is an accident. Sorry.
14:28 Trashlord joined #perl6
14:31 Juerd Although...
14:31 Juerd It appears to have crashed during shutdown :)
14:31 Juerd But Xen still works.
14:31 Juerd So feather1 still works.
14:31 * Juerd wonders wtf is going on with this box.
14:31 Juerd Oh well, I'll just leave it in this state for now.
14:31 masak :/
14:32 Juerd Just can't access feather0 at the moment. But its kernel is still running.
14:32 Juerd In fact, I can ssh to it but it won't let me log in.
14:32 Juerd And the console has no getty's because they were killed
14:32 Juerd It's a super secure box now.
14:33 [particle] hee
14:33 [particle] don't touch that switch!
14:33 * ash_ imagines the "server is down" video
14:33 Juerd It'll probably even email me when a disk fails
14:34 Juerd I don't know if the raid monitoring daemon is still alive.
14:34 Juerd Can't tell :P
14:34 Juerd cron is definitely dead though, so it won't make backups
14:34 Juerd Needs reboot after all :(
14:35 drakej left #perl6
14:35 Juerd In 60 min.
14:36 Juerd feather2 and 3 are dead. That means I'm not going to wait the 60 minutes after all.
14:36 ruoso joined #perl6
14:43 Guest18325 joined #perl6
14:56 ash_ joined #perl6
14:57 ash__ joined #perl6
15:01 masak it's far too quiet.
15:01 masak I move for the complete removal of class attributes from the spec.
15:01 masak :)
15:01 jnthn Agree.
15:01 masak whoa :)
15:01 ash_ no, all variables should be made protected
15:01 jnthn masak: Well, OK, the way they're currently spec'd is, in a sense, just a lexical + a method. :-)
15:02 masak jnthn: but there are problems.
15:02 masak aren't there?
15:02 jnthn Right.
15:02 jnthn I'm not sure what's currently spec'd is good use of the syntax it's currently occupying.
15:03 masak if instance attributes are really private, as we agreed on yesterday, then the correspondance between 'has' and 'my' is greater than I first thought, but...
15:03 jnthn True.
15:03 cognominal I understand that the syntax is ambiguous but people needs class attributes...
15:03 masak ...there's still the problem of $!x perhaps being an instance attr and perhaps a class attr.
15:03 cognominal do I miss something here?
15:04 masak cognominal: what do they need them for? do you have a use case?
15:04 masak cognominal: (not saying you're wrong, just looking for convincing use cases)
15:04 jnthn masak: Well, I never really went along with the argument that $!x could indicate a class attribute.
15:04 jnthn For all the reasons I mentioned. :-)
15:04 masak jnthn: that alone indicates we have a problem :P
15:06 ash_ class attributes belong to an instance though
15:06 ash_ the instance just happens to be the meta object of the class
15:07 masak ash_: I've had the same thought -- whether the meta object is a good place to store the class attributes.
15:07 masak ash_: unfortunately, the $^foo twigil syntax is taken. :(
15:07 cognominal That would be a value that would be identical in each instance so it is shoved in the class.  I don't think of a use right now but the oo languages I know have it.
15:07 ash_ self.^foo or $!^foo might work? /shrug
15:07 masak ash_: yes, but No Trigils, remember? :)
15:08 cognominal s/value/attribute/
15:08 * masak .oO( Trouble With Trigils )
15:08 jnthn ash_: Please don't confuse class and metaclass.
15:08 masak cognominal: the fact that many languages have it doesn't mean it's a useful feature.
15:09 masak cognominal: I can easily emulate/workaround class attributes by just making a hash from type objects to hashes.
15:09 jnthn fwiw, almost all my use of "private static" in Java and C# could be provided by a lexical declared in the class body.
15:09 ash_ i can think of uses for a class variables
15:10 jnthn So in that sense yes I use them in other languages *but* they don't have other options that are to hand in Perl 6.
15:10 masak rakudo: class A {}; class B {}; my %class_attrs = A => { foo =42 }, B => { foo => 5 }; say %class_attrs<A><foo>
15:10 p6eval rakudo db0f85: OUTPUT«Method 'postcircumfix:<{ }>' not found for invocant of class 'Block'␤current instr.: '!postcircumfix:<{ }>' pc 13870 (src/builtins/Code.pir:120)␤»
15:10 masak cognominal: like that.
15:10 masak um.
15:10 masak it worked locally :/
15:10 cognominal jnthn, so what about public statics?
15:10 jnthn wtf.
15:10 ash_ an ORM that is mapping objects to a database table could use a class variable to store the connection for instance
15:10 masak probably a p6eval artifact.
15:10 dalek joined #perl6
15:11 jnthn cognominal: leixcal with an lvalue method.
15:11 jnthn cognominal: Thing is, that's what the my $.foo syntax does now. Trouble is...
15:12 jnthn ...people then (reasonably) expect that the underlying storage is accessible as $!foo not just $foo.
15:12 ash_ or, the class might store information about its relationships with other classes, like if two tables are linked, you could have it in every instance of each, but if Order knows its has a child called OrderedProduct, its relevant to the class, not the intance
15:13 ash_ in a specific instance Order with id 5 might want to know it has OrderedProducts 4, 5, 6 and 7, but the overall relationship between Order and OrderedProduct is more useful to tell the class no the instanc
15:13 ash_ instance*
15:13 cognominal I expect class attributes to be lightly used, so I don't mind a verbose syntaxe by the huffman principle. I don't mind a trigil. :)
15:14 ash_ you could just access them through lvalues...
15:15 ash_ and not have a shortcut to them
15:15 Juerd joined #perl6
15:18 ash_ what would a state variable in a class definition be like?
15:20 masak ash_: like this? class A { state $foo }
15:20 ash_ yeah
15:21 ash_ i know in a function it's like a static function variable in C, where it will have the same value it did last time you called it, if you call it again
15:22 masak ash_: it wouldn't really make practical sense, because the class block is only run once.
15:22 masak (AFAIK)
15:22 jnthn What does a state variable gain over a lexical in a class body?
15:22 jnthn Unless it's an anonymous class... :-)
15:22 jnthn In a role it'd be really funky though. :-)
15:22 masak hm :)
15:22 jnthn role Foo[::T] { ... } # body may be run many times.
15:23 masak rakudo: role A[::T] { state $foo; say ++$foo }; A[Int]; A[Str]
15:23 p6eval rakudo db0f85: OUTPUT«Symbol '$foo' not predeclared in !class_init_12␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
15:23 masak aww :)
15:24 ash_ just thinking in terms of javascript, if you make a variable a new variable when you make an object it is accessible from within the instance variables, it gets added to the scope of the methods in the instance, but with a state variable thats scoped to the methods of a class it might retain a value they can all access
15:24 * masak submits rakudobug
15:25 jnthn masak: state nyi in Rakudo
15:25 jnthn (master)
15:25 masak oh.
15:25 jnthn well
15:25 jnthn file ticket anyway
15:25 masak alpha: role A[::T] { state $foo; say ++$foo }; A[Int]; A[Str]
15:25 jnthn There's no promise it'll just work right off.
15:25 TimToady if you want multiple state vars in role, that probably means there's a missing clone
15:25 p6eval alpha 30e0ed:  ( no output )
15:25 TimToady since cloning dups state vars
15:26 masak TimToady: what would the above code print? 1\n2\n, right?
15:26 ash_ well, in that case, my thoughts wouldn't work right, if state is cloned
15:27 Juerd I think I found what caused the crash earlier today. Xen was ballooning
15:27 Juerd That's disabled now
15:27 masak ballooning?
15:28 Juerd masak: Dynamic changing of the amount of memory for virtual servers. Not all kernels handle that equally well.
15:28 Juerd This one crashes, apparently.
15:28 masak ok.
15:28 TimToady ballons go up and down :)
15:28 TimToady *oo
15:28 Juerd We don't need it anyway. Fixed sizes are nicer to work with.
15:29 masak jnthn: so, putting 'class attributes' inside the metaclass object would be wrong a priori?
15:30 masak jnthn: I guess it feels wrong to me too, since the metaclass is otherwise concerned with introspection stuff, not with actual values of the running program.
15:32 TimToady masak: it doesn't print anything in my head before I've had my coffee
15:33 jnthn masak: Well, there's no promise that you have a metaclass instance per class.
15:33 masak TimToady: :)
15:33 jnthn When we abstract class to mean "package associated with a certain type of metaclass"
15:33 jnthn er, metapackage
15:33 jnthn :-)
15:33 TimToady I'm just saying that *if* role clones its block on instantiation, you'd get 1,1
15:33 masak nod.
15:34 TimToady but if you had state $.foo, it'd presumably put an accessor to each 1
15:34 masak right now it prints nothing, even in alpha, so it's definitely a bug :)
15:34 TimToady my brane is NYI today
15:35 TimToady std: {}; #`<> 42 43
15:35 p6eval std 30191: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/Q2N1TA3HFT line 1:␤------> [32m{}; #`<> 42 [33m⏏[31m43[0m␤    expecting any of:␤ bracketed infix␤  infix or meta-infix␤      statement modifier loop␤FAILED 00:01 108m␤»
15:35 TimToady std: {} #`<> 42 43
15:35 p6eval std 30191: OUTPUT«[31m===[0mSORRY![31m===[0m␤Missing punctuation (semicolon or comma?) after block at /tmp/ZSKyXbJFRF line 1:␤------> [32m{}[33m⏏[31m #`<> 42 43[0m␤    expecting any of:␤       bracketed infix␤  horizontal whitespace␤    infix or meta-infix␤      statement modifier
15:35 p6eval ..loop␤FAILED 00:01 107m␤»
15:36 pmurias joined #perl6
15:36 TimToady this entire refactor was driven by wanting those to work right without a hacky workaround on # comments for <!before '`'>
15:37 TimToady because that showed me my exception-based backtracking was never going to work right
15:37 TimToady because commit transactions are threaded through the cursors in a way that is neither lexical nor dynamic
15:38 TimToady and I needed, more or less, a cactus stack of them.
15:38 jnthn Sounds like a prickly problem.
15:38 TimToady fortunately, I only needed one-way pointers, toward the root
15:39 TimToady unfortunately, it runs a bit slower than the old exception-based model
15:44 riffraff joined #perl6
15:45 masak correctness might be worth a little speed hit :)
15:45 TimToady also have a few more test files that don't compile; probably just buglets in STD's actual commit policies
15:46 masak oh, a cactus stack (aka 'spaghetti stack') is what you get when you have first-class continuations.
15:46 TimToady since I'm splitting :: into two different commits
15:46 masak http://en.wikipedia.org/wiki/Spaghetti_stack
15:46 masak or rather, non-delimited continuations.
15:48 TimToady I think that :: is commit to current LTM choice, not commit to current alternative, and we'll probably have a different notation for the latter
15:48 TimToady temporarily, gimme5 is recognizing ::> for that
15:48 masak ooh, a S05 change. :)
15:49 TimToady but LTM gets the better huffman coding, because that's almost always what STD wants
15:49 masak instinctively, ::> looks very ad hoc. :/
15:49 TimToady it's possible that we don't need two notations, but in that case, you have to put :: in *front* of any [] that wants to contain its own LTM matcher
15:50 TimToady except that doesn't extend to || alts, so we probably want a separate "then" token
15:51 TimToady have a bunch of possibilities in my head, and don't like any of 'em.
15:51 * masak realizes that he still doesn't grok LTM :/
15:53 TimToady LTM is the outermost alternation (| or proto) that is reached at a particular position, the one that sees all its inner alternations at the same position and takes them all into account
15:54 TimToady so termish knows about both prefix and term alternations
15:54 masak in other words, "do all the alternations at once", and pick the one that reached the farthest.
15:55 cdarroch joined #perl6
15:55 cdarroch joined #perl6
15:55 TimToady yes, and then that determines a "fate" for recursive descent into the particular rule with the innermost alternative that matches
15:55 masak hm. please define fate, really precisely.
15:56 TimToady a list of predetermined choices
15:56 TimToady each alternation first looks to see if its choice is predetermined
15:56 masak so it's sort of a jumptable?
15:56 TimToady and if so, it doesn't do LTM itself
15:56 TimToady yes
15:56 masak cool.
15:56 TimToady it's precisely that, an array of code that is indexed into
15:57 masak ok.
15:57 TimToady for proto alternations, there's just an indirection to a named routine
15:57 TimToady but the principle is the same
15:59 masak ok.
15:59 masak what are the 'keys' of the jumptable? strings?
16:00 TimToady strings for protos, ints for alts
16:00 TimToady a proto uses:             push @gather, $C->$try(@_);
16:01 TimToady an alt uses: (sub,sub,sub)[$try])->($C);
16:02 hercynium joined #perl6
16:02 masak ok.
16:02 TimToady so the fates are similarly strings or ints depending
16:02 masak how will an int help you immediately jump to the right alternative?
16:03 TimToady by calculating the correct int:)
16:03 TimToady that's what the LTMer does
16:04 masak hm. ok.
16:05 TimToady if you look in lex/STD/P6/termish you'll see the longest token patterns for termish followed by the fates returned for any particular token
16:05 TimToady assuming you've done make, of course
16:06 jnthn TimToady: You pre-compute them and cache them on disk? :-)
16:06 * masak looks
16:07 jnthn That's quite a cool idea.
16:07 TimToady they are all calulated on the fly and cached
16:08 TimToady you're just looking at what was cached when we ran tryfile STD.pm
16:08 masak http://news.ycombinator.com/item?id=1215949
16:09 jnthn Nice.
16:09 TimToady an entry like PRE_01 0 says the first alt in the PRE rule should take its first entry
16:09 jnthn I guess if you compile a grammar down to something then those can be cached in the compiled representation too.
16:10 TimToady whereas a fate of "prefix STD::P6::prefix__S_281PlusPlus" says the prefix proto should use STD::P6::prefix__S_281PlusPlus as its alternative
16:10 jnthn TimToady: When a new languages is derived, what happens?
16:11 jnthn Is the pre-computed table automatically irrelevant, or can you know what bits might be inapplicable?
16:11 TimToady currently, if it's derived by grammar, it's automatically cached, but if it's a macro like postfix:<!>, it's just private to the current compilation unit (in memory only)
16:12 TimToady however, in order to compile settings, I'll need to make those public too somehow
16:12 jnthn I was thinking more language tweaks.
16:12 jnthn Like for quoting constructs and so forth.
16:13 TimToady basically, if you have a new language with an appriate language ID, then it can be cached, and anyone else who does exactly the same derivation gets the cached version
16:13 TimToady *appropriate
16:13 TimToady this language ID is reflected in the director structure of lex/
16:14 TimToady when you derive a new language, you have to recalculate some or all of the LTM tables
16:14 masak theatre &
16:14 TimToady but it works hard not to recreate something that is identical with its parent language
16:14 TimToady if you derive something in postfix, only the LTMs that contain postfix have to be redone
16:15 jnthn Ah, OK.
16:16 jnthn Sounds like it can be pretty efficient.
16:16 TimToady well...
16:16 TimToady there's lots of places that it could be optimized, but I've been going for correct first :)
16:17 jnthn :-)
16:17 ash_ get it working, then get it working fast
16:20 jnthn Indeed.
16:21 ash_ woo, nq-nqp can now parse "sub foo() { }" and have a proper AST generated
16:24 salty-horse joined #perl6
16:26 TimToady hmm, Another reason, often overlooked, is that Normals stick around a lot longer and are far more loyal than early adopters.  *cough* Perl 5 *cough*
16:29 pmurias joined #perl6
16:37 mberends left #perl6
16:39 ash_ TimToady: I am going to try to implement some of the nqp regex stuff (eventually), but i am curious, since regex are now a first class type of object, would it be smart to parse them with the actual syntax parser or should i have a specialized parser do regex parsing?
16:40 TimToady see STD.pm, particularly grammar Regex
16:41 TimToady in short, you question is assuming a false dichotomy.  it's the actual syntax parser, and it's also a specialized parser
16:41 TimToady it's just a sublanguage
16:42 TimToady but it is derived from STD
16:42 TimToady *your
16:44 TimToady but if you mean a specialized parser in the Perl 5 sense, no, that's where we decided that regexen are not strings anymore, they're just a sublanguage, like quotes
16:45 ash_ hmmm, okay, i am going to run into a problem then soon, since i am not defining a STD, i wonder if i can build a grammar from the ground up in nqp, my version of nqp is more nqp and less nqp-rx, i am getting to the point were I can generate the AST (partially, so far) but how to implement grammars and regexs are still a bit beyond me
16:45 TimToady actually, more than one sublanguage, since we also parse p5 regex
16:46 TimToady well, perhaps you want a specialized parser for that, since this is where being less not-quite is quite difficult
16:46 TimToady unless you're writing nqp in Perl 6 :)
16:47 ash_ no, i am writing it in C and C++ and llvm-ir (and bison and flex)
16:47 arnsholt ash_: Did you find a solution to the NQP grammar being LL and bison being LALR?
16:48 ash_ i was going to use a glr parser for now
16:48 pmurias ash_: why are you writing a version of NQP in C++?
16:48 ash_ since it was really that it was a LALR(1)
16:49 ash_ pmurias: learning, i am doing an independant study on compilers and nqp seemed like a challenge
16:49 TimToady you could do a sandwitch of top down and bottom up like STD does
16:49 TimToady *wich
16:50 ash_ I'd like to, and if I can ever get it to be a self-hosting nqp, like the real nqp is, then i will, but for now i just was hoping I could implement the absolute minimum of nqp to get to the point of self hosting
16:50 TimToady for some reason CS professors see this as "impure" though.  :)
16:50 * pmurias wishes there was an option to do independent study at his uni
16:50 TimToady it's just there are some thing top-down is much better at, and some things bottom-up is much better at, so why not combine strengths
16:51 TimToady *things
16:51 ash_ i heard the argument that LL is a strict subset of LR so you can define all LL parser in a LR way... /shrug
16:51 TimToady yeah, if you don't mind Something's wrong near line 42.
16:51 colomon 28549 passing tests, woo-hoo!
16:52 TimToady but perhaps I'm maligning yacc here more than lalr in general
16:52 ash_ pmurias: i just kept bugging one of my professors about a compiler class, since its not being offered currently because of a lack of interest, and i apparently was annoying enough that he got permission for an independent study
16:52 TimToady in theory you should be able to deduce what it was expecting from the table state
16:54 TimToady but p6 expressions are simple enough to parse the bottom-up bits with an operator precedence parser
16:54 arnsholt ash_: That's quite awesome. Which university are you at?
16:54 ash_ auburn
16:54 ash_ in alabama
16:54 * araujo wonders if that "p6 expressions are simple" comment is actually true
16:54 lue hello! (colomon: hooray \o/)
16:55 colomon hi!
16:55 TimToady well, it's got complicated precedence and associativity, but the opp handles those fine
16:55 * colomon -> nom
16:55 TimToady the only place I really cheat on it is for ??!!
16:55 ash_ TimToady: i looked into making a parser top down parser, but it seemed like a lot of work to get over my current hurdle, while it might be the 'right way' i am only doing this independent study for this semester, so maybe this summer i can re-do the parser, but for now i am just getting it to work, even if its only a limited subset of 'works'
16:55 jnthn .oO( colonom )
16:56 lue the result of a misspell
16:56 TimToady ash_: that's fine
16:58 TimToady nq doesn't have to be q
16:59 diakopter nhp: not hardly perl
16:59 diakopter not [even] hardly, I mean [to imply]
17:00 ash_ yet another not hardly perl 6 ish compiler? yanhpic, thats version 2
17:01 ash_ if i get the AST fully parsed, i want to have an option to have the compiler spit it out into like graphviz, that might be neat...
17:01 TimToady Pythonic Perl 6: There Can Only Be One True Grammar
17:02 araujo TCOBOTG
17:02 arnsholt In Norwegian, Python can be used as an adjective, meaning "horrible". I find that amusing =)
17:02 TimToady but we're aiming for the other extreme; 100% pure Perl includes all the other languages of the world :)
17:02 * diakopter likes spaghetti stacks a bit too much.
17:02 araujo Lisp Perl 6?
17:02 araujo :P
17:03 TimToady use Lisp; ((((....
17:03 araujo :)
17:03 arnsholt Lisp (or Common Lisp at least) is a wonderful language, marred by horrible syntax
17:04 araujo no way, lisp has no syntax :P
17:04 ash_ lisp's syntax is like 7 lines or something
17:04 arnsholt That's what my resident Lisp fanatic tells me as well
17:04 ash_ if you write the BNF for it
17:04 arnsholt My reply is usually that the lack of syntax is precisely the problem
17:05 araujo why?
17:05 TimToady it's a direct representation of the neuronal connections of the (Lisp) programmer's brane
17:05 ash_ i saw someone that made a "tab deliminated" macro for lisp, so they could use tab's instead of ( )
17:05 arnsholt araujo: Everything looks the same. I find the philosophy of Perl that different things should look different to be quite to my liking
17:05 araujo arnsholt, well, I am not arguing which one is your liking ... :P
17:06 ash_ each tab in would get wrapped by ( ) basically, so (+ 1 2) would become +\n\t1\n\t2 if i remember correctly
17:06 TimToady so it's basically YAMLisp
17:06 ash_ lol, yeah, that's a good description of it
17:06 araujo but I think Lisp syntax is very simple, barely existing , and the fuss about its syntax is too over-reacted(sp?)
17:08 lue How long until you provide the ultimate in laziness and allow programmers to import libraries (or equivalent) from other languages?
17:08 araujo hehe
17:09 ash_ (echo (if (= a b) "yes" "no"))
17:09 ash_ hmm
17:09 ash_ i suppose that should be a ==
17:09 lue ...what kind of language IS Lisp? O.o
17:09 araujo or eq, eql ... or ... :P
17:10 araujo lue, one that could twist your brain, so.. worth learning
17:10 ash_ haskell twists your brain more, IMO, but yes, they are both worth learning
17:10 ash_ or knowing of
17:10 arnsholt lue: The original functional programming language
17:10 ash_ lisp is from 1968?
17:10 ash_ somewhere around there
17:10 araujo haskell is by far more, both are very different to be worth learning ...
17:10 arnsholt '58 or something I think
17:11 lue Only for writing my .emacs file do I see a purpose for Lisp
17:11 arnsholt I'd recommend learning Common Lisp. It will definitely teach you quite a few interesting things when you start to delve into it
17:11 ash_ it was originally just a programming implementation of lambda calculus, i think. its a bit more now, but anyway
17:12 arnsholt I'd argue that Perl is quite influenced by Lisp when it comes to how programs are structured
17:12 ash_ common lisp has some cool features, like multi-method dispatch, one of the only other languages (i can think of) that has it
17:12 TimToady unfortunately it's not symmetric
17:12 lue (where is Rakudo's interactive interpreter coded?)
17:13 ash_ TimToady: for ever ( there is a ) : P
17:13 TimToady I mean the multi-method dispatch is prioritized by argument order, iiuc
17:14 TimToady so no improvement over nested switches
17:14 TimToady in (+ a b) the type of a dominates the type of b
17:14 solarion joined #perl6
17:15 TimToady that's what I've heard, anyway
17:15 TimToady I don't claim to be a CL expert
17:15 ash_ i don't know for sure either, i just heard it does support multi-methods
17:16 araujo TimToady, it is fine .. as long as you still claim to be a perl expert
17:16 araujo :P
17:16 TimToady it's a shame that it just doesn't do it Correctly...
17:17 TimToady we'll have to send it to a Correctional Institution, like She Who Does Everything Better Than You.
17:19 * araujo dreams on a language with the usability and "one-liner" solutions of Perl , but with the "no-syntax" of Lisp, and the level of "system programming" of C
17:19 araujo someday will happen ....
17:19 ash_ thats another thing I am going to have to look at implementing on my nq-nqp..
17:20 ash_ multi-methods, but first i need to figure out how objects will be represented under the hood... yup, i am going to be busy with this for a while i think
17:22 lue CLisPerl :) (klihs-perl)
17:23 ash_ perl6 use Lang<C>; use Lang<Lisp>; use Lang<Shortcuts>;
17:24 lue > perl6 -e "use Lang<Lisp>;"
17:24 lue DON'T PANIC! But Lisp is confusing. Try Perl.
17:25 araujo map printf("Hello %s") (splitNl `ls /`)
17:25 nihiliad joined #perl6
17:25 araujo don't tell me that is not beautiful
17:25 araujo :P
17:26 ash_ use Grammar<NewPerl7>;?
17:26 araujo hehehe
17:26 araujo I think i can start my own Perl7 ... bit afraid of TimToady suing me though ....
17:27 lue why not come to #perl7 ? (it's not a trap to arrest you, really! It's real!!!)
17:27 ash_ if there was some way to reliably tell when a space was meant for a function call vs when it was an additional parameter, that might be possible in perl 6...
17:28 araujo also notice the partially evaluated printf ... beautiful :P
17:28 ash_ if you knew the number of parameters you could figure it out, maybe, but then you couldn't have optional parameters
17:28 * araujo imagines doing system programming like this one day in the future
17:28 ash_ thats fine, capture the expression as a block
17:29 ash_ just be lazy with it
17:29 lue Where is the interactive interpreter for Rakudo coded? (what you get when you type perl6<ENTER>)
17:30 araujo lue, what do you mean?
17:31 ash_ right now its more of "map: { say "hello $_" }, system('ls').lines"
17:31 arnsholt I think that's src/Perl6.pir
17:31 ash_ and i am sure there are shortcuts i am not aware of
17:31 ash_ system('ls /').linesS>>.say
17:31 araujo omg
17:31 araujo hehe
17:32 TimToady there is no system()
17:32 ash_ ah
17:32 TimToady you don't use : on functions
17:32 ash_ qw{ } or something? i keep forgetting...
17:32 espadrine joined #perl6
17:32 araujo you only can use backquote?
17:32 TimToady qx where x is for 'execute'
17:32 ash_ yeah, thats what i meant then
17:33 TimToady system is replaced by run
17:33 lue rakudo: say `hello' # is this an error?
17:33 TimToady and qx probably already returns lines
17:33 p6eval rakudo db0f85: OUTPUT«Confused at line 11, near "say `hello"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
17:33 araujo rakudo: qx{ls .}
17:33 p6eval rakudo db0f85: OUTPUT«operation not permitted in safe mode␤current instr.: '&die' pc 17257 (src/builtins/Junction.pir:399)␤»
17:33 ash_ rakudo: qx{ls /}.split("\n")>>.say;
17:34 p6eval rakudo db0f85: OUTPUT«operation not permitted in safe mode␤current instr.: '&die' pc 17257 (src/builtins/Junction.pir:399)␤»
17:34 ash_ oh, yeah, safe mode, well, locally that works
17:34 araujo rakudo: qx{echo "hello"}
17:34 p6eval rakudo db0f85: OUTPUT«operation not permitted in safe mode␤current instr.: '&die' pc 17257 (src/builtins/Junction.pir:399)␤»
17:34 TimToady std: map *.say, qx{ls /}
17:34 p6eval std 30191: OUTPUT«ok 00:01 109m␤»
17:34 TimToady rakudo: map *.say, qx{ls /}
17:34 p6eval rakudo db0f85: OUTPUT«operation not permitted in safe mode␤current instr.: '&die' pc 17257 (src/builtins/Junction.pir:399)␤»
17:35 TimToady std: qx{ls /}.map: *.say
17:35 p6eval std 30191: OUTPUT«ok 00:01 106m␤»
17:36 araujo the *.say, is like (\ n -> say n) in haskell ?
17:37 ash_ * = whatever
17:37 TimToady rakudo: 1,2,3 X~~ *.say
17:37 p6eval rakudo db0f85:  ( no output )
17:37 TimToady aww
17:37 ash_ it would (in theory) substitute $_ for * in the map
17:37 ash_ i don't think those work in rakudo yet though
17:37 TimToady rakudo: say 1 ~~ *.say
17:37 p6eval rakudo db0f85: OUTPUT«invoke() not implemented in class 'String'␤current instr.: 'perl6;Code;signature' pc 13156 (src/builtins/Str.pir:115)␤»
17:37 lue it holds somethning, whatever doesn't.
17:37 TimToady rakudo: 1 ~~ *.say
17:37 p6eval rakudo db0f85: OUTPUT«invoke() not implemented in class 'String'␤current instr.: 'perl6;Code;signature' pc 13156 (src/builtins/Str.pir:115)␤»
17:38 TimToady o_O
17:38 TimToady alpha: 1 ~~ *.say
17:38 p6eval alpha 30e0ed: OUTPUT«1␤»
17:38 ash_ rakudo: 1 ~~ :say
17:38 TimToady alpha: 1 X~~ *.say
17:38 p6eval rakudo db0f85: OUTPUT«1␤»
17:38 p6eval alpha 30e0ed: OUTPUT«1␤»
17:38 TimToady ooh
17:38 lue is it supposed to be (1 ~~ *).say ?
17:38 * araujo ....
17:39 TimToady alpha: 1 X~~ :say
17:39 p6eval alpha 30e0ed: OUTPUT«Method ':say' not found for invocant of class 'Int'␤in Main (file src/gen_setting.pm, line 324)␤»
17:39 araujo :P
17:39 ash_ rakudo: 1 X~~ :say
17:39 p6eval rakudo db0f85:  ( no output )
17:39 TimToady alpha: 1,2,3 X~~ *.say
17:39 p6eval alpha 30e0ed: OUTPUT«1␤2␤3␤»
17:39 araujo rakudo: 1,2,3 *.say
17:39 p6eval rakudo db0f85: OUTPUT«Any()␤»
17:40 ash_ master's *.say seems off
17:40 TimToady um, that was infix:<*>
17:40 * TimToady is tempted to channel MJD
17:40 araujo rakudo: (1,2,3 *).say
17:40 p6eval rakudo db0f85: 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)␤»
17:40 TimToady std: (1,2,3 *).say
17:40 p6eval std 30191: OUTPUT«[31m===[0mSORRY![31m===[0m␤Bogus term at /tmp/OIWbsKYMYb line 1:␤------> [32m(1,2,3 *[33m⏏[31m).say[0m␤FAILED 00:01 107m␤»
17:40 ash_ rakudo: [*.say] 1, 2, 3;
17:40 p6eval rakudo db0f85: OUTPUT«Confused at line 11, near "[*.say] 1,"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
17:41 TimToady std: [*.say] 1, 2, 3;
17:41 p6eval std 30191: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row (preceding is not a valid reduce operator) at /tmp/Z1wkEQ3f9k line 1:␤------> [32m[*.say] [33m⏏[31m1, 2, 3;[0m␤    expecting any of:␤    bracketed infix␤  infix or meta-infix␤      statement modifier loop␤FAILED 00:01 106m␤»
17:41 TimToady now how did it read your mind? :)
17:42 lue wha? cool! :)
17:42 araujo rakudo: (1,2,3, *).say
17:42 p6eval rakudo db0f85: OUTPUT«123!whatever_dispatch_helper␤»
17:42 araujo rakudo: 1,2,3, *.say
17:42 p6eval rakudo db0f85:  ( no output )
17:42 TimToady you seem to think *.say is more magical than it is
17:43 TimToady it merely means {$_.say}
17:43 araujo hehe, ok
17:43 TimToady but only where a term is expected
17:44 [particle] rakudo: (1, 2, 3, *.say)[3].say # should be 1
17:44 p6eval rakudo db0f85: OUTPUT«!whatever_dispatch_helper␤»
17:44 [particle] hrmm, no?
17:44 araujo why 1?
17:44 [particle] the return value of say
17:44 TimToady rakudo: (1, 2, 3, *.say)[3](42)
17:44 p6eval rakudo db0f85: OUTPUT«42␤»
17:45 ash_ rakudo: (1, 2, 3)>>.say
17:45 [particle] of *.say, specifically
17:45 p6eval rakudo db0f85: OUTPUT«1␤2␤3␤»
17:45 ash_ it seems to be leaking a helper
17:45 TimToady pugs: (1,2,3)>>.say
17:45 p6eval pugs: OUTPUT«2␤3␤1␤»
17:45 araujo TimToady, ok, makes sense that one ... :P
17:45 ash_ TimToady: i know it's not guaranteed to be ordered
17:45 araujo rakudo: *.say.say
17:45 p6eval rakudo db0f85: OUTPUT«!whatever_dispatch_helper␤»
17:46 araujo rakudo: 1.say.say
17:46 p6eval rakudo db0f85: OUTPUT«1␤1␤»
17:46 ash_ rakudo: *.say.(2)
17:46 p6eval rakudo db0f85: OUTPUT«2␤»
17:47 ash_ is it s>> for sequential?
17:47 TimToady S, but only on infixes
17:48 TimToady and it really means to evaluate the left arg before the right one
17:48 PerlJam joined #perl6
17:48 TimToady extending it to other dimensions would be...speculative...
17:51 ash_ rakudo: [[1, 2, 3], [1, 2]][1][1].say; [(1, 2, 3), [1, 2]][1][1].say;
17:51 p6eval rakudo db0f85: OUTPUT«2␤get_pmc_keyed() not implemented in class 'Integer'␤current instr.: 'perl6;Positional[::T];postcircumfix:<[ ]>' pc 10503 (src/metamodel/GrammarHOW.pir:44)␤»
17:52 moritz_ when nextwith() can't find a suitable candidate, should it die like any other dispatch?
17:52 ash_ is there a reason the first one works but the second one does not?
17:52 moritz_ ash_: yes. () flattens, so you try to acces 2[1]
17:53 ash_ ah, okay
17:53 espadrine_ joined #perl6
17:54 TimToady however, eventually [1,2,3; 1,2][1][1] should work right
17:55 moritz_ is that the same as [1,2,3; 1,2][1; 1]?
17:55 TimToady since the ; makes it do something like "slice (1,2,3),(1,2)"
17:55 TimToady yes, it should work in the subscrpit too
17:55 PerlJam TimToady: would [;1,2][1][1] also work?
17:55 TimToady *script
17:56 TimToady should, the first one is just ()
17:57 mathw I look at that and I keep thinking () is the empty type
17:57 mathw brain's all gunked up still, clearly
17:57 TimToady the first slice is Nil  :)
17:57 lisppaste3 joined #perl6
17:57 TimToady but Nil isn't a type
17:57 mathw Either that, or I've been reading too much of the stuff posted on Planet Haskell lately :)
17:58 PerlJam PDL folks will be very happy I think
17:58 TimToady that's part of why it's there
17:58 mathw Looks like some nice stuff though, lots of fun with arrays of arrays of arrays of arrays
17:58 TimToady well, ; only buys you one level
17:58 TimToady but it's useful for readability
17:58 mathw yeah
17:58 mathw array of array in Perl 5 is always a bit of a mess
17:58 TimToady especially with multi-dim slicing subscripts
17:59 mathw oh gosh yes
17:59 mathw it's going to be so much easier to get out exactly the bit you want
18:00 TimToady [<a b c>; <d e f>][0,1; 1].say  should produce 'be'
18:01 hugme joined #perl6
18:01 TimToady assuming the slices inside ; still flatten out the implied ()
18:01 TimToady which I think they should
18:02 mathw I believe that might be up to you :)
18:02 moritz_ Juerd: it seems that on feather2 and feather3 /dev/pts is not mounted on reboot, which means that login fails each time
18:02 mathw It seems logical to me
18:02 mathw I look at that and think 'yes, that's right'
18:02 Juerd moritz_: I thought we agreed that not being able to log in was more secure :)
18:03 * TimToady snorts
18:03 mathw the only weird thing about the syntax is that the subscripting is kind of rotated 90 degrees compared to the list itself
18:03 moritz_ Juerd: aye; but somtimes I want more than security :-)
18:03 mathw but that's much less noticeable in what's likely to be the more common case of subscripting an identifier
18:03 TimToady mathw: yeah, I notice that :)
18:03 Psyche^ joined #perl6
18:03 Juerd moritz_: Oh.
18:03 mathw and I doubt people would appreciate a 2D syntax for this :)
18:04 mathw the only language I ever used with 2D syntax required a very heavyweight fancy editor to make it usable
18:04 PerlJam mathw: depends on which people
18:04 Juerd moritz_: This will take a while. I'm on slow gprs
18:04 mathw PerlJam: well there are always nutters aren't there :) Like me :D
18:04 moritz_ Juerd: I fixed feather2 for this time, but I'm not sure how to fix it permantently
18:05 TimToady that's what rc.local is for...
18:05 Juerd mmoritzThe fix is to put it in fstab
18:05 moritz_ and on feather   echo 'mypassword' | sudo -s $program doesn't work
18:05 moritz_ sudo: no tty present and no askpass program specified
18:06 TimToady rc.local is sort of like the eval of booting :)
18:06 moritz_ Juerd: the mount point is not even created on reboot
18:06 [particle] isn't python 2d syntax?
18:06 mathw [particle]: Not really, it just has significant whitespace
18:06 TimToady [particle]: I wasn't going to say it...
18:06 Juerd moritz_: You shouldn't put your password on a command line.
18:06 lue where is the command-line for Rakudo implemented? (where you set -e and so on)
18:06 TimToady but arguably using newline as syntax is 2D
18:06 moritz_ Juerd: I know - but I found no other option for sudo without a terminal
18:06 mathw [particle]: Python cares about newlines and indentation, but it's all relative - it doesn't assign significance to which character happens to be in the same column one row up
18:07 moritz_ Juerd: and since nobody could log in so far, nobody can see it on a process monitor :-)
18:07 TimToady indent is precisely about what happens to be directly above, for certain characters
18:08 Juerd moritz_: That's an assumption.
18:08 mathw Okay I'll concede that you can look at Python as having 2D syntax
18:08 mathw But use Epigram 1 for a while and then tell me it's 2D :)
18:08 * araujo imagines a 3D Perl
18:09 moritz_ Juerd: yes
18:09 * mathw imagines a computer which could display it nicely
18:09 salty-horse mathw, as opposed with perl being humanely incomprehensible 4D?
18:09 bkeeler joined #perl6
18:09 TimToady then there's Befunge...
18:10 lue what's the 3D equivalent of a matrix? (list, matrix, ------)
18:10 araujo a matrix of order 3?
18:10 araujo :P
18:10 meppl joined #perl6
18:11 moritz_ lue: tensors can have arbitrary dimension
18:11 TimToady ooh, no arbitrary limits--I like that!
18:11 moritz_ TimToady: well, I wasn't quite exact: integers greater than 0
18:12 moritz_ the most often used (at least by me) in 3D is the Levi-Civita tensor (sometimes also called Epsilon tensor)
18:13 moritz_ which you can use to describe the cross product in other notations
18:13 TimToady sounds a bit like a metaoperator :)
18:14 moritz_ kinda, yes
18:14 moritz_ (a cross b)_i = sum j,k epsilon_{i,j,k} a_j b_k
18:15 lue [[[1,2,3], [4,5,6], [7,8,9]], [[10,11,12], [13,14,15]... # big 3-matrix
18:15 * lue to wikipedia for tensors!
18:15 moritz_ (where physicists usually use the Einstein sum convention, where the sum is implied by two same indexes)
18:16 TimToady is there a #rs in 43 minutes?
18:17 jnthn erm
18:17 jnthn Good question. :-)
18:17 espadrine joined #perl6
18:17 TimToady what is the tensor describing #rs?  :)
18:18 _ilbot2 joined #perl6
18:18 Topic for #perl6is now »ö« | http://perl6.org/ | nopaste: http://paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: http://irc.pugscode.org/ | UTF-8 is our friend!
18:18 moritz_ maybe I will be
18:18 jnthn Aye
18:18 jnthn Don't see masak and mberends,
18:18 TimToady I can be, though I'm useless.
18:18 jnthn TimToady: You were actually kinda useful last week. :-)
18:19 lue what is #rs?
18:19 jnthn Anyway, I'll be about in 41 mins in the channel and we'll see what happens. :-)
18:19 TimToady where we discuss Radio Shack products :)
18:20 TimToady (really, rakudosketch)
18:20 jnthn lue: A temporarily regularish meeting to review progress on Rakudo, towards Rakudo *.
18:20 bkeeler I'm in for #rs
18:21 lue is it a freenode channel, or will it just be here?
18:21 moritz_ /join -freenode #rakudosketch
18:21 bkeeler Last time was in #rakudosketch
18:21 jnthn Yes, we'll do there.
18:21 jnthn Looks like we haz a log bot in there too.
18:23 moritz_ aye
18:23 lue it'll start in about 40 minutes, then?
18:24 * moritz_ missed the previous #rs's
18:24 jnthn Yes.
18:24 moritz_ do we pre-post reports llike #ps?
18:24 TimToady not that formal yet
18:24 jnthn moritz_: no
18:25 jnthn laundry and trying to work out something I'd like to eat, even though at the moment I mostly just feel sick. :-/
18:25 jnthn bbs
18:26 abra joined #perl6
18:26 lue If you want formalish things, I'm your guy! :)
18:28 daxim joined #perl6
18:28 Trashlord joined #perl6
18:28 * lue is currently "juggling" reading up on Lojban and examining the RT
18:29 daxim how do I run the spec suit with pugs?  I already have a git-svn checkout of the pugs repo and installed pugs from hackage
18:29 TimToady lojban has a stupid positional predicate syntax that is inconsistent across similar predicates
18:30 TimToady so basically all verbs are irregular... :(
18:30 TimToady at least, last time I looked...
18:30 stephenlb joined #perl6
18:30 lue According to them, lojban could be interpreted by a computer... (LojPerl ?)
18:31 TimToady sure, because irregular verb signatures are easy to a computer
18:31 lue http://lojban.org/publications/level0/brochure-utf/lojbanmo.html check #8! It has Perl!
18:33 lue what's this formality that pugssketch has had?
18:35 [particle] the formality is at #parrotsketch
18:35 [particle] pre-pasted reports of 'what i did; what i'll do; blockers'
18:36 [particle] monthly roadmap review
18:36 lue ...ah. Sounds a bit like busywork, esp. when you have a logger :D
18:39 bkeeler It encourages people to be prepared
18:39 [particle] it allows more time for focused conversation
18:40 lue I can see why we rakudo don't have those formalities. We're -Ofun :)
18:42 lue (not good... there isn't a single op in #rakudosketch)
18:45 lue TimToady: you're a linguist. Which is more "regular" and "logical": lojban or esperanto (aka, they both claim the same thing, which one satisfies their promises more)
18:45 solarion joined #perl6
18:53 diakopter linguistician
18:53 lue when is rakudosketch starting?
18:54 bkeeler 6 minutes and counting
18:54 lue really? 6 minutes? Alright then, I'll be back in a little bit (hope it will last a while! :) )
18:55 ShaneC joined #perl6
18:59 mberends joined #perl6
19:00 TimToady lue: I have not looked at esperanto at all; I'm already sufficiently eurocentric, which is why I'm studying Japanese. :)
19:02 nihiliad joined #perl6
19:05 Juerd lue: Depends on which regular you mean.
19:06 lue eh, it's alright, I'll learn both :P (anything to make a weird resumé)
19:06 Juerd lue: lojban is more structured, esperanto is closer to existing languages. I found esperanto easy to learn, but lojban hard.
19:06 lue Languages: English, French, German, Japanese, Esperanto, Lojban [ :) ]
19:07 lue (it hath begun: come to #rakudosketch)
19:07 Juerd Esperanto: Mi povas mangxi vitron, gxi min ne doloras.
19:07 Juerd Lojban: mi ka'e citka loi blaci .i la'edi'u na xrani mi
19:07 Juerd according to http://everything2.com/title/How+to+say+%2522I+can+eat+glass%252C+it+does+not+hurt+me%2522
19:08 lue how about "My hovercraft is full of eels"? :)
19:09 Juerd I have no idea :)
19:09 espadrine joined #perl6
19:10 lue rakudo: sleep 3; say "hi"
19:10 p6eval rakudo db0f85: OUTPUT«hi␤»
19:10 lue rakudo: sleep; say "hi"
19:10 p6eval rakudo db0f85: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤current instr.: 'sleep' pc 310451 (src/gen/core.pir:21161)␤»
19:10 lue rakudo: sleep Inf; say "hi"
19:11 p6eval rakudo db0f85:  ( no output )
19:11 lue rakudo: sleep 5000; say "hi"
19:11 p6eval rakudo db0f85:  ( no output )
19:13 sjohnson afternoon perl 6
19:13 moritz_ \o/ it's sjohnson
19:13 ash_ joined #perl6
19:14 sjohnson y0 moritz
19:15 lue how would I assign moritz_ to do the tests for a particular bug?
19:15 sjohnson you ask him nicely!
19:16 moritz_ lue: when you click on the 'basics' links over a bug report, you can assign an owner
19:16 sjohnson http://rt.perl.org/rt3/Public/?nossl=true
19:16 lue there already is an owner, so I guess I gvie ownership to moritz?
19:16 moritz_ yes
19:17 lue done! :)
19:17 lue ah! nvm. :(
19:17 lue #57294
19:19 molaf joined #perl6
19:20 ive joined #perl6
19:21 ash_ which part of the spec talks about list literals? like (1, 2) and [1, 2] ?
19:21 moritz_ S02
19:23 ash_ thanks moritz_
19:23 wolf2k_ubuntu joined #perl6
19:25 riffraff joined #perl6
19:26 lue not sure about #56700
19:27 * moritz_ takes a look
19:28 lue .u comet
19:28 phenny U+2604 COMET (☄)
19:28 ash_ hmmm, whats the difference between a Parcel and a List? (or an Array?)
19:28 ash_ .u snowman
19:28 phenny U+2603 SNOWMAN (☃)
19:31 pmichaud joined #perl6
19:31 pmichaud good afternoon, #perl6
19:31 bkeeler Heyas pm
19:31 espadrine joined #perl6
19:31 jnthn pmichaud: /join #rakudosketch
19:31 bkeeler There's a #rakudosketch underway
19:31 jnthn If you have time now.
19:31 espadrine joined #perl6
19:31 jnthn If not, we actually have a log bot this week!
19:31 pmichaud log bot ++
19:31 pmichaud I'll watch for a bit, but may have to leave suddenly
19:32 pmichaud is there a log where I can catch up on the current conversation?
19:32 moritz_ http://irclog.perlgeek.de/rakudosketch/today
19:32 moritz_ "of course" :-)
19:39 iblechbot joined #perl6
19:54 colomon rakudo: sub infix:<$$$>($a, $b) { $a ~ '$' ~ $b }; (<A B C D> >>$$$<< <f g h i>).perl.say;
19:54 p6eval rakudo db0f85: OUTPUT«Could not find non-existent sub &infix:<$$$>␤current instr.: '' pc -1 ((unknown file):-1)␤»
19:54 colomon rakudo: our sub infix:<$$$>($a, $b) { $a ~ '$' ~ $b }; (<A B C D> >>$$$<< <f g h i>).perl.say;
19:54 p6eval rakudo db0f85: OUTPUT«["A\$f", "B\$g", "C\$h", "D\$i"]␤»
19:55 salty-horse left #perl6
19:58 lue not sure about #65546
20:00 TimToady phone
20:01 jnthn lue: It's a really old ticket
20:02 jnthn Plus I've known people to run the Rakudo build from sourceforge more recently and it's worked.
20:02 jnthn I know we build properly on Win 7 now too, which we hadn't used to.
20:02 jnthn I think close it and say to re-report if latest versions have an issue.
20:06 lue alrighty, thanks jnthn!
20:06 lue (not that old, only 2009)
20:07 |espadrine| joined #perl6
20:13 lue rakudo: say [X] [<a b c>] xx 3
20:13 p6eval rakudo db0f85:  ( no output )
20:14 lue rakudo: say [~] [<a b c>] xx 3
20:14 p6eval rakudo db0f85: OUTPUT«a b ca b ca b c␤»
20:15 supernovus joined #perl6
20:23 eternaleye joined #perl6
20:27 lue afk
20:33 colomon joined #perl6
20:41 ruoso joined #perl6
20:48 pyrimidine joined #perl6
20:50 pyrimidine jnthn: any idea what's going on in #73774?
20:50 jnthn rakudo: say 0 || 0 || 1
20:50 p6eval rakudo db0f85: OUTPUT«0␤»
20:50 jnthn wtf.
20:50 pyrimidine yep
20:51 pyrimidine alpha: say 0 || 0 || 1
20:51 p6eval alpha 30e0ed: OUTPUT«1␤»
20:51 ash_ rakudo: say (0 || 0 || 1);
20:51 p6eval rakudo db0f85: OUTPUT«0␤»
20:51 ash_ rakudo: say (False || False || True);
20:51 p6eval rakudo db0f85: OUTPUT«0␤»
20:52 pyrimidine rakudo: say True && True && False
20:52 p6eval rakudo db0f85: OUTPUT«0␤»
20:53 pyrimidine alpha: say True && True && False
20:53 p6eval alpha 30e0ed: OUTPUT«0␤»
20:53 jnthn pyrimidine: No guesses off hand.
20:54 jnthn pyrimidine: I'll need to debug it.
20:54 pyrimidine seems limited to ||
20:54 jnthn Or someone else if they beat me to it.
20:54 jnthn At the moment I'm cooking noms though. :-)
20:54 pyrimidine I could look, just have no idea where to start
20:55 renormalist joined #perl6
20:55 kst joined #perl6
20:55 jnthn pyrimidine: See if the --target=parse/past/pir all look sane-ish could be a start.
20:55 pyrimidine ok
20:55 pyrimidine here's the finale:
20:56 pyrimidine rakudo: say 0 || 1
20:56 p6eval rakudo db0f85: OUTPUT«1␤»
20:56 pyrimidine so it's only when joining more than one
20:57 pyrimidine *one comparison
20:59 ash_ rakudo: say 1 && 1 && 0;
20:59 p6eval rakudo db0f85: OUTPUT«0␤»
21:00 snarkyboojum guten moaning perl 6 hacker types :)
21:05 * jnthn afk, nomming noms.
21:07 pmurias joined #perl6
21:10 lisppaste3 snarkyboojum pasted "An attempt at adding iffy, diffy and fiddly :)" at http://paste.lisp.org/display/96843
21:10 nadim joined #perl6
21:11 snarkyboojum I checked a couple of parse trees and they looked good (i.e. iffy => 1) etc
21:12 snarkyboojum I was trying to add in the panic for token infix_prefix_meta_operator:sym<!> from STD.pm, but that meant porting the can_meta method, and I couldn't work out how to do stuff like '$<infixish><O><iffy>' in Grammar.pm
21:12 supernovus use SomeModule :ALL;  # with 'alpha', this works, with 'master' it dies with Confused at line 8, near "use SomeModule "
21:13 colomon snarkyboojum++
21:13 snarkyboojum even if it's not used, was a good learning experience (of sorts) :)
21:15 snarkyboojum colomon: :) critique away!
21:16 colomon how have you tested it?
21:17 snarkyboojum I'm not sure if the precedence stuff should just be defined with :iffy, instead of :iffy<1> at the top
21:17 snarkyboojum just run make specttest to make sure it didn't break anything (but that's not really testing it methinks) :)
21:18 snarkyboojum there are other methods in STD.pm which use this information, and they're not ported across
21:18 snarkyboojum like can_meta etc
21:18 snarkyboojum that'd be the real test - if I could work out how to port those across and use them
21:20 snarkyboojum which is why I was trying to get that stuff implemented for infix_prefix_meta_operator:sym<!>
21:20 snarkyboojum e.g where 4 !* 3 throws an error
21:20 colomon right.
21:20 snarkyboojum because they'll use fiddly and iffy
21:20 snarkyboojum :)
21:21 snarkyboojum so if anyone can tell me how to port this sort of thing '$<infixish><O><iffy>', I'll have a bash :)
21:21 jnthn snarkyboojum: If $<infixish><O><iffy> fails to work
21:21 jnthn Also try $<infixish><OPER><O><iffy>
21:22 snarkyboojum jnthn: there is going to be a different method right?
21:22 snarkyboojum jnthn: ok cool will give it a whirl
21:22 snarkyboojum I noticed that there is a copyO method to replace '$<O> = $<infixish><O>;' right?
21:23 snarkyboojum or something similar
21:23 snarkyboojum thought something similar might be needed for $<infixish><O><iffy> type things
21:23 snarkyboojum (no real clue tho) :)
21:25 snarkyboojum other than that I've just eyeballed the output from --target=parse :)
21:25 pyrimidine rakudo: say Mu // Mu // 1
21:25 snarkyboojum will have another go at getting can_meta in there
21:25 p6eval rakudo db0f85: OUTPUT«Mu()␤»
21:25 jnthn snarkyboojum: I think those will work.
21:25 jnthn Maybe with adding <OPER>
21:25 pyrimidine rakudo: say Mu // 1
21:25 p6eval rakudo db0f85: OUTPUT«1␤»
21:26 snarkyboojum jnthn: groovy, will let you know how I travel
21:33 snarkyboojum also there's not 'dba' attribute in Grammar.pm, so what is used there when STD.pm does stuff like '$op<O><dba>'
21:33 snarkyboojum s/not/no/
21:33 jnthn We can't do that yet, I don't think.
21:35 jnthn iirc it's mostly used for error messgae generation though?
21:35 snarkyboojum just seems to be a user readable string for errors
21:35 snarkyboojum yeah
21:35 snarkyboojum not just errors perhaps, but user readable goodness :)
21:35 jnthn We may have to settle with slightly less awesome errors for now.
21:37 lue how do you accept input from the user? as in "What is your favorite number?>", then the user types an answer
21:37 jnthn my $answer = prompt "What...";
21:37 jnthn rakudo: my $answer = prompt "What is the first line of the Austrian national anthem?"; say $answer;
21:37 p6eval rakudo db0f85: OUTPUT«What is the first line of the Austrian national anthem?Land der Berge, Land am Strome,␤»
21:39 lue p6eval ought to accept input :)
21:39 lue TimToady (i think he misunderstood) showed me $*IN.lines
21:39 lue rakudo: say $*IN.lines
21:39 p6eval rakudo db0f85: OUTPUT«Land der Berge, Land am Strome,Land der Äcker, Land der Dome,Land der Hämmer, zukunftsreich!Heimat bist du großer Söhne,Volk, begnadet für das Schöne,vielgerühmtes Österreich,vielgerühmtes Österreich!Heiß umfehdet, wild umstrittenliegst dem Erdteil du inmitten,einem starken
21:39 p6eval ..Herzen …
21:39 pyrimidine rakudo: 0 || ( 0 || 1 )
21:39 p6eval rakudo db0f85:  ( no output )
21:39 lue (I translated, something about how great Austria is)
21:40 pyrimidine rakudo: say 0 || ( 0 || 1 )
21:40 p6eval rakudo db0f85: OUTPUT«1␤»
21:41 lisppaste3 snarkyboojum pasted "Broken attempt at porting can_meta" at http://paste.lisp.org/display/96845
21:42 snarkyboojum this doesn't work :| it causes an error when rebuilding Rakudo "Can't negate == because  operators are not iffy enough at line 215" :)
21:42 snarkyboojum so I'm assuming that the call to <?{ $<infixish><OPER><O><iffy> }> isn't doing the right thing
21:43 riffraff joined #perl6
21:43 lue nopaste works again \o/
21:43 snarkyboojum also the gap between 'because' and 'operators' in that error is the lack of :dba
21:45 jnthn The grouping in that regex looks...odd.
21:45 jnthn snarkyboojum: I'm kinda distracted with $other-non-perl6-thing atm, sorry...will look more in a little bit.
21:46 snarkyboojum jnthn: ok that'd be great
21:48 lue rakudo: say index("hello",2,2)
21:48 p6eval rakudo db0f85:  ( no output )
21:48 lue rakudo: say index("hello",0,2)
21:48 p6eval rakudo db0f85:  ( no output )
21:48 lue rakudo: say "hello".index(2,2)
21:49 p6eval rakudo db0f85:  ( no output )
21:49 lue rakudo: say "I work"
21:49 p6eval rakudo db0f85: OUTPUT«I work␤»
21:49 lue rakudo: say substr("hello",2,2)
21:49 p6eval rakudo db0f85: OUTPUT«ll␤»
21:50 lue rakudo: say "hello".length
21:50 p6eval rakudo db0f85: OUTPUT«Method 'length' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
21:50 lue rakudo: say length("hello")
21:50 p6eval rakudo db0f85: OUTPUT«Could not find non-existent sub &length␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
21:50 lue rakudo: say "hello".len
21:50 p6eval rakudo db0f85: OUTPUT«Method 'len' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
21:50 snarkyboojum rakudo: say "hello lue o/"
21:50 p6eval rakudo db0f85: OUTPUT«hello lue o/␤»
21:51 jnthn .chars
21:51 snarkyboojum rakudo: say say "hello".bytes
21:51 p6eval rakudo db0f85: OUTPUT«5␤1␤»
21:51 snarkyboojum oops ;)
21:52 snarkyboojum rakudo: say "hello".code
21:52 p6eval rakudo db0f85: OUTPUT«Method 'code' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
21:53 lue rakudo: "hello".bytes
21:53 p6eval rakudo db0f85:  ( no output )
21:53 lue rakudo: say "hello".bytes
21:53 p6eval rakudo db0f85: OUTPUT«5␤»
21:53 snarkyboojum akudo: say "hello".chars
21:54 snarkyboojum rakudo: "bonjour".chars.say
21:54 p6eval rakudo db0f85: OUTPUT«7␤»
21:54 snarkyboojum length and size don't work as they don't specify a unit
21:54 snarkyboojum or rather aren't implemented for strings
21:55 lue S32 says length is banned in P6 :(
21:55 snarkyboojum aye
21:56 snarkyboojum because they don't specify a unit.. i.e. length of what?
21:56 * lue is currently writing a game genie code converter to find some patterns...
21:57 snarkyboojum rakudo: say "sounds fun".codes
21:57 p6eval rakudo db0f85: OUTPUT«Method 'codes' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
21:58 snarkyboojum alpha: say "sounds fun".codes
21:58 p6eval alpha 30e0ed: OUTPUT«Method 'codes' not found for invocant of class 'Str'␤in Main (file src/gen_setting.pm, line 324)␤»
21:59 snarkyboojum rakudo: "whoops".bytes("UTF-16").say
21:59 p6eval rakudo db0f85: OUTPUT«No applicable candidates found to dispatch to for 'bytes'. Available candidates are:␤:(Mu ;; *%_)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
21:59 lue mainly to find patterns in some codes I've uncovered,and to practice writing common P6 operations :)
22:00 lue rakudo: say index("hello","ll")
22:00 p6eval rakudo db0f85: OUTPUT«2␤»
22:02 snarkyboojum rakudo: "hello".index('ll').say
22:02 p6eval rakudo db0f85: OUTPUT«2␤»
22:02 jhuni joined #perl6
22:03 wknight8111 joined #perl6
22:04 lue rakudo: say "16".%x
22:04 p6eval rakudo db0f85: OUTPUT«Confused at line 11, near "say \"16\".%"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
22:05 lue rakudo: say "16".fmt{%x}
22:05 p6eval rakudo db0f85: OUTPUT«Symbol '%x' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
22:05 lue rakudo: say "16".fmt{"%x"}
22:05 p6eval rakudo db0f85: OUTPUT«1␤»
22:05 lue rakudo: say 16.fmt{"%x"}
22:05 p6eval rakudo db0f85: OUTPUT«1␤»
22:07 breinbaas joined #perl6
22:07 espadrine joined #perl6
22:14 Alias joined #perl6
22:15 lue rakudo: say 1 ~ 0
22:15 p6eval rakudo db0f85: OUTPUT«10␤»
22:15 lue rakudo: say (1 ~ 0).WHAT
22:15 p6eval rakudo db0f85: OUTPUT«Str()␤»
22:17 lue rakudo: say "hello".chars
22:17 p6eval rakudo db0f85: OUTPUT«5␤»
22:17 lue rakudo: my @a=1,2,3,4; say @a.chars
22:17 p6eval rakudo db0f85: OUTPUT«7␤»
22:18 lue rakudo: my @a=1,2,3,4; say @a
22:18 p6eval rakudo db0f85: OUTPUT«1234␤»
22:18 lue rakudo: my @a=1,2,3,4; say @a.length
22:18 p6eval rakudo db0f85: OUTPUT«Method 'length' not found for invocant of class 'Array'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
22:18 lue rakudo: my @a=1,2,3,4; say @a.bytes
22:18 p6eval rakudo db0f85: OUTPUT«7␤»
22:18 jnthn .elems for thingies in the array
22:20 lue thank you, jnthn.
22:20 lue rakudo: my @a=1,2,3,4; say @a.elems
22:20 p6eval rakudo db0f85: OUTPUT«4␤»
22:20 lue I wonder why .bytes and .chars come out 7, though
22:20 lue rakudo: my @a=1,2,3,4; say @a.str
22:20 p6eval rakudo db0f85: OUTPUT«Method 'str' not found for invocant of class 'Array'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
22:22 jnthn Str
22:22 lue one more question; how do you convert to binary? (I am horrible at remembering this fact)
22:22 TimToady someday the error message will say "(did you mean Str?)"
22:23 TimToady rakudo doesn't support binary yet
22:23 lue nooo! then to hex?
22:23 TimToady oh, you mean binary numbers?
22:23 lue yes!
22:23 TimToady hmm
22:23 lue (what did you think I meant, I wonder... :) )
22:24 TimToady say 7.fmt('%b')
22:24 TimToady rakudo: say 7.fmt('%b')
22:24 p6eval rakudo db0f85: OUTPUT«111␤»
22:24 lue I knew it was something like that :)
22:24 lue rakudo: say 7.fmt('%b').WHAT
22:24 p6eval rakudo db0f85: OUTPUT«Str()␤»
22:25 TimToady I thought you meant binary data, which would require buffer types
22:26 jhuni joined #perl6
22:26 pyrimidine left #perl6
22:27 lue ah (I don't need to read binary files just yet :) )
22:32 sorear Can I just cheat a la Perl5 and store my binary data in ISO-8859-1?
22:33 TimToady parrot doesn't even support that right yet.  :)
22:33 sorear (I *do* need to read binary files, or rather, encoding-agnostic text from a socket)
22:33 lue does C<use v5.10;> work yet, that's the question :)
22:33 sorear no, and that's not my problem
22:33 sorear somebody with >1.5GB of core needs to add versioned use and use:from to rakudo
22:33 sorear meanwhile I, with my measly 0.375, will continue to hack binding
22:34 lue rakudo: my $a= int('5'); say $a
22:34 p6eval rakudo db0f85: OUTPUT«Could not find non-existent sub &int␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
22:34 lue rakudo: say :2<1011010110>
22:34 p6eval rakudo db0f85: OUTPUT«726␤»
22:35 sorear TimToady: it doesn't!?
22:35 lue rakudo: my $a="10"; say :2<$a>
22:35 p6eval rakudo db0f85: OUTPUT«Malformed radix number at line 11, near "<$a>"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
22:35 lue rakudo: my $a="10"; say :2($a)
22:35 p6eval rakudo db0f85: OUTPUT«2␤»
22:37 lichtkind joined #perl6
22:37 sorear Incidentally, I had a really crazy idea the other day.
22:37 sorear Let's scrap backward compatibility in Rakudo.
22:37 TimToady didn't we just do that?
22:38 sorear Instead, when Rakudo sees use 6.0.23;, it downloads Rakudo 6.0.23, installs it, and then uses Parrot multilanguage stuff to bind the code in the inner block.
22:39 lue ooh, shiny proposition
22:41 nihiliad joined #perl6
22:41 TimToady std: use 6.0.23;
22:41 p6eval std 30192: OUTPUT«[31m===[0mSORRY![31m===[0m␤Number contains two decimal points (missing 'v' for version number?) at /tmp/SMb6UyvKio line 1:␤------> [32muse 6.0.[33m⏏[31m23;[0m␤FAILED 00:01 107m␤»
22:41 lue std: use v6.0.23;
22:41 p6eval std 30192: OUTPUT«ok 00:01 104m␤»
22:42 * sorear wonders if STD_P4.pm is going to happen
22:42 TimToady STD_P5 hasn't happened yet, except in an existential sense; it's complete glop at the moment, except for the Regex part
22:43 TimToady one of my many #1 priority projects :)
22:44 lue is STD_P5 supposed to be STD for perl 5?
22:46 lue rakudo: say (2:<1010>).WHAT
22:46 p6eval rakudo db0f85: 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)␤»
22:47 lue rakudo: say 2:<1010>
22:47 p6eval rakudo db0f85: OUTPUT«Confused at line 11, near "say 2:<101"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
22:47 lue rakudo: say 2:('1010')
22:47 p6eval rakudo db0f85: OUTPUT«Confused at line 11, near "say 2:('10"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
22:47 lue erm...
22:50 jhuni say [+] (1,0,1,0).reverse.pairs.map: { ?.value ?? 2 ** .key !! 0 }
22:52 lichtkind lue: sheers
22:53 lue sheers?
22:53 lue rakudo: say 16.fmt('%x')
22:53 lichtkind lue: i mean cheers
22:53 p6eval rakudo db0f85: OUTPUT«10␤»
22:53 lue cheers!
22:53 lue rakudo: say 16.fmt('%x').WHAT
22:53 p6eval rakudo db0f85: OUTPUT«Str()␤»
22:53 TimToady it's :2, not 2:
22:54 TimToady STD_P5 is supposed to parse Perl 5 using a STD grammar
22:54 lue oh, duh :)
22:54 TimToady rakudo: say :2<1010>
22:54 p6eval rakudo db0f85: OUTPUT«10␤»
22:54 snarkyboojum wow I got something working in Grammar.pm
22:55 lue \o/
22:55 snarkyboojum std: 4 !* 5
22:55 p6eval std 30192: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't negate * because multiplicative operators are not iffy enough at /tmp/VrAYQjMSwK line 1:␤------> [32m4 !*[33m⏏[31m 5[0m␤FAILED 00:01 106m␤»
22:55 lue hee hee (funny error)
22:55 TimToady std: say 2:<1010>
22:55 snarkyboojum > 4 !* 5
22:55 snarkyboojum Can't negate * because  operators are not iffy enough at line 1, near " 5\n"
22:55 p6eval std 30192: OUTPUT«ok 00:01 106m␤»
22:55 lue \o/
22:55 snarkyboojum rakudo: 4 !* 5
22:55 p6eval rakudo db0f85:  ( no output )
22:55 TimToady yay.  btw, :iffy is fine, since the default is "true"
22:56 TimToady and :!iffy is "false"
22:56 snarkyboojum ah cool
22:56 * sorear imagines a STD_P5 and Parrot based Ponie
22:56 lichtkind TimToady: would you count andthen and orelse to the conditionals?
22:57 TimToady how do you define "conditional"
22:57 sjohnson ( ╹◡╹)
22:57 lue woah! smiley face!
22:57 TimToady that's the scariest smiley ever
22:57 lichtkind TimToady: a category that fits to if, unles when ....
22:58 TimToady do you count "and" and "or"?
22:58 lichtkind TimToady: thats no decided either yet :)
22:58 TimToady these are frequently *used" as conditionals
22:58 lichtkind TimToady: yes
22:58 TimToady whether you call them conditionals or not is relatively arbitrary and subjective
22:59 lue rakudo: say (:16('1CF8')+0x8000).fmt('%x')
22:59 p6eval rakudo db0f85: OUTPUT«9cf8␤»
22:59 lue rakudo: say (:16('1CF8')+0x8000).fmt('%x').uc
22:59 p6eval rakudo db0f85: OUTPUT«9CF8␤»
22:59 TimToady is "dog" a noun?  most would say yes, but you can dog someone as a verb, on the dog days of summer, as an adjective
23:00 TimToady in tagmemics you can frequently use one thing as something else
23:00 sjohnson that face == how i feel about perl
23:00 lichtkind TimToady: yes but its a subcatogory of flow control and i just want to make a documentation where everything has its place
23:00 TimToady how...german  :)
23:00 lichtkind sjohnson: that face was wonderful
23:01 lichtkind TimToady: yes sir !
23:02 sjohnson ( ° ー°) == when i learn about a good feature of Perl 6
23:03 lue ^^ would be very japanese of you :)
23:06 sorear #parrot is fixing leaks
23:06 lue \o/ \o/
23:06 snarkyboojum std: 3 !, 5
23:06 p6eval std 30192: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't negate , because comma operators are not iffy enough at /tmp/25ua3fHJWu line 1:␤------> [32m3 !,[33m⏏[31m 5[0m␤FAILED 00:01 108m␤»
23:06 jnthn #parrot++
23:06 lue when they fix them, I want to go over there and send a bararage of \o/
23:06 lue and then leave
23:06 jnthn snarkyboojum: OK, done with @other_bit
23:06 lue \o/
23:07 jnthn snarkyboojum: How're you getting along with the iffy stuff?
23:07 lichtkind TimToady: i just hope you see some relevance in having sorted docs
23:07 snarkyboojum jnthn: cool - I have something working, but it's probably not correct :)
23:07 jnthn OK. Want to nopaste latest patch so I can take a peek? :-)
23:07 snarkyboojum jnthn: will do :)
23:10 snarkyboojum Mmm.. how to build a patch based off the original rakudo master and my latest version of a file :|
23:12 lisppaste3 snarkyboojum pasted "Another attempt at an iffy/diffy/fiddly/can_meta port" at http://paste.lisp.org/display/96851
23:12 snarkyboojum this will give you an idea of the mess ;)
23:13 snarkyboojum I can see if the operator is iffy or not by doing $<infixish><infix><O><iffy>, which I'm not sure if right :)
23:14 jnthn I'd have expected <infixish><OPER><O><iffy> to do it more safely
23:14 snarkyboojum yeah, but that didn't seem to work :|
23:14 jnthn Oh.
23:14 jnthn Hmm.
23:15 lisppaste3 snarkyboojum pasted "example iffy parse tree" at http://paste.lisp.org/display/96852
23:16 snarkyboojum if I do <infixish><OPER> I guess that takes me to the [0] block (for want of better terminology)
23:17 jnthn Yes, but it should just be an alias to the <infix> one
23:17 rgrau` joined #perl6
23:17 jnthn Apart from other things in infixish also set that.
23:17 lue .u feff
23:17 phenny U+FEFF ZERO WIDTH NO-BREAK SPACE ()
23:17 jnthn I'm just worried going for <infinish><infix> right off will break nested meta-operators
23:17 snarkyboojum perhaps I'm reading the parse tree incorrectly
23:17 lue How did that get in my file? (U+FEFF)
23:18 snarkyboojum yeah - I don't know enough, but if feel brittle to me :)
23:18 snarkyboojum feels
23:18 meppl joined #perl6
23:18 jnthn Anyway, that aside, the patch looks along the right lines.
23:18 sorear TimToady: You were saying earlier that Parrot cannot currently correctly handle ISO-8859-1 text.  Could you explain the specific traps and problems for me?
23:19 jnthn snarkyboojum: And if you s/infix/OPER it breaks, yes?
23:19 snarkyboojum yes
23:20 snarkyboojum well things compile
23:20 snarkyboojum but it doesn't seem to see the iffy-ness
23:20 jnthn Hm
23:21 jnthn I'm not too sure why that'd happen.
23:21 jnthn (looking at infixish)
23:22 jnthn (Not saying it isn't, just that if it is, something else is adrift.)
23:22 jnthn The \parse[0]
23:22 jnthn means "I've already dumped this node elsewhere", btw.
23:22 lue I thought I put #! at the beginning of my file (#!/usr/bin/env perl6), but my hex editor says #! (how did that happen)
23:22 niros joined #perl6
23:23 jnthn lue: something has added a bom at the start of the file.
23:24 snarkyboojum but does \parse[0] point OPER to the [0] block i.e. below <infix_prefix_meta_operator> ?
23:24 lue "\ufeff##!/usr/b" is what comes up in the perl error message
23:24 jnthn Don't think so
23:24 jnthn We do in infixish:
23:25 jnthn | <OPER=infix> <![=]>
23:25 jnthn That should mean that OPER is whatever infix is.
23:26 snarkyboojum ah ok
23:27 snarkyboojum I'll keep playing around and see if I can learn anything else or even fix it :)
23:28 jnthn OK
23:28 wknight8111 joined #perl6
23:28 jnthn If you have a full patch, I'm happy to have a play with it.
23:29 snarkyboojum jnthn: k - will see if I can generate one ;)
23:30 ruoso joined #perl6
23:30 snarkyboojum jnthn: I'm using git format-patch HEAD^ to generate a patch.. any hints on how to generate a full patch? :)
23:30 lue rakudo: say index("APZLGITYEOXUKSVN","S")
23:30 p6eval rakudo db0f85: OUTPUT«13␤»
23:33 quietfanatic lue: FEFF is used as a byte-order mark, for differentiating between little-endian and big-endian UTF-16, but
23:33 quietfanatic some editors put it into UTF-8 files too.
23:34 sorear this is a very bad idea on shebang platforms
23:34 quietfanatic And shebang lines get famously muckled up by that.
23:34 jnthn snarkyboojum: Sorry, no...I've got a commit bit so I'm kinda not used to producing patches. :-/
23:34 jnthn (Well, I've had one on every git repo I've worked on...)
23:34 snarkyboojum jnthn: goodio - shouldn't be too hard to work out :)
23:35 jnthn rakudo: say 0 || 0 || 1
23:35 p6eval rakudo db0f85: OUTPUT«0␤»
23:35 jnthn Think I've fixed that one. ;-)
23:35 jnthn What a bug!
23:38 lue rakudo: say 0 or 0 or 1
23:38 p6eval rakudo db0f85: OUTPUT«0␤»
23:38 lue rakudo: say (0 or 0 or 1)
23:38 p6eval rakudo db0f85: OUTPUT«1␤»
23:38 colomon joined #perl6
23:38 lue rakudo: say (0 || 0 || 1)
23:38 p6eval rakudo db0f85: OUTPUT«0␤»
23:38 jnthn Think that's right due to precednece.
23:38 jnthn But that one wiht || is certaily a bug. :-)
23:38 jnthn Well, ex-bug provided my patch spectests ok.
23:41 lue (right now i'm dealing with a non-existant sub i error (which I'm not calling as a sub, but as $i))
23:51 sorear #parrot thinks it has fixed most of the leaks on its end
23:51 sorear now we just need to memory-optimize rakudo
23:52 jnthn Seems they've gone from 1.5 GB to 700 MB or so, glancing the log?
23:52 jnthn That's pretty dramatic!
23:53 lue in RAM usage?
23:54 jnthn Appears so.
23:54 jnthn If I'm understanding correctly, anyways.
23:54 lue ^.^ \o/ ^.^ \o/ ^.^ \o/ ^.^ \o/ ^.^ \o/ ^.^ \o/ ^.^ \o/ ^.^ \o/ ^.^ \o/ ^.^
23:57 lue rakudo: say 32768.fmt('%x')
23:57 p6eval rakudo db0f85: OUTPUT«8000␤»
23:58 sorear jnthn: Dramatic but not quite good enough.
23:59 jnthn sorear: It's a step in the right direction. We need more of them, yes.
23:59 * sorear wants to see rakudo boot in 100

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

Perl 6 | Reference Documentation | Rakudo