»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:05
whiteknight joined
00:23
wolfman2000 joined
01:09
lestrrat left
01:10
lestrrat joined
01:11
zamolxes joined
01:17
woosley joined
01:19
whiteknight left
01:22
Limbic_Region joined
01:51
jaldhar_ joined
|
|||
TiMBuS | nom: 'word'.split('').reduce(&infix:<~>).say | 01:55 | |
p6eval | nom 1c2c2d: OUTPUT«can only reduce with arity 2 for now in method reduce at src/gen/CORE.setting:4233 in block <anon> at /tmp/0jH6qhTaUN:1 in <anon> at /tmp/0jH6qhTaUN:1» | ||
TiMBuS | oh what | ||
'word'.split('').reduce(*~*) | |||
uh | |||
nom: 'word'.split('').reduce(*~*).say | 01:56 | ||
p6eval | nom 1c2c2d: OUTPUT«word» | ||
TiMBuS | nom: &infix:<~>.arity.say | ||
p6eval | nom 1c2c2d: OUTPUT«1» | ||
TiMBuS | ... oh | ||
i forget if this works but | 01:58 | ||
nom: &infix:<~>.signature.say | |||
p6eval | nom 1c2c2d: OUTPUT«:(Any)» | ||
TiMBuS | are all infixes like this? | ||
nom: &infix:<+>.signature.say | |||
p6eval | nom 1c2c2d: OUTPUT«:(Any $a, Any $b)» | ||
TiMBuS | :I | 01:59 | |
jlaire | b: &infix:<~>.signature.say | ||
p6eval | b 1b7dd1: OUTPUT«get_attr_str() not implemented in class 'Perl6MultiSub' in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp» | ||
jlaire | b: &infix:<~>.arity.say | ||
p6eval | b 1b7dd1: OUTPUT«Method 'arity' not found for invocant of class 'Perl6MultiSub' in main program body at line 22:/tmp/WnaBBKqLa4» | ||
TiMBuS | nom: "1234".split('').reduce(&infix:<+>).say | ||
p6eval | nom 1c2c2d: OUTPUT«10» | 02:00 | |
TiMBuS | nom: "1234" ==> split('') ==> [+] ==> say | ||
p6eval | nom 1c2c2d: OUTPUT«===SORRY!===Confused at line 1, near "\"1234\" ==>"» | ||
TiMBuS | asking for too much i see | 02:01 | |
std: "1234" ==> split('') ==> [+] ==> say | |||
p6eval | std 20ae3bd: OUTPUT«===SORRY!===Preceding context expects a term, but found infix ==> instead at /tmp/238GJwzMxC line 1:------> "1234" ==> split('') ==> [+] ⏏==> sayParse failedFAILED 00:01 121m» | ||
jlaire | nom: say [~] 'word'.comb | 02:02 | |
p6eval | nom 1c2c2d: OUTPUT«word» | ||
jlaire | nom: say [+] 1234.comb | ||
p6eval | nom 1c2c2d: OUTPUT«10» | ||
TiMBuS | forgot about comb | ||
i thought feeding a reduce operator would be allowed tho | 02:03 | ||
02:06
Trashlord left
02:08
Trashlord joined,
Trashlord left
02:10
Trashlord joined,
skangas left
02:13
skangas joined
02:29
dayangkun joined
02:38
dayangkun left
03:14
odoacre joined
03:17
kst left
03:19
kst joined
|
|||
TimToady | niecza: <a b c>.grep(/^b/) | 03:25 | |
p6eval | niecza v10-39-g64c5778: OUTPUT«Unhandled Exception: cannot bind $/ in KERNEL grep at /home/p6eval/niecza/lib/CORE.setting line 1567 (CORE Regex.ACCEPTS @ 3)  at line 0 (KERNEL grep @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 111 (CORE Any.grep @ 2)  at /tmp/AAMyqvJQ2Y l… | ||
TimToady | kaboom | ||
sorear: ^^ | |||
sorear | TimToady: known bug, fixed in /serialize | 03:29 | |
03:31
packetknife left
|
|||
TimToady | mkay, working around with grep(*.match: /^b/) for now | 03:33 | |
sorear | eh, it's a one-line fix | 03:39 | |
sorear tries to apply it to master | |||
03:42
envi joined
|
|||
sorear | niecza> <a b c>.grep(/^b/) | 03:52 | |
b | |||
TimToady | perl6: say so '2' ~~ (1 .. 9) | ||
p6eval | rakudo 1c2c2d: OUTPUT«Bool::True» | ||
..pugs: OUTPUT«*** No such subroutine: "&so" at /tmp/2dY3BBhXQs line 1, column 5 - line 2, column 1» | |||
..niecza v10-39-g64c5778: OUTPUT«Bool::False» | |||
dalek | ecza: a57ed3d | sorear++ | lib/Kernel.cs: Fix grep(Regex) (TimToady++ for noticing) |
03:53 | |
TimToady | there's another little buglet I ran into | ||
sorear | I don't think we ever did find a usable explanation of what &infix:<cmp> does with mixed type arguments | 03:54 | |
03:55
Chillance left
|
|||
TimToady | no, but .. should probably not be relying on cmp for that anyway, given it already needs to know which domain its interval is in | 04:02 | |
sorear | I thought intervals existed in the abstract domain of cmp | 04:04 | |
hmm | |||
dalek | ecza/serialize: 8184302 | sorear++ | lib/Serialize.cs: Start draft of serialization/deserialization code |
04:07 | |
TimToady | S03:3395 indicates that numeric ranges coerce to numeric | 04:08 | |
it's only non-numeric ranges that defer to cmp | |||
04:08
abercrombie left
|
|||
TimToady | anyway, not a showstopper, since '1' .. '9' works fine in this case | 04:11 | |
04:13
agentzh joined
|
|||
sorear | *nod* | 04:16 | |
sorear is trying to work out the relationship between serialization units and parse units, if there is one | |||
04:46
dark_x joined
04:48
dark_x left
04:49
dark_x joined
04:55
Limbic_Region left
|
|||
moritz | good morning | 04:58 | |
05:01
alvis left
05:17
daniel-s joined,
alvis joined
|
|||
sorear | good morning moritz ! | 05:27 | |
back from walk and I realize the problem is even more complicated than I thought :/ | 05:29 | ||
dalek | ecza/serialize: cdde7e0 | sorear++ | lib/Serialize.cs: Notes on four kinds of module scope |
05:36 | |
05:40
dark_x left
05:47
risou is now known as risou_awy
05:53
lue left
05:56
dark_x joined
|
|||
moritz | masak: you might be interested in blogs.perl.org/users/jeffrey_kegler...tml#SERIES | 06:03 | |
TimToady | niecza: say ord("\cZ") | 06:04 | |
p6eval | niecza v10-40-ga57ed3d: OUTPUT«===SORRY!===Action method charspec not yet implemented at /tmp/dln1iZWw50 line 1:------> say ord("\cZ⏏")Action method backslash:c not yet implemented at /tmp/dln1iZWw50 line 1:------> say ord("\cZ⏏"… | ||
moritz | TimToady: as a placeholder, is @_ bound to a block or to a routine? | 06:05 | |
sub f { { @_.join } } # is a parameter of the inner block, or of f? | 06:06 | ||
06:07
molaf joined
|
|||
moritz | perl6: sub f { { @_.join } }; f(1, 2, 3).(4, 5, 6) | 06:07 | |
p6eval | pugs: OUTPUT«*** Cannot cast from VStr "123" to Pugs.AST.Types.VCode (VCode) at /tmp/ghZY7tzRYX line 1, column 25 - line 2, column 1» | ||
..niecza v10-40-ga57ed3d: OUTPUT«Unhandled Exception: Unable to resolve method slurpy_get_inline in class Parameter at /home/p6eval/niecza/src/Sig.pm6 line 62 (Sig Parameter.bind_inline @ 7)  at /home/p6eval/niecza/src/Sig.pm6 line 95 (Sig C62_ANON @ 2)  at line 0 (KERNEL map @ 2)… | |||
..rakudo 1c2c2d: OUTPUT«Too many positional parameters passed; got 3 but expected 0 in sub f at /tmp/VIidrqGdRt:1 in block <anon> at /tmp/VIidrqGdRt:1 in <anon> at /tmp/VIidrqGdRt:1» | |||
moritz | rakudo++ # only sane error message | 06:08 | |
perl6: sub f { { @_.join } }; f().(4, 5, 6) | |||
p6eval | niecza v10-40-ga57ed3d: OUTPUT«Unhandled Exception: Unable to resolve method slurpy_get_inline in class Parameter at /home/p6eval/niecza/src/Sig.pm6 line 62 (Sig Parameter.bind_inline @ 7)  at /home/p6eval/niecza/src/Sig.pm6 line 95 (Sig C62_ANON @ 2)  at line 0 (KERNEL map @ 2)… | ||
..pugs: OUTPUT«*** Cannot cast from VStr "" to Pugs.AST.Types.VCode (VCode) at /tmp/tW61RXJrKE line 1, column 25 - line 2, column 1» | |||
..rakudo 1c2c2d: OUTPUT«Method 'postcircumfix:<( )>' not found for invocant of class 'Str' in <anon> at src/gen/Metamodel.pm:3164 in block <anon> at /tmp/qdqijB2aXf:1 in <anon> at /tmp/qdqijB2aXf:1» | |||
moritz | nom: sub f { return { @_.join } }; f().(4, 5, 6) | 06:09 | |
p6eval | nom 1c2c2d: ( no output ) | ||
moritz | nom: sub f { return { @_.join } }; say f().(4, 5, 6) | ||
p6eval | nom 1c2c2d: OUTPUT«456» | ||
moritz | perl6: sub f { return { @_.join } }; say f().(4, 5, 6) | 06:19 | |
p6eval | rakudo 1c2c2d, niecza v10-40-ga57ed3d: OUTPUT«456» | ||
..pugs: OUTPUT«» | |||
TimToady | placeholders always belong to the innermost {} | ||
moritz | TimToady: ok, thanks | 06:20 | |
TimToady | if when that's not what you want, it's a DIHWIDT situation | ||
moritz closes a nearly 3 year old ticket | 06:21 | ||
dalek | ast: 1879e3c | moritz++ | S06-signature/positional.t: correct @_ usage |
06:24 | |
sorear | DIHWIDT? | 06:26 | |
moritz | doctor, it hurts when I do this | 06:28 | |
06:30
S11001001 left
06:49
molaf left
06:51
kst left,
kst joined
06:54
wamba joined
07:13
GlitchMr joined
|
|||
moritz | niecza: say ('aaaa' ~~ m:g/./).WHAT | 07:32 | |
p6eval | niecza v10-40-ga57ed3d: OUTPUT«===SORRY!===Regex modifier g not yet implemented at /tmp/lhslFNphwm line 1:------> say ('aaaa' ~~ m:g⏏/./).WHATUnhandled Exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 766 (CORE die @… | ||
moritz | nom: say 'foo bar 123 blubb' ~~ /\d+/ | 07:33 | |
p6eval | nom 1c2c2d: OUTPUT«=> <123>» | ||
moritz | nom: say ('foo bar 123 blubb' ~~ /\d+/).Str | 07:34 | |
p6eval | nom 1c2c2d: OUTPUT«123» | ||
moritz | nom: say 'foo bar baz' ~~ /<alpha>/ | 07:35 | |
p6eval | nom 1c2c2d: OUTPUT«=> <f> alpha => <f>» | ||
moritz | my wife just proposed \l for "letter" in regexes | 07:36 | |
aka <alpha> | |||
now that we have lots of weird backslash sequences replaced by named rules (<commit> etc.), we can use up a few more backslash sequences again :-) | 07:37 | ||
sorear | I can't say I'm opposed. | ||
moritz mentally experiments with m:g// returning a Match with .flatten === True | 07:39 | ||
07:40
replore_ left
|
|||
sorear | moritz: I think all m// returned Matches have to have the flatten nature | 07:40 | |
moritz: because my ($a,$b) = m/.../ | 07:41 | ||
moritz | sorear: then how does one distinguish the return value of m/(.)+/ from that of m:g/(.)/ ? | 07:42 | |
for s:g/// we need to distinguish those | |||
sorear | moritz: the first is ~~ Match, the second is ~~ List | 07:43 | |
moritz | ok, and does m:g// set $/ to soemthing? | ||
sorear | I hope not | ||
but I really have no clue here | |||
moritz | that's an interesting approach | 07:44 | |
my interpretation was that m:g// sets $/ to a Match object whose .list is the list of matches, and .from => @matches[0].from, .to => @matches[*-1].to etc. | 07:45 | ||
07:45
grondilu joined
|
|||
moritz | but maybe that's plain BS | 07:45 | |
grondilu | perl6: say Q :qq {Colons may not be used to delimit quoting constructs at line 1} | 07:46 | |
p6eval | pugs: OUTPUT«*** No such subroutine: "&Q" at /tmp/UmMJyXUMIJ line 1, column 5 - line 2, column 0» | ||
..rakudo 1c2c2d: OUTPUT«===SORRY!===Colons may not be used to delimit quoting constructs at line 1, near ":qq {Colon"» | |||
..niecza v10-40-ga57ed3d: OUTPUT«Colons may not be used to delimit quoting constructs at line 1» | |||
07:47
colomon left
|
|||
grondilu | !? | 07:47 | |
perl6: say q:x{echo test} | |||
p6eval | pugs: OUTPUT«*** Unsafe function 'Pugs::Internals::runShellCommand' called under safe mode at /tmp/cr7wPwECSA line 1, column 5 - line 2, column 1» | ||
..rakudo 1c2c2d: OUTPUT«===SORRY!===Colons may not be used to delimit quoting constructs at line 1, near ":x{echo te"» | |||
..niecza v10-40-ga57ed3d: OUTPUT«Unhandled Exception: System.Exception: Unable to find lexical rungather in mainline at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, Boolean upf, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0  at Niecza.CLRBac… | |||
grondilu | is q:x not implemented yet or something? | ||
moritz | hm, in p5 s///g retains the match vars from the last match | ||
grondilu: rakudo implements qx, but not q:x | 07:48 | ||
grondilu: and no Q: at all | |||
grondilu | ok | ||
perl6: my $foo = 'bar'; say qqx{echo $foo} | 07:49 | ||
p6eval | pugs: OUTPUT«*** No such subroutine: "&qqx" at /tmp/_sPfPCZ6tJ line 1, column 22 - line 2, column 1» | ||
..niecza v10-40-ga57ed3d: OUTPUT«Unhandled Exception: System.Exception: Unable to find lexical rungather in mainline at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, Boolean upf, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0  at Niecza.CLRBac… | |||
..rakudo 1c2c2d: OUTPUT«qx, qqx is disallowed in safe mode in sub restricted at src/SAFE.setting:2 in sub QX at src/SAFE.setting:9 in block <anon> at /tmp/aXHfWQnZfr:1 in <anon> at /tmp/aXHfWQnZfr:1» | |||
07:50
grondilu left
|
|||
sorear | moritz: i'd love if m:g returned something lazy | 07:53 | |
moritz: I still dream of Cats | |||
and making .to be lazy feels wrong. | 07:54 | ||
moritz | sorear: right, that's possible with List but not with Match | ||
sorear | and I have to sleep now | ||
moritz | sorear: sleep well | ||
moritz wonders if $/ should simply contain the List of matches then | 07:56 | ||
08:08
colomon joined
08:11
daniel-s left
08:15
daniel-s joined
|
|||
dalek | ast: cc397e5 | moritz++ | S02-lexical-conventions/sub-block-parsing.t: undo over-eager rakudo unfudging |
08:59 | |
moritz | nqp: my %a := { a => 1, b => 2 }; say(%h) | 09:03 | |
p6eval | nqp: OUTPUT«Symbol '%h' not predeclared in <anonymous>current instr.: 'parrot;PCT;HLLCompiler;panic' pc 154 (compilers/pct/src/PCT/HLLCompiler.pir:111)» | ||
moritz | nqp: my %a := { a => 1, b => 2 }; say(%a) | 09:04 | |
p6eval | nqp: OUTPUT«_block1007» | ||
moritz | nqp: my %a := hash( a => 1, b => 2 ); say(%a) | ||
p6eval | nqp: OUTPUT«Hash[0x2a561b0]» | ||
moritz | nqp: my %a := hash( a => 1, b => 2 ); say(%a<a>) | ||
p6eval | nqp: OUTPUT«1» | ||
09:24
Trashlord left
09:27
orafu left,
orafu joined
09:29
Trashlord joined
09:34
Trashlord left
09:35
Trashlord joined
09:51
wamba left
09:54
Trashlord left
09:55
Trashlord joined
10:04
woosley left
10:14
kst left
10:15
kst joined
10:22
SHODAN joined
10:31
Trashlord left
|
|||
dalek | kudo/nom: b2604a2 | moritz++ | src/Perl6/Actions.pm: implement m:g// Note that this still has quite some limits, for example $str ~~ m:g// doesn't work yet (and I don't really know how to make it work) |
10:33 | |
10:34
dark_x left
10:36
Trashlord joined
10:43
kst left
|
|||
moritz | phenny: tell sorear I just found a problem with m:g// returning a List: $str ~~ m:g// return False, not the list, because it will try to smart-match the returned list against $str | 10:47 | |
phenny | moritz: I'll pass that on when sorear is around. | ||
10:48
kst joined
10:49
Trashlord left
|
|||
moritz | the more I work on those syntactic forms (m:g//, s:g/// etc.), the more I grow attached to the method forms | 10:50 | |
they are so nicely defined, and don't interact in weird and unexpected ways | 10:51 | ||
10:52
Trashlord joined
|
|||
mberends | moritz++ # for dedication | 10:57 | |
moritz | nom: $_ = "foo"; print "$_\n" for m:g/./ | 11:00 | |
p6eval | nom b2604a: OUTPUT«foo» | 11:01 | |
11:01
whiteknight joined
11:04
Trashlord left
11:05
Trashlord joined
|
|||
felher | Given i have some part of a grammar like 'token number { <sign>? <digit>+ }. Is there a neater way to get the ast from <sign> if <sign> ist defined, Any/Mu/Nil otherwise than '$sign = $<sign> ?? $<sign>[0].ast !! Any'? Maybe '$sign = $<sign>>>.ast[0]'. The latter seems a bit obfuscated, though... | 11:13 | |
A builtin ast-function maybe, that returns the ast if whatever it gets is defined, Mu otherwise. (I guess i write that function myself, if there is no easier builtin way :) ) | 11:15 | ||
tadzik | hmm | ||
moritz | $ast = $<sign>[0]<ast> if $<sign>; | ||
erm | 11:16 | ||
$ast = $<sign>[0].ast if $<sign>; | |||
11:16
kst left,
ZapZ joined
|
|||
moritz | note that rakudo's behavior wrt ?-quantified atoms is out-of-sync with spec | 11:17 | |
11:18
kst joined
|
|||
moritz | spec says that $<sign> should be a Match object if matched once, or Nil otherwise | 11:18 | |
rakudo currently has 1-elem Parcel vs. 0-elems Parcel | |||
if rakudo was up to date with the spec, you could say my $ast = $<sign>.?ast | 11:19 | ||
nom: say Any[0] | |||
p6eval | nom b2604a: OUTPUT«===SORRY!===Cannot put type arguments on Any because it is not a parametric type at line 1, near ""» | ||
moritz | nom: say Any.[0] | ||
p6eval | nom b2604a: OUTPUT«Nil» | ||
moritz | as it is, you can say $<sign>[0].?ast | ||
moritz has probably written Far More Than felher Ever Wanted To Know About ?-Quantified Captures :-) | 11:20 | ||
felher | moritz: well, $ast = $<sign>.?ast ist very nice :) Thnx a lot. I just didn't think about 'calling sets of methods' even though i knew them :) thnx | 11:21 | |
moritz: And the other thing. No, im just here to learn new cool stuff. The more i learn about all sort of things by solving one problem the better :) | |||
moritz++ | 11:22 | ||
moritz | felher: to be fair, .?method isn't /quite/ the right idiom. What you want is more like "call that method if the invocant is defined", and it's more like a byproduct that it works in your case | ||
11:23
SHODAN left
|
|||
moritz | (because Nil doesn't have an .ast method) | 11:23 | |
11:26
Trashlord left,
wamba joined
|
|||
moritz | mberends: fwiw you might be intested in the convergent-num-rat branch of rakudo | 11:27 | |
felher | moritz: yeah, you're right, but as long as there is no "call that method if the incocant is defined"-thing (which i think i would like to see), i'll stick with it :) | ||
11:27
Trashlord joined
|
|||
moritz | mberends: it "fixes" the 'now' term on 32bit systems by aborting the refinement loop in Num.Rat when it stops improving | 11:28 | |
11:28
daniel-s left,
daniel-s joined
|
|||
moritz | mberends: so the resulting precision is probably really bad, but better than looping infinitely | 11:29 | |
mberends: that branch just needs polishing a bit (needs to handle Inf/-Inf/NaN corner cases better), and consensus or so | |||
(of course, bigint or at least 64bit int would be much nicer, but this seems much easier) | 11:35 | ||
11:35
MayDaniel joined
11:36
donri joined
11:37
Psyche^ joined
11:39
Trashlord left
11:40
Patterner left,
Psyche^ is now known as Patterner
11:41
Trashlord joined
|
|||
dalek | kudo/convergent-num-rat: 77893a4 | moritz++ | src/core/Num.pm: fix +- Inf conversion to Rat |
11:42 | |
11:54
Trashlord left
11:56
Trashlord joined
11:57
im2ee joined
|
|||
im2ee | Hello! :) | 11:57 | |
moritz | hello im2ee | 11:58 | |
tadzik | hello | ||
12:07
Trashlord left
12:10
Trashlord joined
12:16
MayDaniel left
12:25
Trashlord left
12:49
GlitchMr left
12:51
kst left
12:52
kst joined
|
|||
felher | Is there some kind of type-alias so that one type behaves like another but can be used for multiple dispatch? e.g.: new type Absolute = Int; new type Relative = Int; my Relative $relative = -3; my Absolut $absolute = 100; jump($absolute); jump($relative); - where jump multiple-dispatches over Absolute and Relative. | 13:07 | |
Well, actually i have to go now. But i will backlog and be happy about any answer :) | 13:09 | ||
felher out | |||
13:09
donri left
13:25
mj41 joined
|
|||
jlaire | perl6: class A {}; subset B of A; multi sub f(A) { 'A' }; multi sub f(B) { 'B' }; say f(A.new); say f(B.new) | 13:30 | |
p6eval | niecza v10-40-ga57ed3d: OUTPUT«Unhandled Exception: Unable to resolve method ast in class Any at /home/p6eval/niecza/src/NieczaActions.pm6 line 1920 (NieczaActions NieczaActions.parameter @ 149)  at /home/p6eval/niecza/src/STD.pm6 line 2921 (STD P6.parameter @ 312)  at /home/p6ev… | ||
..pugs: OUTPUT«***  Unexpected "A" expecting word character, "|", ":", "*", parameter name or ")" at /tmp/zefxfKq5am line 1, column 40» | |||
..rakudo b2604a: OUTPUT«BYou cannot create an instance of this type in method bless at src/gen/CORE.setting:530 in method new at src/gen/CORE.setting:517 in block <anon> at /tmp/9tR_44bVO3:1 in <anon> at /tmp/9tR_44bVO3:1» | |||
jlaire | eek | ||
b: class A {}; subset B of A; multi sub f(A) { 'A' }; multi sub f(B) { 'B' }; say f(A.new); say f(B.new) | |||
p6eval | b 1b7dd1: OUTPUT«BB» | ||
jlaire | niecza: subset A of Int; sub f(A) {} | 13:33 | |
p6eval | niecza v10-40-ga57ed3d: OUTPUT«Unhandled Exception: Unable to resolve method ast in class Any at /home/p6eval/niecza/src/NieczaActions.pm6 line 1920 (NieczaActions NieczaActions.parameter @ 149)  at /home/p6eval/niecza/src/STD.pm6 line 2921 (STD P6.parameter @ 312)  at /home/p6ev… | ||
jlaire | sorear: ^ | 13:34 | |
13:39
agentzh left
13:44
mtk left
13:47
mj41 left,
localhost left
13:49
localhost joined
13:53
replore joined
13:54
agentzh joined
|
|||
dalek | kudo/nom: 0362a48 | moritz++ | src/ (2 files): make $0 etc. work in the RHS of s/// This relies on $/ in the caller being writable, so it is a rather bad hack. We will see what complaints we get... :-) |
14:00 | |
14:22
daniel-s left
14:24
kst left,
kst joined
14:29
Limbic_Region joined
14:34
Chillance joined
|
|||
mberends | moritz: rakudo/convergent-num-rat fixes the DateTime.now problem on x86 32-bit, and passes most S32-temporal spectests again. | 14:39 | |
14:39
daniel-s joined
|
|||
mberends | afk & | 14:39 | |
14:43
mberends left
14:51
GlitchMr joined
15:04
daniel-s left
15:11
daniel-s joined
15:40
GlitchMr left
15:41
agentzh left
15:47
MayDaniel joined
15:54
kst left
15:55
kst joined
15:56
rml left
16:00
pmurias joined
16:01
GlitchMr joined
16:02
packetknife joined
16:09
daniel-s left,
cognominal_ left
16:11
cognominal joined
16:19
MayDaniel left
16:24
kst left,
kst joined
|
|||
moritz | nom: say Capture ~~ Cool | 16:28 | |
p6eval | nom 0362a4: OUTPUT«Bool::False» | ||
moritz | b: say Match ~~ Cool | 16:31 | |
p6eval | b 1b7dd1: OUTPUT«Bool::True» | ||
moritz | niecza: say Match ~~ Cool | ||
p6eval | niecza v10-40-ga57ed3d: OUTPUT«Bool::True» | ||
sorear | the difference is that Match has a well-defined .Str | 16:37 | |
phenny | sorear: 10:47Z <moritz> tell sorear I just found a problem with m:g// returning a List: $str ~~ m:g// return False, not the list, because it will try to smart-match the returned list against $str | ||
sorear | let's split ~~ into two operators, one doing smartmatching, the other doing topicalization. I can't think of a single case where they are simultaneously useful | 16:40 | |
and good * #perl6 | |||
pmurias | sorear: hi | 16:41 | |
16:47
Mowah_ joined
|
|||
im2ee | tadzik, how is Your IO::Select module. Works? :) | 16:51 | |
tadzik, and my "TCP Server". :) | |||
moritz | sorear: curiously I arrived at the same conclusion, but with different reasoning | 17:04 | |
mine was more like: it makes sense to ask $str ~~ $regex, "does $str fit to $regex", but it doesn't make sense to ask "does $str fit to $regex, globally" or so | 17:05 | ||
ie $str ~~ m:g// isn't a yes/no question as basically all other smart match | 17:06 | ||
and neinter is $str ~~ s/// | |||
it's more a "do something" than a "does it fit?" question | |||
dalek | kudo/nom: 012e26f | moritz++ | src/core/Match.pm: Match is Cool |
17:08 | |
ast: cbb00ca | moritz++ | S05- (2 files): correct subst.t a bit, unfudge for rakudo, add test for $0 in RHS of s/// |
17:14 | ||
17:14
MayDaniel joined
|
|||
tadzik | im2ee: well, nothing new works, I'd say :/ I'm now preparing for tomorrow's elecitons | 17:23 | |
tadzik is a v-ce chairman of the local elections comitee | 17:24 | ||
im2ee | Ok. :) | ||
moritz | ceaude.twoticketsplease.de/articles...prise.html # it seems that a lot of ruby problems come from having the invocant implicitly | 17:26 | |
17:36
packetknife left,
sayu joined,
packetknife joined
17:55
colomon left
17:59
kst left,
kst joined
18:03
plobsing joined
18:06
MayDaniel left,
mj41 joined
18:11
yath left,
yath joined
18:26
soh_cah_toa joined
18:32
preflex_ joined,
preflex left,
preflex_ is now known as preflex
18:33
kst left,
kst joined
18:34
mj41 left,
soh_cah_toa_ joined
18:36
soh_cah_toa left
|
|||
[Coke] moves his "track failure mode" script over to his wintop so he is not impactec by Plants Vs. Zombies. | 18:46 | ||
*ed | |||
dir | 18:53 | ||
18:57
am0c joined
19:00
betterworld left
|
|||
[Coke] wonders how jnthn builds rakudo using --gen-parrot on windows. | 19:02 | ||
(given the large # of parameters with quotes in quotes required to be passed to configure.pl) | |||
19:03
GlitchMr left
19:07
SHODAN joined
|
|||
moritz | by writing a .bat? | 19:11 | |
19:11
mj41 joined
|
|||
[Coke] | moritz: have you ever tried to write a .bat file that execs another program with command line args with nested double quotes? | 19:13 | |
19:13
lue joined
|
|||
lue is happy when rakudo compiles successfully on his system | 19:13 | ||
moritz | [Coke]: nope, but I could imagine writing a program that does that :-) | 19:14 | |
[Coke] | moritz: welcome to my 5 minutes ago! | ||
in five more minutes, you might start wondering if someone else had already gone down this dark path before you. | |||
19:15
packetknife left
|
|||
[Coke] is actually taking a detour trying to write a cscript file so he can build rakudo using javascript. | 19:15 | ||
moritz | ShellQuote on CPAN is only for Bourne shells :( | 19:16 | |
I think that quoting on cmd is version dependent, and thus not so easy to generalize | 19:17 | ||
felher | jlaire: Yeah, i tried subsets, too. But seem like that wouldn't work :) thnx nevertheless. :) | 19:20 | |
19:22
betterworld joined
|
|||
[Coke] ughs. | 19:23 | ||
sorear | moritz: there is some "lovely" code in Perl5 win32/win32.c that handles cmd.exe quotification | 19:25 | |
moritz: since on Windows system LIST still has to go through cmd | |||
19:27
danishman joined
|
|||
[Coke] | phenny: ask jnthn if he builds rakudo with --gen-parrot on windows, and if so, how does he pass args to parrot's configure? | 19:28 | |
phenny | [Coke]: I'll pass that on when jnthn is around. | ||
[Coke] gives up. This is neither fun nor helpful. | |||
there are 741 tickets... 42 tickets need tests only. \o/ | |||
moritz | stackoverflow.com/questions/180754/...767#180767 | 19:30 | |
[Coke]: sounds like you're not the only one who finds it -O!fun | 19:31 | ||
[Coke] | moritz: 73892 - can you mark the tests in the file that are for that ticket? I don't see them. | 19:32 | |
moritz: I blame rakudo. I can build parrot by itself just fine. ;) | 19:33 | ||
moritz | [Coke]: there's only one test related to %_ in there | 19:34 | |
sorear | [Coke]: I suggest not using --gen-parrot then | ||
[Coke]: you can tell Rakudo where to find an installed Parrot with a different --option | |||
19:34
MayDaniel joined
19:35
danishman left
|
|||
moritz | --with-parrot=C:\path\to\bin\parrot | 19:35 | |
dalek | ast: efe2b30 | Coke++ | S06-traits/is-readonly.t: rakudo fudging |
19:38 | |
kudo/nom: 88c5a5d | Coke++ | t/spectest.data: run fudged test |
19:41 | ||
[Coke] | sorear: I was already doing it that way. It's a PITA to have 3 different build scripts to test something in rakudo on windows. when one works just fine on os x. | 19:42 | |
key '/Users/coke/.ssh/id_rsa': | 19:43 | ||
To [email@hidden.address] ! [rejected] HEAD -> nom (non-fast-forward) | |||
WW. | |||
rakudo: role R {}; subset S of R; 1 ~~ S | |||
p6eval | rakudo 012e26: ( no output ) | ||
[Coke] | rakudo: role R {}; subset S of R; 1 ~~ S; say "eek" | ||
p6eval | rakudo 012e26: OUTPUT«eek» | ||
dalek | ast: b166968 | moritz++ | S12-methods/instance.t: expand and label tests for RT #73892 |
19:45 | |
[Coke] | rakudo: say ~(my $a) | ||
p6eval | rakudo 012e26: OUTPUT«Use of uninitialized value in string context» | ||
[Coke] | rakudo: say +(my $a) | 19:46 | |
p6eval | rakudo 012e26: OUTPUT«Use of uninitialized value in numeric context0» | ||
moritz | [Coke]: I've closed 73892 now | ||
[Coke]++ | |||
[Coke] | moritz++ #thanks. | 19:47 | |
19:51
sayu left
|
|||
sorear | [Coke]: wrapping the whole thing in a bat/pl file doesn't work? | 19:52 | |
moritz | wow, RT URLs really became ugly | 19:53 | |
[Coke] | sorear: "the whole thing" . there is no whole thing to wrap, because it doesn't work. | ||
moritz | -Redirect permanent /testneeded rt.perl.org/rt3/Search/Results.html...estneeded' | ||
+Redirect permanent /testneeded rt.perl.org/rt3/Search/Results.htm...FTITLE%3A% | 19:54 | ||
[Coke] | or: building rakudo is not a superset of building parrot. I can't just run what I ran to build parrot to build parrot in place in rakudo. | 19:55 | |
rakudo: say Associative.new{'x'} | |||
p6eval | rakudo 012e26: OUTPUT«Method 'at_key' not found for invocant of class 'Associative' in method postcircumfix:<{ }> at src/gen/CORE.setting:1018 in block <anon> at /tmp/A_sMK6Tc_G:1 in <anon> at /tmp/A_sMK6Tc_G:1» | ||
[Coke] | rakudo: say Positional.new[42] | 19:56 | |
p6eval | rakudo 012e26: OUTPUT«.[42] out of range for type Positional<-2533370447223611077> in method at_pos at src/gen/CORE.setting:1000 in method postcircumfix:<[ ]> at src/gen/CORE.setting:982 in block <anon> at /tmp/qm2Y7I2TeZ:1 in <anon> at /tmp/qm2Y7I2TeZ:1» | ||
[Coke] | rakudo: my $a; CHECK { $a = 42 } | 19:57 | |
p6eval | rakudo 88c5a5: OUTPUT«===SORRY!===Could not locate compile-time value for symbol StaticLexPad» | ||
[Coke] | my $a; INIT { $a = 42 } | ||
rakudo: my $a; INIT { $a = 42 } | |||
p6eval | rakudo 88c5a5: ( no output ) | ||
[Coke] | say Perl6::Compiler.compile('say 42').WHAT | 19:58 | |
rakudo; say Perl6::Compiler.compile('say 42').WHAT | |||
rakudo: say Perl6::Compiler.compile('say 42').WHAT | |||
p6eval | rakudo 88c5a5: OUTPUT«Could not find symbol 'Perl6::&Compiler' in block <anon> at /tmp/5COYJ4ssO5:1 in <anon> at /tmp/5COYJ4ssO5:1» | ||
dalek | ast: 7681064 | moritz++ | S04-statements/gather.t: test for RT #77036 |
||
[Coke] | rakudo: class A { multi method foo($a) { "general" }; multi submethod foo(Str $a) { "specific" } }; class B is A {}; say .new.foo("OH HAI") for A, B | 19:59 | |
p6eval | rakudo 88c5a5: OUTPUT«specificspecific» | ||
moritz | that sounds like a masak ticket | 20:01 | |
[Coke] | rakudo: $foo:: = 42; say $foo::; | ||
p6eval | rakudo 88c5a5: OUTPUT«42» | ||
[Coke] | moritz: I opened up my "pingable" ticket criteria to include his. too much LHF. | ||
rakudo: say $foo:: | |||
p6eval | rakudo 88c5a5: OUTPUT«Any()» | ||
20:03
lue left
|
|||
[Coke] | rakudo: class A { my $b; method c { $A::b = 5; say $A::b } }; A.new.c | 20:04 | |
p6eval | rakudo 88c5a5: OUTPUT«5» | ||
diakopter | rakudo: class A { my $b; method c { $A::b = 5; say $b } }; A.new.c | ||
p6eval | rakudo 88c5a5: OUTPUT«Any()» | ||
[Coke] | moritz: eyes on RT#73396? | 20:07 | |
moritz | [Coke]: I'll take a look | ||
yep, can be closed | |||
[Coke] | will do. | 20:08 | |
rakudo: say | 20:09 | ||
p6eval | rakudo 88c5a5: OUTPUT«» | ||
[Coke] | rakudo: print | ||
p6eval | rakudo 88c5a5: ( no output ) | ||
[Coke] | std: say | ||
p6eval | std 20ae3bd: OUTPUT«===SORRY!===Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/yOhTnKdAMp line 1:------> say⏏<EOL>Check failedFAILED 00:01 118m» | ||
dalek | ast: 2333636 | moritz++ | S03-metaops/cross.t: test for RT #73396, nested X |
20:11 | |
20:13
envi left
|
|||
[Coke] | rakudo: my $x = Hash.new(a => 1); $x<a> = 2; say $x.perl | 20:13 | |
p6eval | rakudo 88c5a5: OUTPUT«{"a" => 2}» | ||
[Coke] | rakudo: class C { method M {} }; say C.new.can('M'); | 20:15 | |
p6eval | rakudo 88c5a5: OUTPUT«M» | ||
[Coke] | rakudo: class A { method a { 1 } }; A.can('a'); | 20:16 | |
p6eval | rakudo 88c5a5: ( no output ) | ||
[Coke] | rakudo: class A { method a { 1 } }; A.can('a').say; | ||
p6eval | rakudo 88c5a5: OUTPUT«a» | ||
[Coke] | rakudo: class A { has $.b; proto method b {} } | 20:17 | |
p6eval | rakudo 88c5a5: ( no output ) | ||
[Coke] | rakudo: class A { proto method b {}; has $.b } | 20:18 | |
p6eval | rakudo 88c5a5: ( no output ) | ||
[Coke] | rakudo: say (j=>10,q=>10,k=>10).perl; | 20:21 | |
p6eval | rakudo 88c5a5: OUTPUT«("j" => 10, False)» | ||
[Coke] | rakudo: package A {}; my $A::b = 5 | 20:23 | |
p6eval | rakudo 88c5a5: ( no output ) | ||
[Coke] | rakudo: package A {}; my $A::b = 5 | ||
p6eval | rakudo 88c5a5: ( no output ) | ||
[Coke] | rakudo: my $A::b =5 | ||
p6eval | rakudo 88c5a5: ( no output ) | ||
[Coke] | Does Perl6::Grammar still exist? | 20:24 | |
jnthn | Good evening, #perl6 | 20:25 | |
phenny | jnthn: 19:28Z <[Coke]> ask jnthn if he builds rakudo with --gen-parrot on windows, and if so, how does he pass args to parrot's configure? | ||
felher | o/ | ||
jnthn | [Coke]: I build with --gen-parrot --parrot-options=--intval="long long" | ||
[Coke] | moritz: 66810 refers to .PARROT. In case that might influence your decision to close it. | ||
jnthn | .PARROT has gone, I think... | ||
[Coke] | jnthn: that's IT? | ||
jnthn | [Coke]: Yes. | ||
[Coke]: On my 32-bit box I just --gen-parrot. | |||
[Coke] | jnthn: my normal winbuild for parrot is: | 20:26 | |
perl Configure.pl --prefix="C:/bird" "--cc=cl.exe" "--link=link.exe" "--ld=link.exe" "--ccflags=-nologo -GF -W4 -MD -Zi | |||
-DNDEBUG -DWIN32 -DCONSOLE -DNO_STRICT -DUSER_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC" "--linkflags=-nologo -nodefaultlib -d | |||
ebug" | |||
20:26
lue joined
|
|||
jnthn | ...wow. | 20:26 | |
[Coke]: Then I have to ask: which Perl distro? :) | |||
[Coke] | (some of those quotes are superflous, I know.) | ||
jnthn: strawberry perl, visual studio 2010, nmake. | 20:27 | ||
jnthn | ah | ||
lue | hello world [again] o/ | ||
jnthn | [Coke]: You'll have an easier time with ActivePerl if you're building with Visual Studio. | ||
[Coke] | jnthn, moritz: then I would not shed a tear if you closed that .PARROT ticket. ;) | ||
jnthn | [Coke]: Since it too is built with VS compiler. | ||
So all the flags are "just right"...apart from for 64-bit. | 20:28 | ||
[Coke] | rakudo: sub foo(*%p) { say %p.perl }; foo(a => 'b', a => 'c') | 20:29 | |
p6eval | rakudo 88c5a5: OUTPUT«("a" => "c").hash» | ||
[Coke] | jnthn: *sigh*. Ok. | ||
moritz | nom: Perl6::Grammar | ||
p6eval | nom 88c5a5: OUTPUT«Could not find symbol 'Perl6::&Grammar' in block <anon> at /tmp/qW4F7WSvnR:1 in <anon> at /tmp/qW4F7WSvnR:1» | ||
[Coke] | rakudo: sub foo(*%p) { say %p.perl }; my %h = a => 'b'; foo(|%h, a => 'c') | 20:30 | |
p6eval | rakudo 88c5a5: OUTPUT«duplicate named argument in call in block <anon> at /tmp/N93o4ziKBC:1 in <anon> at /tmp/N93o4ziKBC:1» | ||
jnthn | [Coke]: I suspect that one isn't going to be fixed in a hurry, I'm afraid. | ||
[Coke]: The error occurs in one of the bits of Parrot's calling mechanism that I really can't twiddle with so easily. | 20:31 | ||
[Coke] | jnthn: just doing ticket book-keeping. no worries. | ||
[Coke] will call it a day when I get to 50 testneeded tickets. | |||
jnthn | What's the current standing? | 20:32 | |
[Coke] | rakudo: class A { method foo { say "OH HAI" } }; class B is A {}; class C is A is B {}; say "alive"; C.new.*foo | ||
p6eval | rakudo 88c5a5: OUTPUT«aliveOH HAI» | ||
[Coke] | jnthn: 48. ;) | ||
jnthn | nom: say [+] <297 432 7> | ||
p6eval | nom 88c5a5: OUTPUT«736» | ||
jnthn | nom: say 736 - 48 | ||
p6eval | nom 88c5a5: OUTPUT«688» | ||
jnthn | Wow. :) | ||
20:33
pothos left,
y3llow left
|
|||
jnthn | Let's see if I have engergy/concentration for a patch or two. | 20:33 | |
[Coke] | jnthn: oooh, freebie. jnthn fixed something but didn't mark the ticket. | 20:34 | |
jnthn: oooh. coke is looking on the wrong list! *finger snap* | |||
20:35
help joined,
help is now known as Guest3366,
pothos_ joined
|
|||
jnthn | aww :) | 20:35 | |
[Coke] | rakudo: sub foo($a, %h?) { bar($a, %h) }; sub bar($a, %h?) {say "alive!" }; foo(42) | ||
20:35
pothos_ is now known as pothos
|
|||
p6eval | rakudo 88c5a5: OUTPUT«alive!» | 20:35 | |
[Coke] | rakudo: sub foo($a, %h?) { say %h.WHAT }; foo(42) | 20:36 | |
p6eval | rakudo 88c5a5: OUTPUT«Hash()» | ||
[Coke] | rakudo: say [+]<296 433 7> -50 | 20:37 | |
p6eval | rakudo 88c5a5: OUTPUT«-47» | ||
[Coke] | rakudo: say ([+]<296 433 7>)-50 | ||
p6eval | rakudo 88c5a5: OUTPUT«686» | ||
20:37
Guest3366 left
|
|||
[Coke] | rakudo: say [+]<296 433 7 -50> | 20:37 | |
p6eval | rakudo 88c5a5: OUTPUT«686» | ||
20:38
help_ joined
|
|||
[Coke] ponders trying to achieve a stretch goal. | 20:38 | ||
jnthn | moritz: about? | 20:39 | |
dalek | kudo/nom: 33f1cfc | jnthn++ | src/Perl6/SymbolTable.pm: Fix pre-compilation of enums bug. |
20:41 | |
moritz | jnthn: yes | 20:43 | |
(but not for long) | |||
jnthn | moritz: Fixed #100838 but not sure what to do about tests, if anything | ||
moritz: Given you the ticket now though | |||
moritz: Do as you feel. :) | |||
moritz | jnthn: since --target=pir is non-standard, I'll close without test | 20:44 | |
jnthn | +1 | ||
Saw that ticket come in as soon as it was filed and figured it'd be an easy fix. | 20:45 | ||
moritz | jnthn: that's why i assigned it to you :-) | ||
jnthn sees a couple more that should be shooting-fish-in-barrel-esque | 20:50 | ||
20:50
betterworld left
|
|||
moritz | jnthn: if you happen to see an easy way to return the exception from a failed try { }, that would be immensely useful for me | 20:50 | |
20:50
[Coke] left
|
|||
moritz | nom: my $x = try { die "foo" }; say $x | 20:51 | |
p6eval | nom 88c5a5: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container in block <anon> at /tmp/GbK2G4QR5e:1 in <anon> at /tmp/GbK2G4QR5e:1» | ||
moritz | nom: say (try { die "foo" }).gist | ||
p6eval | nom 88c5a5: OUTPUT«Null PMC access in find_method('gist') in block <anon> at /tmp/VVCJC_0cAz:1 in <anon> at /tmp/VVCJC_0cAz:1» | 20:52 | |
20:52
[Coke] joined
|
|||
jnthn | e src\Perl6\Grammar.pm | 20:52 | |
oops | |||
[Coke] | rakudo: my @a of Int = (1,2,3); say @a.WHAT | ||
p6eval | rakudo 88c5a5: OUTPUT«Array()» | ||
jnthn | .oO( that's why the tab completion didn't work... ) |
||
[Coke] | rakudo: say callframe().callframe(1).my.perl | 20:53 | |
p6eval | rakudo 88c5a5: OUTPUT«not yet implemented in method callframe at src/gen/CORE.setting:6343 in block <anon> at /tmp/KUGjkHLZrt:1 in <anon> at /tmp/KUGjkHLZrt:1» | ||
[Coke] | rakudo: say ::.^methods | 20:54 | |
p6eval | rakudo 88c5a5: OUTPUT«===SORRY!===Cannot look up empty name» | ||
[Coke] | rakudo: :: | 20:55 | |
p6eval | rakudo 88c5a5: OUTPUT«===SORRY!===Cannot look up empty name» | ||
jnthn | std: :: | ||
p6eval | std 20ae3bd: OUTPUT«ok 00:01 118m» | ||
jnthn | std: ::.^methods | ||
p6eval | std 20ae3bd: OUTPUT«ok 00:01 118m» | ||
jnthn | heh... | ||
20:55
SHODAN left
|
|||
jnthn has little idea what that means | 20:55 | ||
[Coke] | rakudo: class A {has $.a = $^b + 1;has $.b = $^a }; say A.new(1,2).a | 20:56 | |
p6eval | rakudo 88c5a5: OUTPUT«Default constructor only takes named arguments in method new at src/gen/CORE.setting:520 in block <anon> at /tmp/KlAxdogLlw:1 in <anon> at /tmp/KlAxdogLlw:1» | ||
[Coke] | rakudo: class A { has $.a = $^b }; A.new | ||
p6eval | rakudo 88c5a5: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container in method BUILDALL at src/gen/CORE.setting:542 in method bless at src/gen/CORE.setting:532 in method new at src/gen/CORE.setting:517 in block <anon> at /tmp/iSi_F7geIZ:1 in <anon> at /tmp/iSi_F7geIZ:1… | ||
[Coke] | rakudo: class A { has $.a = $^b }; A.new() | ||
p6eval | rakudo 88c5a5: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container in method BUILDALL at src/gen/CORE.setting:542 in method bless at src/gen/CORE.setting:532 in method new at src/gen/CORE.setting:517 in block <anon> at /tmp/7TY4bdv4Cp:1 in <anon> at /tmp/7TY4bdv4Cp:1… | ||
jnthn | People come up with the craziest things to try... | ||
moritz | indeed | 20:59 | |
jnthn | Lemme see if that can have a better error | ||
[Coke] | rakudo: class A { is $.foo }; say A.new | 21:00 | |
p6eval | rakudo 33f1cf: OUTPUT«Null PMC access in find_method('foo') in <anon> at /tmp/JJY6lQ9Rgk:1 in block <anon> at /tmp/JJY6lQ9Rgk:1 in <anon> at /tmp/JJY6lQ9Rgk:1» | ||
jnthn wonders if std catches that one | |||
std: class A { is $.foo }; say A.new | |||
p6eval | std 20ae3bd: OUTPUT«===SORRY!===Variable $.foo used where no 'self' is available at /tmp/2tgnGrDgar line 1:------> class A { is ⏏$.foo }; say A.newUndeclared routine: 'is' used at line 1Check failedFAILED 00:01 121m» | ||
jnthn | Good STD. | ||
S02-lexical-conventions\sub-block-parsing.rakudo ... Failed 1/4 subtests | 21:01 | ||
Anyone else get ^^ | |||
Or did I bust something? | |||
moritz | jnthn: git pull on roast | ||
21:01
mj41 left
|
|||
jnthn | oh | 21:01 | |
:) | |||
[Coke] | rakudo: class crap { has $.snot = "barf"; has $.eat = "me" }; my $c = crap.new(); for $c.^attributes -> $attr { say $c."$attr.substr(2)"() } | ||
p6eval | rakudo 33f1cf: OUTPUT«Method 'substr' not found for invocant of class 'Attribute' in block <anon> at /tmp/lmQlIW1j2v:1 in method reify at src/gen/CORE.setting:3755 in method reify at src/gen/CORE.setting:3660 in method reify at src/gen/CORE.setting:3660 in method gimme at src/… | ||
moritz | commit cc397e58216ab93418077e9526296e4023c8c5d1, undo over-eager rakudo unfudging | ||
jnthn | [Coke]: That'd need to be $attr.name.substr(2) | 21:02 | |
Attributes are not Cool | |||
And I don't think we should make them be so. | |||
[Coke] | jnthn: if not, then you can probably close out RT#78206 | 21:03 | |
rakudo: say +Method | |||
p6eval | rakudo 33f1cf: OUTPUT«Use of uninitialized value in numeric context0» | ||
moritz | \o/ SVG::Plot now compiles | ||
[Coke] | rakudo: multi foo() { }; multi foo($x) { }; say +&foo | ||
p6eval | rakudo 33f1cf: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are::(Mu, Mu %_) in method Numeric at src/gen/CORE.setting:608 in sub prefix:<+> at src/gen/CORE.setting:1808 in block <anon> at /tmp/0UbVWVrGDB:1 in <anon> at /tmp/0UbVWVrG… | ||
moritz | rakudo: say +Any.new | 21:04 | |
p6eval | rakudo 33f1cf: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are::(Mu, Mu %_) in method Numeric at src/gen/CORE.setting:608 in sub prefix:<+> at src/gen/CORE.setting:1808 in block <anon> at /tmp/xMAxTFgLrC:1 in <anon> at /tmp/xMAxTFgL… | ||
moritz | maybe we need a better error message, but it's consistent at least | ||
[Coke] | moritz: it used to say 0, so it's an improvement. | 21:05 | |
rakudo: for ^8 { .=fmt("%03b"); .say } | |||
p6eval | rakudo 33f1cf: OUTPUT«Cannot assign to a non-container in method dispatch:<.=> at src/gen/CORE.setting:714 in block <anon> at /tmp/fh4hsVBFkr:1 in method reify at src/gen/CORE.setting:3755 in method reify at src/gen/CORE.setting:3660 in method reify at src/gen/CORE.setting:366… | ||
moritz | SVG::Plot seems to need some love wrt. flattening and non-flattening lists and stuff | 21:07 | |
[Coke] | rakudo: multi sub Bar ( ) { return 42 }; multi sub Bar (:$baz!) { return $baz }; say Bar(); | ||
p6eval | rakudo 33f1cf: OUTPUT«42» | ||
dalek | kudo/nom: 3c18835 | jnthn++ | src/Perl6/Grammar.pm: The meta-object should get to pick a default representation, if the user didn't supply one. |
21:08 | |
kudo/nom: 60539b9 | jnthn++ | src/Perl6/Metamodel/ (2 files): Make attempts to instantiate modules and packages fail in a more helpful way (that is, without a NPMCA). |
|||
jnthn | That's #100780 moved to testneeded :) | ||
[Coke] | jnthn: did you update the ticket, or do you need a bugwrangler? | 21:09 | |
rakudo: my @a; push @a, 5; say @a[0]; | |||
p6eval | rakudo 33f1cf: OUTPUT«5» | ||
[Coke] | rakudo: my Int \@a; push @a, 5; say @a[0]; | ||
p6eval | rakudo 33f1cf: OUTPUT«===SORRY!===In "my" declaration, typename Int must be predeclared (or marked as declarative with :: prefix) at line 1, near " \\@a; push"» | ||
[Coke] | rakudo: my Int @a; push @a, 5; say @a[0]; | 21:10 | |
p6eval | rakudo 33f1cf: OUTPUT«5» | ||
jnthn | [Coke]: Updated. | ||
[Coke]: Just dangling it for a test writer ;) | |||
[Coke] | rakudo: Foo::bar(); module Foo { our $x = 42; our sub bar() { $x.say } } | 21:11 | |
p6eval | rakudo 33f1cf: OUTPUT«Null PMC access in find_method('say') in sub bar at /tmp/NwmSo_3gVB:1 in block <anon> at /tmp/NwmSo_3gVB:1 in <anon> at /tmp/NwmSo_3gVB:1» | ||
[Coke] | (RT79464) | ||
jnthn | [Coke]: Give it to me. | ||
There's a related one I plan to look at sometime soon too. | |||
[Coke] | class A { my $.x = 42; method foo { say $.x } }; A.new.foo | 21:12 | |
jnthn: assigned to jnthn/jnthn/net | 21:13 | ||
rakudo: class A { my $.x = 42; method foo { say $.x } }; A.new.foo | |||
p6eval | rakudo 33f1cf: OUTPUT«Method 'x' not found for invocant of class 'A' in method foo at /tmp/oYDNWoqdBc:1 in block <anon> at /tmp/oYDNWoqdBc:1 in <anon> at /tmp/oYDNWoqdBc:1» | ||
cognominal | how do I declare the equivalent of a C++ class variable in Perl 6 | ||
jnthn | cognominal: Just a lexical or our-scoped variable inside the class body | ||
cognominal | I don't what to grep that in S12 | ||
jnthn | If you mena what I think you do anyway | 21:14 | |
jnthn never learned C++, which is why he has just a few tiny shreds of sanity left | |||
[Coke] | rakudo: my ::&a &a; | ||
p6eval | rakudo 33f1cf: OUTPUT«invoke() not implemented in class '' in block <anon> at /tmp/4CpohpaOsc:1 in <anon> at /tmp/4CpohpaOsc:1» | ||
cognominal | I never practized but I read every Stroustrup book so I have sone sanity left. | 21:15 | |
jnthn | :) | ||
[Coke] | rakudo: my $b; -> $_ is rw = $OUTER::_ { $_ = 5; $b = {.say}}(); .say; $_ = 42; $b(); | 21:16 | |
p6eval | rakudo 33f1cf: OUTPUT«Any()5» | ||
[Coke] | rakudo: -> $_ is rw = $OUTER::_ { $_ = 5 }() | ||
p6eval | rakudo 33f1cf: ( no output ) | ||
cognominal | I tried "our" and I got some problem : Cannot assign to a readonly variable or a value | ||
[Coke] | rakudo: -> $_ is rw = $FOO::a { $_ = 5 }() | ||
p6eval | rakudo 33f1cf: ( no output ) | ||
[Coke] | rakudo: $FOO::a = 42 | ||
p6eval | rakudo 33f1cf: ( no output ) | ||
[Coke] | ugh, I really wish I had been going through these tickets more frequently. ;) | 21:17 | |
rakudo: say :(Int).perl | 21:18 | ||
p6eval | rakudo 33f1cf: OUTPUT«Unmarshallable foreign language value passed for parameter '$value' in method new at src/gen/CORE.setting:4425 in sub coro at src/gen/CORE.setting:3907 in method reify at src/gen/CORE.setting:3877 in method reify at src/gen/CORE.setting:3660 in method rei… | ||
[Coke] | whoa. | ||
rakudo: say :(Array of Int).perl | |||
p6eval | rakudo 33f1cf: OUTPUT«Unmarshallable foreign language value passed for parameter '$value' in method new at src/gen/CORE.setting:4425 in sub coro at src/gen/CORE.setting:3907 in method reify at src/gen/CORE.setting:3877 in method reify at src/gen/CORE.setting:3660 in method rei… | ||
cognominal | problem difficult to reduce…. :( | 21:19 | |
[Coke] | rakudo: sub y2i($adjective is copy) { $adjective ~~ s/y$/i/ }; sub compare($adjective) { join(", ", $adjective, $adjective.&y2i ~ "er", $adjective.&y2i ~ "est") }; say compare("funny") | ||
p6eval | rakudo 33f1cf: OUTPUT«funny, Trueer, Trueest» | ||
jnthn | [Coke]: Signautre literals just aren't re-done in nom yet, I think | ||
[Coke] | jnthn: that's #77158 if you want it. | 21:21 | |
(the array of int one) | |||
jnthn | [Coke]: Will get there at some point. | 21:22 | |
[Coke] | rakudo: sub foo; | ||
p6eval | rakudo 33f1cf: OUTPUT«===SORRY!===Missing block at line 1, near ";"» | ||
jnthn | Think that is same as STD. | ||
std: sub foo; | |||
p6eval | std 20ae3bd: OUTPUT«===SORRY!===Malformed block at /tmp/1fBrvukB4x line 1:------> sub foo⏏; expecting any of: new name to be defined routine_def traitParse failedFAILED 00:01 118m» | ||
jnthn | ooh, Rakudo does better, imho :) | ||
[Coke] | jnthn: yup, it used to try to call foo. | 21:23 | |
rakudo: say [+] 281, 446, 7, -60 | |||
p6eval | rakudo 33f1cf: OUTPUT«674» | ||
[Coke] | \o/ | ||
ok, that's enough for tonight. ;) | 21:24 | ||
so nice to not have to write cold fusion. ;) | |||
jnthn | ;) | ||
[Coke]++ | |||
21:24
wamba left
|
|||
[Coke] kicks off a niecza check of recent spectest additions. | 21:25 | ||
my "pingable" ticket list is down to 412. Still too big. ;) | 21:26 | ||
dalek | p: f0119d2 | jnthn++ | src/6model/reprs/P6opaque.c: Ensure we don't produce something that will cause segfaults when unboxing to a native str. |
21:28 | |
im2ee | Have to go.. Good night! 'branoc! o/ | 21:30 | |
jnthn | 'branoc, im2ee o/ | ||
21:30
im2ee left
21:35
MayDaniel left
21:38
wooden left
|
|||
dalek | kudo/nom: edc303d | jnthn++ | tools/build/NQP_REVISION: Bump to NQP revision with fix for segfault in +Str.new. |
21:42 | |
kudo/nom: 134d3a1 | jnthn++ | src/core/Str.pm: Make Str.new result in a new string object representing the empty string. |
|||
lue | does require work in nom? | 21:47 | |
[I got a Null PMC on my end trying it] | 21:51 | ||
jnthn | lue: Features page says no | 21:52 | |
Plus I don't recall working on it. | |||
lue | :( | ||
What exactly does use mean by "arglist case of use not yet implemented"? | 21:54 | ||
jnthn | use Foo; # works | ||
use Foo <blah blah>; # not yet | 21:55 | ||
lue | that's weird, because I'm not using the <blah blah> part. I'm trying to use Grammar.pm6 and Actions.pm6 in my current directory, and it comes up no matter what I try | 21:57 | |
jnthn | What are you writing exactly? | 21:58 | |
21:58
cognominal left
|
|||
lue | Today I've decided to start writing my Perl 6 compiler :) [Tomorrow I predict anguish and defeat...] | 21:59 | |
21:59
betterworld joined
22:00
cognominal joined,
wolfman2000 left
|
|||
jnthn | no, I meant, what use statement | 22:00 | |
lue just realized (again) that using the REPL is generally not recommended | 22:01 | ||
use Grammar; and use Actions; | |||
felher | Is there a way to get a variable that i can only initalize but not change afterwards? I tried/ack-ed for 'is ro', 'final', 'const', 'constant'. But constant seems to evaluate at compiletime, and the others didn't seem to be right either :) | ||
sorear | felher: constant is correct | 22:02 | |
felher | sorear: yeah, but compile time. I need runtime. :) I wanted to create a closure like: 'make-closure(%some-hash) { my $x _is ro_ = %some-hash<value>; return sub() { do something with $x } }' I like to tell perl6 that $x can not be changed after getting its inital value :) | 22:06 | |
jnthn | is readonly should work, but Rakudo currently enforces it too early to ever give it a value (d'oh!) | ||
sorear | felher: the best you can do there is my $x ::= ... | ||
jnthn | oh, yes, or bind :) | ||
felher | sorear: if i bind, i am not able to change the value of $x? | 22:08 | |
22:08
Mowah_ left
|
|||
sorear | felher: correct | 22:08 | |
felher | sorear, jnthn: thanks :) | 22:09 | |
22:22
alvis left
|
|||
dalek | ast: 0c8e9c6 | Coke++ | S05-capture/subrule.t: niecza fudging |
22:26 | |
22:27
kst left,
kst joined
|
|||
dalek | kudo/nom: ec1fbc8 | jnthn++ | src/core/operators.pm: Basic implementation of '0 but True' style constructs. Need to make it more efficient at some point, but this makes it at least work. |
22:32 | |
22:46
[Coke] left
22:48
[Coke] joined
22:51
[Coke] left
22:54
cognominal_ joined
22:55
[Coke] joined
22:56
cognominal left
|
|||
dalek | p: 97a4064 | jnthn++ | src/QRegex/Cursor.nqp: Non-existent captures should not match. |
23:09 | |
kudo/nom: aae7fdd | jnthn++ | src/core/Cursor.pm: Undefined variables should not match when interpolated in regexes. |
23:10 | ||
kudo/nom: 9928ece | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION to get QRegex fix. |
|||
jnthn | Enough for today. | ||
& | |||
moritz | jnthn++ | 23:11 | |
jnthn | moritz: whoa, what, still up at this time? :) | ||
moritz | jnthn: can't sleep :( | 23:12 | |
jnthn | :( | ||
moritz | (and not $daughter's fault) | ||
jnthn | Hope you manage to get some sleep soon. | 23:15 | |
jnthn hasn't been able to get nearly enough of it over the last week either :/ | |||
Anyway, afk...night o/ | |||
23:27
pmurias left
23:33
alvis joined
23:41
PacoLinux joined
23:44
alvis left
23:57
alvis joined
|