»ö« | 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 !*⏏ 0FAILED 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, "¬results" | |||
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«03» | ||
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«03» | ||
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 !*⏏ 4FAILED 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 2current 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 2current 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 2current 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 - 12 - 23 - 34 - 45 - 56 - 67 - 78 - 89 - 910 - 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 2current 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 &xcurrent 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 stringcurrent 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 stringcurrent 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 stringcurrent 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 !*⏏ 4FAILED 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 &wantarraycurrent 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-infixFAILED 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 traitFAILED 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_12current 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 loopFAILED 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 | ||
..loopFAILED 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 modecurrent 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 modecurrent 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 modecurrent 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 modecurrent 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«123» | ||
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 *⏏).sayFAILED 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 loopFAILED 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«123» | ||
ash_ | it seems to be leaking a helper | ||
TimToady | pugs: (1,2,3)>>.say | ||
p6eval | pugs: OUTPUT«231» | ||
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«11» | ||
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«2get_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 1current 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 &lengthcurrent 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«51» | ||
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 &intcurrent 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 11current 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 !*⏏ 5FAILED 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 !,⏏ 5FAILED 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 |