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