»ö« 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('') ==> [+] ⏏==> say␤Parse failed␤FAILED 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⏏/./).WHAT␤␤␤Unhandled 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«f␤o␤o␤» 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«B␤You 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«B␤B␤»
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 context␤0␤»
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«specific␤specific␤»
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 failed␤FAILED 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«alive␤OH 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.new␤Undeclared routine:␤ 'is' used at line 1␤Check failed␤FAILED 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 context␤0␤»
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␤ trait␤Parse failed␤FAILED 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