»ö« 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:10 fgomez left 00:12 crab2313 left 00:20 b1rkh0ff left 00:23 fgomez joined 00:25 lestrrat left 00:27 lestrrat joined, replore_ joined 00:35 wolfman2000 joined 01:08 scott_ joined 01:09 scott_ is now known as Guest97602 01:21 colomon left 01:28 xinming_ left 01:29 libertyprime left, wknight8111 left 01:38 vlixes left
dalek ecza: e42dd8e | sorear++ | docs/announce.v18:
Draft announce.v18
01:42
ecza: 65474a2 | sorear++ | docs/announce.v18:
s/17/18/g
01:43
01:44 libertyprime joined
sorear RFC. 01:44
diakopter lgtm 01:48
sorear github doesn't want me to upload niecza-18.zip 01:52
I'll wait an hour, try again, then file a support ticket and host the zip on feather1 01:53
01:54 tokuhiro_ joined
diakopter phenny: tell masak RT 112870 is magically fixed. r: multi sub infix:<~eq>(Str $a, Str $b) { uc($a) eq uc($b) }; say 'Foo' ~eq 'foo' 01:55
phenny diakopter: I'll pass that on when masak is around.
diakopter n: multi sub infix:<~eq>(Str $a, Str $b) { uc($a) eq uc($b) }; say 'Foo' ~eq 'foo'
p6eval niecza v17-50-gdf795e6: OUTPUT«True␤»
sorear Juerd: based on github stats I'm expecting around 100-200 downloads of this 1.8MB file. Is 500MB of data serving spread over a week or so within feather's parameters?
diakopter r: multi sub infix:<~eq>(Str $a, Str $b) { uc($a) eq uc($b) }; say 'Foo' ~eq 'foo'
p6eval rakudo 197e0b: OUTPUT«True␤»
sorear hmm, feather1 has 11 days uptime and RX bytes:1088785541 (1.0 GiB) TX bytes:1796397103 (1.6 GiB) on eth0 01:56
01:59 xinming joined 02:08 tokuhiro_ left 02:10 simcop2387 left 02:12 colomon joined
sorear diakopter: 'looks good to me' ? 02:13
o/ colomon
diakopter yes
colomon \o
sorear colomon: release day! 02:14
colomon \o/
I always forget about it.
02:21 tokuhiro_ joined 02:22 adu left 02:31 isBEKaml left
diakopter phenny: tell masak also RT 111418 02:31
phenny diakopter: I'll pass that on when masak is around.
02:32 bruges left
diakopter r: gist.github.com/1951347 02:32
p6eval rakudo 197e0b: OUTPUT«=␀␀␀=␀␀␀=␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀=␀␀␀=␀␀␀=␀␀␀␤␀␀␀V␀␀␀a␀␀␀r␀␀␀i␀␀␀a␀␀␀b␀␀␀l␀␀␀e␀␀␀ ␀␀␀$␀␀␀a␀␀␀ ␀␀␀i␀␀␀s␀␀␀ ␀␀␀n␀␀␀o␀␀␀t␀␀␀ ␀␀␀d␀␀␀e␀␀␀c␀␀␀l␀␀␀a␀␀␀r␀␀␀e␀␀␀d␀␀␀␤
02:32 bruges_ joined
diakopter um 02:33
sorear .u ␀ 02:34
phenny U+2400 SYMBOL FOR NULL (␀)
diakopter r: '' ~~ / :my $a; <{ '$a' }> 02:38
p6eval rakudo 197e0b: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix / instead at line 2, near " :my $a; <"␤»
diakopter r: '' ~~ / :my $a; <{ '$a' }> /
p6eval rakudo 197e0b: OUTPUT«=␀␀␀=␀␀␀=␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀=␀␀␀=␀␀␀=␀␀␀␤␀␀␀V␀␀␀a␀␀␀r␀␀␀i␀␀␀a␀␀␀b␀␀␀l␀␀␀e␀␀␀ ␀␀␀$␀␀␀a␀␀␀ ␀␀␀i␀␀␀s␀␀␀ ␀␀␀n␀␀␀o␀␀␀t␀␀␀ ␀␀␀d␀␀␀e␀␀␀c␀␀␀l␀␀␀a␀␀␀r␀␀␀e␀␀␀d␀␀␀␤
diakopter r: grammar G { regex TOP { (foo) <.panic: "!$0!"> }; method panic($m) { die $m } }; G.parse("foo") 02:40
p6eval rakudo 197e0b: OUTPUT«use of uninitialized value of type Any in string context in regex TOP at /tmp/QlpzXpun3O:1␤␤!␀␀␀!␀␀␀␤␀␀␀ ␀␀␀ ␀␀␀i␀␀␀n␀␀␀ ␀␀␀m␀␀␀e␀␀␀t␀␀␀h␀␀␀o␀␀␀d␀␀␀ ␀␀␀p␀␀␀a␀␀␀n␀␀␀i␀␀␀c␀␀␀ ␀␀␀a␀␀␀t␀␀␀ ␀␀␀/␀␀␀t␀␀␀m␀␀␀p␀␀␀/␀␀␀Q␀␀␀l␀􏿽xE2􏿽x90
diakopter yikes; what has happened to p6eval
02:42 xinming_ joined
sorear r: +Any 02:43
p6eval rakudo 197e0b: OUTPUT«use of uninitialized value of type Any in numeric context in block <anon> at /tmp/iF9CagVOTI:1␤␤»
sorear r: ~Any
p6eval rakudo 197e0b: OUTPUT«use of uninitialized value of type Any in string context in block <anon> at /tmp/WL9TJYFsKw:1␤␤»
02:43 replore_ left
sorear r: '' ~~ / {die} / 02:44
p6eval rakudo 197e0b: OUTPUT«␤ in block <anon> at /tmp/z97C9Ohx2g:1␤␤»
02:45 xinming left
dalek ast: 9c98a7d | (Solomon Foster)++ | S05-mass/rx.t:
Niecza unfudge.
02:51
diakopter phenny: tell masak RT 102690 is a dupe of 112578 02:52
phenny diakopter: I'll pass that on when masak is around.
diakopter phenny: tell masak RT 113398 is a dupe of 111956 02:54
phenny diakopter: I'll pass that on when masak is around.
dalek ast: 28d6103 | (Solomon Foster)++ | S05-metasyntax/angle-brackets.t:
Niecza unfudge.
diakopter phenny: tell masak also, RT 103412 is magically working 03:15
phenny diakopter: I'll pass that on when masak is around.
diakopter phenny: tell masak also, 104840 is fixed 03:16
phenny ...
diakopter ...?
sorear diakopter: I think that means you exceeded phenny's message limit 03:18
when masak next comes online, phenny will not give any of your messages
diakopter oh :)
sorear it'll try to put your 6 messages on a pastebin that no longer exists, then it will carp an error message to the channel and drop the messages on the floor 03:19
03:19 simcop2387 joined
diakopter masak: RT 107722 is fixed 03:20
03:20 simcop2387 left
dalek ecza: 3133f7f | sorear++ | / (4 files):
Update bootstrap to v18
03:22
03:23 simcop2387 joined
diakopter masak: also, 107746 is fixed 03:23
sorear I rather suspect that when masak comes online next he'll just grep his logs for phenny.*masak 03:24
mailing sent, with a reference to host02 03:25
diakopter masak: also I suspect 107960 is fixed
that is, it seems to be, to me. 03:26
leontopod how many things need to be fixed in Perl 6? 03:28
diakopter leontopod: there are multiple implementations/compilers.. do you mean rakudo or niecza 03:29
leontopod I guess Perl 6 in general 03:30
or the implementation of Perl 6 that is closest to becoming Perl 6.0
diakopter I don't know which one's "closer".. sorear, what's your opinion? 03:31
sorear it's hard to say.
other than 'soon'.
rakudo and niecza have both just sped up a lot and my extrapolator isn't working yet.
leontopod ok 03:33
diakopter leontopod: it depends on when @larry decide the passing portions of the official test suite comprise the specification for Perl 6.0 03:34
@larry, including the implementors
sorear I want to see in niecza a substantial improvement in startup time and memory use, fixing the most egregious holes (native types, MOP, better p5 interop), see what can be done to make panda maximally useful, create an installation story
diakopter I suspect @larry has expanded to include more than several folks in #perl6 03:35
sorear approximately then I will be willing to call this perl 6.0.0
diakopter masak: also I think 100232 is fixed 03:44
r: say <a<a>>.perl #sorear check this one out (found while trying to reproduce RT 100480) 03:47
p6eval rakudo 197e0b: OUTPUT«Cannot call 'Real'; none of these signatures match:␤:(Mu:U \$v, Mu *%_)␤␤ in method Real at src/gen/CORE.setting:683␤ in method Real at src/gen/CORE.setting:1985␤ in sub infix:<>> at src/gen/CORE.setting:2463␤ in block <anon> at /tmp/_BKy2KlFr2:1␤␤»…
diakopter r: say <a<a>> 03:48
p6eval rakudo 197e0b: OUTPUT«===SORRY!===␤Confused␤at /tmp/_Pnmy8_tu6:1␤»
diakopter eh
sorear n: say <a<a>>.perl 03:49
p6eval niecza v17-50-gdf795e6: OUTPUT«"a<a>"␤»
diakopter I can't even imagine how it parses the one with .perl but not the one without it 03:50
masak: see 100480
perl6: class A { BEGIN {has %!h = { 'a' => 1, 'b' => 2 } } } # sorear 03:52
p6eval pugs, rakudo 197e0b: ( no output )
..niecza v17-50-gdf795e6: OUTPUT«===SORRY!===␤␤Attribute %!h declared outside of any class at /tmp/T6G15RwwVh line 1:␤------> class A { BEGIN {has %!h ⏏= { 'a' => 1, 'b' => 2 } } } # sorear␤␤Unhandled exception: Unable to resolve method LISTSTORE in ty…
diakopter are pugs and rakudo correct there?
03:53 lestrrat left
diakopter masak: 100560 should now be test needed because it's a dupe of some other later ticket which I'm not going to go find right now 03:53
but jnthn marked the other one test needed 03:54
03:54 lestrrat joined
diakopter masak: RT 101440 now fails with a different error than originally 03:57
masak: RT 81974 seems fixed 03:59
leontopod diakopter, I don't think masak is around 04:00
diakopter masak: RT 81982 seems fixed 04:01
leontopod: I know. :) but he will eventually catch up on the irclogs at irc.perl6.org
leontopod ok 04:02
diakopter masak: also 82214 seems fixed 04:06
masak: I think 82638 should be closed as notabug 04:09
04:09 adu joined
diakopter masak: 82790 now fails with a different error than originally; worth noting 04:11
RT 82946 now fails with a different error, but I suspect that is the right thing. 04:16
RT 82974 is fixed 04:17
RT 83484 fails with a different (and funnier!) error 04:24
RT 83512 fails with a different error 04:26
btw, for anyone reading this, know that I've tried and tried to login to rt.perl.org, but have always failed. 04:27
RT 83552 fails with a different error 04:29
RT 83766 is fixed 04:33
RT 83952 is fixed 04:34
RT 83992 is fixed 04:35
RT 86340 fails with a totally differently wrong error 04:40
RT 87034 is fixed (by the very last evaluation on the ticket) 04:43
RT 87420 is fixed 04:46
04:46 sisar joined
diakopter RT 88704 is fixed 04:52
RT 78276 fails with a different error; not sure whether it's fixed 04:54
[Coke] notes RT 78280 can be closed, but now it fails with a different error; not sure whether it's fixed 04:56
04:59 mucker left
diakopter RT 78370 now fails with an entirely different, and far more spectacular, error 04:59
RT 78410 might be fixed; not sure 05:00
sisar niecza release ! sorear++ 05:02
diakopter RT 78676 ; different error. might be fixed? 05:03
05:05 birdwindupbird joined, birdwind1pbird joined
diakopter RT 78800 might be fixed; not sure. 05:05
05:07 sisar left
diakopter RT 78870 now fails much worse than it did before. it segfaults now; didn't before. 05:07
RT 79294 should be closed; the spec changed 05:13
05:15 lestrrat left 05:16 lestrrat joined
diakopter RT 79568 is fixed 05:17
moritz diakopter: if you prefix ticket numbers with a #, the IRC logs will turn them into links to the ticket 05:18
adu diakopter: did you fix all those?
moritz ie RT #79568
diakopter adu: nope
moritz: ok
moritz oh, and good morning :-)
diakopter hi!
moritz rakudo: my $foo = "work"; say "This should $foo\</a>"
p6eval rakudo 197e0b: OUTPUT«This should work</a>␤»
diakopter RT #80008 is fixed 05:21
adu night 05:22
diakopter bye
moritz good night adu
dalek ast: 62a8609 | moritz++ | S02-literals/string-interpolation.t:
RT #79568, backslash after interpolating scalar
05:22 adu left
diakopter RT #80614 seems fixed; dunno whether the test is already unfudged 05:23
moritz it is not 05:24
diakopter it's not fixed or test is not unfudged 05:25
moritz neither
r: my @a = 1, 2, 3; my @b; my $x = @b[0] = @a[1]; say @b[0]
p6eval rakudo 197e0b: OUTPUT«2␤»
moritz huh
diakopter you missed the say $c 05:26
moritz r: my @a = 1, 2, 3; my @b; my $x = @b[0] = @a[1]; say @b[0]; say $x
p6eval rakudo 197e0b: OUTPUT«2␤2␤»
moritz I just wonder why the test doesn't pass
does it require a new nqp to pass? 05:27
diakopter surely not
moritz r: say $*PERL 05:29
p6eval rakudo 197e0b: OUTPUT«("name" => "rakudo", "compiler" => {"name" => "rakudo", "ver" => "2012.05-94-g197e0bd", "release-number" => "", "build-date" => "2012-05-28T10:09:36Z", "codename" => ""}).hash␤»
diakopter oh, oops, I'm wrong on that I guess 05:30
05:32 fgomez left
moritz r: our @h = < 'a', 'b'>; say @h 05:32
p6eval rakudo 197e0b: OUTPUT«No such method 'STORE' for invocant of type 'Any'␤ in block <anon> at /tmp/exUj5tYN_L:1␤␤»
diakopter which one is that? 05:33
moritz #100560
diakopter ok, not one of the ones I mentioned
moritz rakudo: (0, {last if $^a==$^b; (1..5).pick} ... *).perl.say 05:34
p6eval rakudo 197e0b: OUTPUT«(ListIter.new(),).list␤»
moritz rakudo: say (0, {last if $^a==$^b; (1..5).pick} ... *)
p6eval rakudo 197e0b: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in block <anon> at /tmp/flHsVbO2lk:1␤␤»
moritz rakudo: say (0, 1, {last if $^a==$^b; (1..5).pick} ... *)
p6eval rakudo 197e0b: OUTPUT«0 1 5 4 ...␤»
05:35 leontopod left
moritz rakudo: say (0, 1, {last if $^a==$^b; (1..5).pick} ... *)[^20] 05:35
p6eval rakudo 197e0b: OUTPUT«0 1 2 2 2␤»
diakopter RT #81278 fails with a different error 05:36
moritz sorear++ # niecza v18 05:38
diakopter RT #77572 is a duplicate of ... some later ticket. 05:39
I think RT #77576 can be closed because DEBUG doesn't exist anymore 05:40
haha; RT #77590 used to segfault, then it NPMCA, now it has a different error. 05:42
there is a veritable ton of these tickets that are marked closable with tests or test needed, in addition to all the ones I mentioned above that need to be marked testneeded 05:44
RT #77618 is a dupe of some later ticket 05:45
sorear o/ moritz 05:46
diakopter RT #77626 now does the right thing, I think. 05:48
RT #77660 [Coke]'s last message is now out-of-date; it's back to its original (wrong) behavior. 05:50
05:50 woosley joined
diakopter RT #77708 seems fixed. 05:52
RT #77736 is fixed. 05:55
there are actually very few tickets I'm finding that are still issues
RT #77786 now has a different failure mode 06:01
06:06 wtw joined, libertyprime left 06:07 kaleem joined 06:08 libertyprime joined
diakopter RT #77014 is fixed 06:14
RT #77038 has a later duplicate 06:15
RT #77158 is fixed 06:23
RT #77174 is fixed 06:26
I'm pretty sure RT #77200 can be closed as invalid 06:28
RT #77224 now fails with a different error 06:30
RT #77248 can be closed imho 06:32
diakopter has been watching Hoarders and Hoarding in the background the last few hours 06:33
06:33 odoacre left 06:34 odoacre joined
diakopter RT #77338 is fixed according to: 06:38
rakudo: role A[::T $?] {}; class B does A[] {}; say "alive"
p6eval rakudo 197e0b: OUTPUT«alive␤»
diakopter RT #77472 now fails silently instead of erroring 06:49
06:54 odoacre left
moritz diakopter++ # ticket triaging 06:56
diakopter++
06:57 brrt joined 06:58 lexande joined
diakopter Also, there are a ton of tickets [Coke] wrote Closable in, but didn't mark test needed 07:06
07:07 immortal joined, immortal left, immortal joined 07:08 fhelmberger joined
Woodi morning 07:08
diakopter RT #76414 is fixed
07:09 charsbar____ joined 07:10 spacebat_ joined, sivoais_ joined
moritz rakudo: my @foo; @foo ,= 1, 2, 3; @foo.perl.say 07:10
p6eval rakudo 197e0b: OUTPUT«Array.new(1)␤»
diakopter RT #76432 is fixed 07:11
07:11 crazed- joined, ivan`` left, erkan left, jnthn_ joined, charsbar___ left, kranius left, crazedpsyc left, ranguard left, sivoais left, Telg left, araujo left, preflex left, jerome_ left, spacebat left, broquaint left, jerome_ joined, wooden left, jnthn left, skids left, Util left, crazed- is now known as Guest54204
moritz doesn't look fixed to me 07:11
diakopter which one is that
moritz still gets only one element
07:11 preflex_ joined, wooden joined, wooden left, wooden joined
moritz RT #76414 07:11
07:11 ranguard joined, kranius joined 07:12 preflex_ is now known as preflex
diakopter oh hm, I must've mistyped/mispasted 07:12
07:12 Util joined
diakopter that's not the one I meant to mention; drat 07:12
07:12 araujo joined, broquaint joined
diakopter oh wait, yes it was. oops; my error. 07:13
moritz rakudo: sub get_fun() { ␤ say 3␤ } ␤get_fun
p6eval rakudo 197e0b: OUTPUT«3␤»
moritz marks testneeded
diakopter is ilbot on our netsplit segment?
moritz yes 07:14
07:14 Facefox left
moritz rakudo: multi sub B() { say "multi" }; &B.wrap(sub {say "before"; callsame; say "after"}); B() 07:14
p6eval rakudo 197e0b: OUTPUT«multi␤»
moritz marks testneeded 07:15
Woodi jnthn: pls resist to use that "d***"... that "cztery litery" is realy low level joke and often shows that someone is low on patience after trying to many possibilities... eg. "I got test failing so I tried to fix it but it was not help. then I tried another way and things goes worse. I try more thing but none help... then I tried *something* and... d***!" - means still failure :)
diakopter wait, why testneeded on that one
it didn't wrap it
moritz diakopter: oh, you're right
07:15 ivan`` joined
Woodi jnthn: just saying things like "...which I guess I have the joy of writing in that oh so expressive langauge, ..." is much better :) 07:16
07:19 Facefox joined 07:21 skids joined 07:23 Telg joined 07:24 odoacre joined 07:35 [hds] joined
dalek kudo/nom: e42d841 | moritz++ | src/core/List.pm:
enable autovivifcation in the sub form of push

fixes RT #77038
07:41
ast: ef0e875 | moritz++ | S02-types/autovivification.t:
RT #77038, &push autovivifies its first argument
ast: dddf111 | moritz++ | S32-exceptions/misc.t:
RT #78370, my &a; sub a { } redeclaration error
07:43
ast: cf0e342 | moritz++ | S32-exceptions/misc.t:
oops, meant to test something else
07:45
07:49 sisar joined 07:51 cognominal_ joined 07:53 cognominal left
sorear o/ sisar 07:54
07:55 sergot joined
sergot morning! o/ 07:55
sorear o/ sergot 07:56
sisar hi sorear ! 07:58
07:59 lestrrat left 08:01 lestrrat joined
sergot sorear: sisar o/ 08:04
;)
08:12 grondilu joined, fgomez joined 08:13 fgomez left, fgomez joined
grondilu is looking forward unsigned native integers 08:17
08:17 grondilu left 08:24 woosley left 08:36 kresike joined
kresike hello all you happy perl developers 08:37
sergot kresike: o/
kresike s/perl/perl6/
sergot, o/ 08:47
08:50 dakkar joined 08:53 snearch joined 09:02 JimmyZ joined
JimmyZ moritz: ping 09:05
moritz JimmyZ: pong 09:06
JimmyZ moritz: I add a comment to github.com/rakudo/rakudo/commit/e42d84135e
moritz JimmyZ: yes, I've seen it, and you're right
JimmyZ: I'm just a bit stressed right now, and with my mind elsewhere
JimmyZ :P 09:07
I didn't understand the code much, just see an unshift sub there and I think that's the same thing 09:08
09:14 JimmyZ left 09:16 lestrrat left 09:18 lestrrat joined
dalek kudo/nom: 306fcd8 | moritz++ | src/core/List.pm:
port autovivification fix to &unshift, JimmyZ++
09:19
kudo/nom: 61e6739 | moritz++ | docs/ChangeLog:
update ChangeLog
moritz nqp: say(pir::isnull(foo)) 09:24
p6eval nqp: OUTPUT«1␤»
arnsholt moritz: In case you didn't see my reply yesterday, parsing with Parsec in Haskell certainly feels different from grammars, but I suspect the capabilities are largely identical 09:25
moritz arnsholt: did you elaborate on how it feels different? 09:27
if yes, I'll backlog :-)
09:29 immortal left 09:30 erkan joined, erkan left, erkan joined
arnsholt moritz: Didn't really elaborate much, no 09:33
But I think the main difference is the combinator style, so my grammar code looks (and is, really) just like the rest of my code 09:34
moritz which probably means the syntax isn't quite as terse as p6 grammars, but more familiar to the haskell hacker 09:35
dalek ast: 0b03c96 | jimmy++ | S02-types/autovivification.t:
&unshift autovivifies its first argument
09:36
09:37 domidumont left
moritz oh right, I also had tests for that, but forgot to commit :-) 09:38
karma jimmy
aloha jimmy has karma of 81.
arnsholt Actually, the syntax is really quite terse 09:40
I have "do { num <- int; char ':'; str <- count num anyChar; char ','; newline }" to parse a netstring. Could probably be compacted a bit if I knew the library better 09:41
09:42 b1rkh0ff joined 09:43 domidumont joined
arnsholt In P6 it'd be something like "token { (\d+) ';' . ** {$1.Int} ",\n" }" 09:43
(I forgot to add "; return str" at the end of the Haskell code, I see now) 09:44
The grammar fragment is a bit shorter, but the Haskell code includes the semantics that would be in the actions in Perl 6 09:45
moritz oh, good point 09:48
dalek ast: aaa71d0 | moritz++ | S05-metasyntax/proto-token-ltm.t:
add tests for proto tokens + LTM, including ** and %

contributed by diakopter++
09:49
arnsholt And I managed to write a combinator for "match this parser exactly N times" in about five minutes
Not sure I'd be able to implement that quite as easily in Perl 6 =) 09:50
moritz that's why it's built in :-)
dalek kudo/nom: 92a95c7 | moritz++ | t (2 files):
bump NQP revision, and run proto token LTM tests by diakopter++
09:51
moritz p6: say ~('a' ~~ /b/)
p6eval pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
..rakudo e42d84, niecza v18: OUTPUT«␤»
10:03 cogno joined 10:12 cognominal_ left 10:13 Guest97602 left 10:14 cognominal_ joined 10:31 JimmyZ joined 10:41 daxim joined 10:43 cogno left 10:49 cogno joined 11:03 lestrrat left, icwiener joined, icwiener left, icwiener joined 11:04 fglock joined, lestrrat joined 11:11 cogno left 11:13 cogno joined 11:20 cogno left 11:21 fglock left, cogno joined 11:24 infosophy joined, infosophy is now known as Guest78369 11:28 Facefox left, mikec_ left, Guest91689 left, mikec_ joined 11:29 sergot left, Facefox joined 11:31 telex left 11:32 telex joined 11:33 mikec_ left, TimToady left, TimToady joined 11:34 mikec__ joined, renormalist left 11:35 renormalist joined
[Coke] apologizes for saying "closable with tests" and not marking testneeded in some cases. whoops. 11:35
moritz no worries, happens 11:36
daxim tell masak macros-progress-report-quantum-yak-shaving =~ s|ad05]|ad05)| 11:37
phenny, tell masak macros-progress-report-quantum-yak-shaving =~ s|ad05]|ad05)| 11:38
phenny daxim: I'll pass that on when masak is around.
11:39 broquaint left, broquaint joined
daxim phenny, tell jnthn_ rakudo-switched-over-to-qregex =~ s|Ementaler|Emmentaler| 11:40
phenny daxim: I'll pass that on when jnthn_ is around.
11:40 adu joined 11:42 adu left
[Coke] daxim: probably want jnthn and not jnthn_ 11:45
unless phenny is smartish
moritz not that smart 11:46
11:48 crab2313 joined
[Coke] r: say 646-86 11:49
p6eval rakudo 92a95c: OUTPUT«560␤»
dalek ast: c72531a | moritz++ | S03-binding/scalars.t:
RT #87034, rebinding of scalars
11:51
11:54 lexande left 12:00 wolfman2000 left, skids left 12:03 plonk joined 12:04 plonk left 12:06 sergot joined
dalek kudo/nom: e2d8762 | moritz++ | src/ (2 files):
typed exception for infix in term position
12:06
ast: ab9c613 | moritz++ | S32-exceptions/misc.t:
RT #83992, proper error message for infix in term position
12:07
12:12 JimmyZ left 12:14 adu joined 12:17 JimmyZ joined
dalek ast: dec32f3 | moritz++ | S04-statements/return.t:
RT #81962, re-binding my &return
12:20
12:21 adu left 12:22 huf left 12:26 icwiener left, cogno left
moritz p6: say so 'u a' ~~ /<.ws>.'a'/ 12:31
p6eval rakudo e2d876, niecza v18: OUTPUT«False␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
moritz p6: say so 'u ' ~~ /<.ws>.$/ 12:32
p6eval rakudo e2d876, niecza v18: OUTPUT«False␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
moritz (that's boiled down from RT #103412) 12:33
is that "works as designed"?
I thought that the built-in ws matched zero-width at word boundaries? 12:34
S05 says: \s+ if it's between two \w characters, \s* otherwise 12:35
12:35 cognominal_ left
moritz and it's not between two \w characters 12:35
so, bug in rakudo *and* niecza?
or am I totally off base now?
12:36 cognominal joined
moritz phenny: tell diakopter I went through all the tickets you mentioned, and closed many, commented on some and fixed some. Thanks! 12:41
phenny moritz: I'll pass that on when diakopter is around.
pmichaud good morning, #perl6 12:43
moritz good am, pm 12:44
pmichaud the examples above (<.ws>) look correct to me
moritz why?
pmichaud oh, maybe not
looking
[Coke] pmichaud: o/ 12:45
pmichaud oh! I think rakudo and niecza implement <.ws> as a token
not a regex
so.... no backtracking 12:46
moritz erm
pmichaud at least, I'm pretty sure that's what rakudo does... can't speak for niecza
moritz but the outer regex controls whether to try it again in a different position, no?
p6: say so 'u ' ~~ /^.<.ws>/ 12:47
p6eval pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
..rakudo e2d876, niecza v18: OUTPUT«True␤»
moritz p6: say so 'u ' ~~ /<.ws>.$/
p6eval rakudo e2d876, niecza v18: OUTPUT«False␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
flussence do builtin regex classes like /<xdigit>/ and /<alpha>/ behave the same as their ctypes equivalent or do they match non-ASCII too? The spec doesn't say... 12:48
pmichaud flussence: non-ascii also... unicode properties
12:50 PacoAir joined
moritz pmichaud: back to the backtracking thing: I understand that <.ws> matches at pos 0, the rest of the regex fails, then the re-engine should try again at pos 1, even though <.ws> is a token 12:51
and at pos 1, both <.ws> and . should match, and then ... oh. 12:52
pmichaud sure, and when it tries again at pos 1, <.ws> matches the space, leaving nothing for the dot
moritz right
ok
pmichaud I'm checking the spec on <.ws>
moritz then I was indeed off-base :-)
it makes sense as is
flussence r: say ("\x[100]".."\x[10000]").grep(/<xdigit>/) 12:53
p6eval rakudo e2d876: OUTPUT«(timeout)» 12:54
flussence r: say ("\x[100]".."\x[1000]").grep(/<xdigit>/)
p6eval rakudo e2d876: OUTPUT«(timeout)»
flussence n: say ("\x[100]".."\x[1000]").grep(/<xdigit>/)
p6eval niecza v18: OUTPUT«(timeout)»
12:55 huf joined
moritz n: say (0xFF .. 0xFFFF).map(&chr).grep(/<xdigit>/) 12:55
p6eval niecza v18: OUTPUT«٠ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩ ۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ߀ ߁ ߂ ߃ ߄ ߅ ߆ ߇ ߈ ߉ ० १ २ ३ ४ ५ ६ ७ ८ ९ ০ ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ੦ ੧ ੨ ੩ ੪ ੫ ੬ ੭ ੮ ੯ ૦ ૧ ૨ ૩ ૪ ૫ ૬ ૭ ૮ ૯ ୦ ୧ ୨ ୩ ୪ ୫ ୬ ୭ ୮ ୯ ௦ ௧ ௨ ௩ ௪ ௫ ௬ ௭ ௮ ௯ ౦ ౧ ౨ ౩ ౪ ౫ ౬ ౭ ౮ ౯ ೦ ೧ ೨ ೩ ೪ ೫ ೬ ೭ ೮ 􏿽xE0􏿽xB3
[Coke] oooh, pretty 12:56
moritz I'm a bit surprised by the selection :-)
.u ¯¯ 12:57
phenny U+00AF MACRON (¯)
sjn nicenice
sjn wonders what font is required to show that last digit 12:58
pmichaud r: say (0xff .. 0xffff).map(&chr).grep(/<xdigit>/); # curious if rakudo keeps up
moritz .u ³
phenny U+00B3 SUPERSCRIPT THREE (³)
p6eval rakudo e2d876: OUTPUT«Invalid character for UTF-8 encoding␤␤ in method chr at src/gen/CORE.setting:2690␤ in sub chr at src/gen/CORE.setting:2884␤ in method reify at src/gen/CORE.setting:5041␤ in method reify at src/gen/CORE.setting:4936␤ in method reify at src/gen/CORE.setting:4936…
pmichaud ...I guess not :-)
flussence I don't think it likes 0xFFFF :)
moritz r: say (0xff .. 0xfffe).map(&chr).grep(/<xdigit>/);
p6eval rakudo e2d876: OUTPUT«Invalid character for UTF-8 encoding␤␤ in method chr at src/gen/CORE.setting:2690␤ in sub chr at src/gen/CORE.setting:2884␤ in method reify at src/gen/CORE.setting:5041␤ in method reify at src/gen/CORE.setting:4936␤ in method reify at src/gen/CORE.setting:4936…
flussence r: say 0xffff.chr
p6eval rakudo e2d876: OUTPUT«Invalid character for UTF-8 encoding␤␤ in method chr at src/gen/CORE.setting:2690␤ in block <anon> at /tmp/XJwd9PhLBW:1␤␤»
daxim for comparison: 12:59
$ perl -C -E'print for grep { /\p{xdigit}/ } map { chr } 0xFF .. 0xFFFF'
moritz it would be nice if it told us *which* character is invalid
daxim 0123456789ABCDEFabcdef
pmichaud it might be the u+d300 chars that are in the way
r: (0xff .. 0x7fff).map(&chr).eager
p6eval rakudo e2d876: ( no output )
pmichaud r: (0x8000 .. 0xffff).map(&chr).eager
p6eval rakudo e2d876: OUTPUT«Invalid character for UTF-8 encoding␤␤ in method chr at src/gen/CORE.setting:2690␤ in sub chr at src/gen/CORE.setting:2884␤ in method reify at src/gen/CORE.setting:5041␤ in method reify at src/gen/CORE.setting:4936␤ in method gimme at src/gen/CORE.setting:5323… 13:00
pmichaud r: (0x8000 .. 0xefff).map(&chr).eager
p6eval rakudo e2d876: OUTPUT«Invalid character for UTF-8 encoding␤␤ in method chr at src/gen/CORE.setting:2690␤ in sub chr at src/gen/CORE.setting:2884␤ in method reify at src/gen/CORE.setting:5041␤ in method reify at src/gen/CORE.setting:4936␤ in method gimme at src/gen/CORE.setting:5323…
pmichaud r: (0x8000 .. 0xcfff).map(&chr).eager
p6eval rakudo e2d876: ( no output )
pmichaud r: (0x8000 .. 0xd2ff).map(&chr).eager
p6eval rakudo e2d876: ( no output )
pmichaud r: (0x8000 .. 0xd300).map(&chr).eager
p6eval rakudo e2d876: ( no output )
moritz Id argue that it should translate even invalid characters
pmichaud r: (0x8000 .. 0xdfff).map(&chr).eager
p6eval rakudo e2d876: OUTPUT«Invalid character for UTF-8 encoding␤␤ in method chr at src/gen/CORE.setting:2690␤ in sub chr at src/gen/CORE.setting:2884␤ in method reify at src/gen/CORE.setting:5041␤ in method reify at src/gen/CORE.setting:4936␤ in method gimme at src/gen/CORE.setting:5323…
pmichaud r: (0xd000 .. 0xd7ff).map(&chr).eager
p6eval rakudo e2d876: ( no output )
pmichaud r: (0xd800 .. 0xdbff).map(&chr).eager
p6eval rakudo e2d876: OUTPUT«Invalid character for UTF-8 encoding␤␤ in method chr at src/gen/CORE.setting:2690␤ in sub chr at src/gen/CORE.setting:2884␤ in method reify at src/gen/CORE.setting:5041␤ in method reify at src/gen/CORE.setting:4936␤ in method gimme at src/gen/CORE.setting:5323…
pmichaud yeah, somewhere in that range.
moritz r : loop (my $x = 0xff; $x < 0xffff; $x++) { chr $x; CATCH { default { say $x } } } 13:01
r: loop (my $x = 0xff; $x < 0xffff; $x++) { chr $x; CATCH { default { say $x } } }
p6eval rakudo e2d876: OUTPUT«55296␤55297␤55298␤55299␤55300␤55301␤55302␤55303␤55304␤55305␤55306␤55307␤55308␤55309␤55310␤55311␤55312␤55313␤55314␤55315␤55316␤55317␤55318␤55319␤55320␤55321␤55322␤55323␤55324␤55325␤55326␤55327␤55328␤55329␤55330␤55331␤55332␤55333␤55334␤55335␤55336␤55337␤55338␤55339␤5… 13:02
pmichaud r: say 55296.fmt('%x')
p6eval rakudo e2d876: OUTPUT«d800␤»
pmichaud en.wikipedia.org/wiki/UTF-16#Code_p...o_U.2BDFFF 13:03
flussence I'm a bit confused at the usefulness of a character class for "match unicode chars that would be a valid hex digit if transliterated to ascii" :/
13:03 bluescreen10 joined
pmichaud The official Unicode standard says that all UTF forms, including UTF-16, cannot encode these code points. 13:03
(from Wikipedia link above)
moritz flussence: well, we should just recognize them in numification without transliteration to ASCII 13:04
flussence oh
pmichaud I don't think that's what that character class means, fwiw. Looking
r: say (0xff..0xd7ff).grep( .chr ~~ /<xdigit>/ ) 13:06
p6eval rakudo e2d876: OUTPUT«No such method 'chr' for invocant of type 'Any'␤ in block <anon> at /tmp/1QuwVd0jjT:1␤␤»
pmichaud r: say (0xff..0xd7ff).grep( chr($_) ~~ /<xdigit>/ ) 13:07
p6eval rakudo e2d876: OUTPUT«Cannot call 'chr'; none of these signatures match:␤:(int $x)␤:(Int:D \$x)␤:(Cool \$x)␤␤ in block <anon> at /tmp/mGbAZmJZ1H:1␤␤»
pmichaud r: say (0xff..0xd7ff).grep( {chr($_) ~~ /<xdigit>/} )
p6eval rakudo e2d876: OUTPUT«(timeout)»
13:07 Psyche^ joined
pmichaud r: say (0xff..0x3fff).grep( {chr($_) ~~ /<xdigit>/} ) 13:08
13:08 Guest54204 is now known as crazedpsyc
p6eval rakudo e2d876: OUTPUT«1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2662 2663 2664 … 13:08
pmichaud r: say 1632.fmt('%x')
p6eval rakudo e2d876: OUTPUT«660␤»
moritz r: say chr(1632) 13:09
p6eval rakudo e2d876: OUTPUT«٠␤»
13:09 cognominal left
pmichaud afk, kid rides to school 13:09
13:09 cognominal joined 13:10 domidumont left, bruges_ left, thou joined, snearch left 13:11 Patterner left, Psyche^ is now known as Patterner
felher perl6: class A { method foo() { say "foo"; } }; A.foo; 13:15
p6eval pugs, rakudo e2d876, niecza v18: OUTPUT«foo␤»
13:16 domidumont joined, bruges_ joined
felher Do i not understand the specs correctly or is it NYI, that method calls on a non-defined Object should fail/die/whatever by default? 13:17
moritz that features is NYI, and questionable :/
problem is that leaving out that feature is also questionable 13:19
felher :D
pmichaud back again 13:23
kresike felher, didn't you just call a class method there ?
pmichaud r: say (0xff..0x3fff).grep( { chr($_) ~~ /<+xdigit-digit>/ } )
p6eval rakudo e2d876: OUTPUT«␤» 13:24
pmichaud right. <xdigit> is a superset of <digit>
felher kresike: No, i guess not. IIRC, every method has a invocant. And by default every invocant parameter is required to be defined. So the code above should fail :) 13:25
kresike: except for new, which doesn't require its invocant to be :D by default :) 13:26
moritz kresike: yes, it's a class method. And there's a recent-ish spec change (half a year old, maybe?) that makes that illegal by default
kresike I see
I'm a noob here, so excuse me if I ask things like this, just trying to get up to speed on things happening here 13:27
moritz the problem it tries to solve is that there are some methods where you have to be very careful not to override the :U (undefined, type object) variant
13:27 skids joined
moritz in particular, if you do type checks like if $x ~~ Int { }, then that goes through Int.ACCEPTS 13:27
but if you do if $x ~~ 3 { }, that *also* goes through Int.ACCEPTS 13:28
so if you write your own type, and write an ACCEPTS method, and forget to contrain it to :D (defined invocant), you break type checking for that type
kresike as master Yoda would say ... 13:29
Much to learn I still have 13:30
:)
moritz I thought '... I have still' :-)
pmichaud '...still I have'
kresike whatever :)
moritz :-) 13:31
r: say <I have still>.pick(*)
p6eval rakudo e2d876: OUTPUT«I still have␤»
moritz rakudo agrees with kresike++
kresike LOL
You guys seem to be taking on all the "easy" challenges of writing a compiler :) 13:33
PerlJam yeah, TimToady does the hard part of synthesizing a language 13:36
13:36 kaleem left
kresike moritz, just out of curiosity, if I write my own type and break it, how is the compiler supposed to "fix" that ? 13:37
PerlJam kresike: complain loudly?
moritz kresike: the compiler is just supposed to have different defaults that make it harder for you to accidentally break stuff
so it would not break if you write method ACCEPTS($other) { ... } 13:38
currently you need to write something along the lines of multi method ACCEPTS(MyType:D: $other) { ... }
(oh, but you still need to write 'multi' in both cases) 13:39
pmichaud I wonder how hard it'd be to get Rakudo to follow the spec change 13:42
moritz well 13:43
the spec change has some open questions still
it wants method new() { } to still dwim 13:44
or at least multi method new() { }
and proposes to set the default in the proto somehow
but last I discussed this with jnthn++, that approach had some problems too
pmichaud oh yes, that makes it much more difficult 13:45
afk, airport 13:48
moritz role A { proto foo(set default to :A somehow) }; class B does A { multi method foo() { } } # what does B.foo accept? 13:49
the signature of B.foo is built immediately, but A composes only at the final }
13:50 fhelmberger left 14:19 isBEKaml joined, wtw left 14:27 erkan left
felher perl6: sub foo( fail("fail in sub foo"); foo().should.print.not.in.sub.foo // die "not in sub foo"; 14:37
p6eval rakudo e2d876: OUTPUT«===SORRY!===␤Invalid typename in parameter declaration at line 2, near "(\"fail in "␤»
..pugs: OUTPUT«*** ␤ Unexpected "(\""␤ expecting word character, "|", ":", "*" or parameter name␤ at /tmp/4dOZW1qBsr line 1, column 14␤»
..niecza v18: OUTPUT«===SORRY!===␤␤In parameter declaration, typename 'fail' must be predeclared (or marked as declarative with :: prefix) at /tmp/xjy2ntLjav line 1:␤------> sub foo( fail⏏("fail in sub foo"); foo().should.print.␤␤Parse failed␤␤»…
felher perl6: sub foo() {fail("fail in sub foo");}; foo().should.print.not.in.sub.foo // die "not in sub foo"; 14:38
p6eval niecza v18: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'fail' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1401 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /home/p6eval/nie…
..pugs: OUTPUT«*** No such method in class Failure: "&should"␤ at /tmp/0vxE8fFrWe line 1, column 39-96␤»
..rakudo e2d876: OUTPUT«fail in sub foo␤ in method <anon> at src/gen/CORE.setting:9317␤ in <anon> at src/gen/Metamodel.pm:2260␤ in any find_method_fallback at src/gen/Metamodel.pm:2258␤ in any find_method at src/gen/Metamodel.pm:828␤ in block <anon> at /tmp/G0HsKC8f1B:1␤␤»…
felher Hm, NYI, it seems :)
moritz huh?
I thought Rakudo was correct
calling a method on the Failure throws the exception embedded in it 14:39
felher moritz: Maybe i misunderstood TimToady++ and the specs, but i thought S02:1359 implies that it doesn't throw the exception, but just return the Failure again. :) 14:40
moritz felher: oh indeed, that part is NYI 14:41
"After the failure is returned, any subsequent attempt to use the 14:42
failure in an C<Any> context will be subject to further failure
analysis, and will likely throw an exception immediately."
erm, unless it's calling methods on it :/ 14:43
felher Well, i really like that not throwing an exception when calling a method on failure. If one has a hash with a default-value of failure("element not in hash"), then once can check %hash<blar>.getSomeObjectThatMightBeThereAndFailOtherwise.sameAgain() with one check. Thats need :) 14:45
... aeh. *one, and *neat 14:46
moritz but it does open up the question on when a Failure actually turns into a thrown exception
14:46 xenu joined
felher Hm, yeah :/ 14:46
xenu hi!
felher o/
xenu should test 22-unicode.t from Perlito pass? 14:47
moritz \o xenu
moritz hopes that fglock knows, but he's not in here
14:49 fgomez left
felher now wonders when a Failure turns into a thrown Exception too. 14:53
TimToady sink context or multi-dispatch failure 14:54
moritz what about .Str and .Stringy?
TimToady if they're defined in Failure, they single dispatch 14:55
moritz are they? 14:56
TimToady I don't know that sort of thing before I have coffee, or whether I'll know it after either... :) 14:57
felher :D 14:58
14:58 fgomez joined
moritz if I have two Failure objects, $f1 and $f2, what does $f1 + $f2 give me? 14:59
TimToady that would presumably throw
this is only for single dispatch failure
if a.b.c.d // die is not practical as a dispatch failover, there are probably other ways to arrange a monad of dependent computations that can detect failure without throwing 15:00
moritz I'm currently trying out some scenarios in my head 15:01
TimToady // could rewrite its left side, for instance, though that feels less clean than the failover to me right now
15:02 fgomez left
moritz my $file = open($filename); my @lines = $file.list.eager; $file.close; # fails while trying to assign a Failure to @lines ? 15:02
15:02 fgomez joined
moritz s/fails/throws/ 15:03
(assuming that open() fails) 15:04
felher Okay, maybe you have already thought of this and discarded the idea for $reasons, but i'd ask nevertheless. What about introducing a special calling syntax for that? We already have .?, .+ and .*. Why not introduce .SOMETHING (say .# for discussion) that works like that? '.#' is hardly larger than '.', is explicit, and doesn't depend on METHOD being defined or not in Failure..
moritz $thing//.foo//.bar 15:05
TimToady if that's going to show up all over the place, I'd rather factor it out; don't want a "const problem" like C++ 15:06
moritz hm 15:08
I wonder if we use the wrong approach here
TimToady moritz: not sure what to do about that, maybe list context also should throw like sink context; that's also a problem for rewriting the LHS
s/that/@lines/
since // is strange to use in list context 15:09
moritz maybe we should default to die() and not to fail(). And to make parallelization happy, we allow every parallelization context to catch exceptions in each thread/whatever, and box it into a Failure 15:10
TimToady I don't just want to slap a try around the LHS because that traps all exceptions, not just failures
moritz and then we can force immediate handling of those Failures
TimToady the // message should only be added for failures, not on any propagating exception
moritz (like, allow type checking for Failure and a single method that returns the payload, and everything else throw immediately 15:11
at some point the programmer has to handle the error conditions anyway; why not right after the parallellization step? 15:12
TimToady maybe, I'll need to think about that s'more when I'm awaker 15:13
moritz it currently feels to me that we're imposing too much cost on the still-very-common single threaded case
TimToady there's little cost when it's in the failover 15:14
successful dispatch never sees it
moritz I'm not just talking about computational cost
but rather mental load
failures are triggered late, but must show the location of the original failure 15:15
TimToady I would submit that // imposes less mental load than exception propagation/trapping
moritz so we must present some kind of 'failtrace' to make it understandable how the failure propagated from the point of failure to the point of throwing 15:16
and the programmer has to understand that
plus the backtrace, to understand how the point of failure was reached 15:17
and masak++ already complains that a single backtrace is too much
TimToady but if we need it for parallel ops anyway... 15:18
this is just running it through a dependent monad rather than an independent one
moritz well, the question is how wide spread those failures will be 15:19
TimToady though not really a monad in the failover design; rewrite is more compile time, which argues for that
moritz decommutes 15:21
15:22 majrmovies joined
felher TimToady: what exactly is the C++ "const problem"? :) 15:22
TimToady having to put a keyword for what should have been a default, so it shows up everywhere 15:23
felher TimToady: i see. Thanks :)
TimToady this is why p6 defaults to readonly parameters
cognominal In C++, I never know if it is the pointer that is a const, or the pointed thing 15:26
TimToady maybe we should have a /// ... that rewrites the a.b.c.d to (((a // ...).b // ...).c // ...).d // ... 15:28
isBEKaml cognominal: yeah, that's sort of confusing. Having to realise const int *ptr and int const *ptr in function declartaions, made me want to cry. :) 15:29
TimToady or maybe there's a metaoperator hiding in there somewhere that /// is an instance of
afk & 15:30
isBEKaml cognominal: *the difference between (typing snafu)
15:36 jnthn_ is now known as jnthn
jnthn ohhai o/ 15:36
[Coke] jnthn!
jnthn This week's teaching is done. \o/
sisar moritz: is_approx does numeric comparison with accuracy of 1e-5. How did you decide that was good enough? Can't the test file define/decide how much accuracy it wants ? 15:38
kresike bye all
15:38 kresike left
skids maybe Failure should just auto-nop unknown methods without die. 15:42
sorear good * #perl6 15:50
sisar sorear: p/ 15:51
*o/
\*/ 15:52
15:55 tokuhiro_ left 15:59 isBEKaml left 16:00 JimmyZ left 16:02 brrt left 16:03 sisar left 16:04 fgomez left 16:17 ChristianS joined 16:25 fgomez joined 16:26 tyatpi left 16:27 sisar joined 16:36 [hds] left 16:40 sivoais_ left 16:41 tyatpi joined 16:46 sivoais joined
dalek : ae3e8e8 | moritz++ | misc/dalek-push.txt:
[dalek] Post-Receive URLs have been renamed by github
16:46
: 86b4827 | moritz++ | misc/dalek-conf.json:
[dalek] remove pull config for partcl repos which now have pushing enabled
16:48
[Coke] moritz++ 16:49
16:55 kaare_ joined
TimToady well, after showering on it, failover semantics are wrongish anyway; what we want is a // that distributes over . somehow 16:56
16:59 dakkar left
colomon .// 16:59
PerlJam a macro? ;)
TimToady or something tryish that only catches the direct failures and hands them to //, if those can be distinguished from deeper exceptions
.// is too noisy
sorear yay! failure discussion 17:00
TimToady if you mean to put it between every cascaded call
sorear: see earlier discussion too
17:00 birdwindupbird left, birdwind1pbird left
TimToady starting at irclog.perlgeek.de/perl6/2012-05-29#i_5652961 17:01
colomon sisar: 1e-5 was just arbitrarily chosen. it's easy enough to manually test with other values, if you need something different. 17:02
TimToady hmm, I wonder if Date can port to niecza now that + et al. are multis 17:03
PerlJam TimToady: you think this distributive tryish thing would only be useful for method calls or other contexts as well?
colomon TimToady: woah, what? 17:04
TimToady dunno, it just feels like there's something more generally monadish in there
I don't like the tryish approach for the same reason as the failover approach: it's a run-time solution to a Maybe-ish problem 17:05
colomon TimToady: multi infix:<+> !!!! oh, that's awesome!
PerlJam If I turn my head just so, there's not a big difference between a.b.c.d and a+b+c+d 17:06
colomon really missed that good old Rakudo feature...
TimToady colomon: yes, I saw that in the latest release annnouncment, and \o/ed
colomon That's what I get for not actually reading the release announcement yet. think it's sitting open in a tab on my other computer.... 17:07
[Coke] colomon: if you don't get to it by this weekend, I can try again (Date)
TimToady tried once too, but is willing to let someone else delegate themselves to do it this time :) 17:08
sisar colomon: hmm, maybe an optional parameter to is_approx can be added to pass it the required accuracy, with default as 1e-5. Or maybe that is unneeded overloading.
TimToady or $*EPSILON
colomon sisar: an optional named argument, maybe 17:09
sisar TimToady: interesting.
colomon is trying Math::Vector in another window
sisar colomon: aye, maybe.
moritz I'd rather not have the basic test functions depend on contextuals or named arguments
17:09 Chillance joined
colomon what moritz++ said. 17:09
Lexical symbol '&infix:<+>' is already bound to an outer symbol (see ??? line 0); 17:10
the implicit outer binding at line 41 must be rewritten as &infix:<+>
before you can unambiguously declare a new '&infix:<+>' in this scope
TimToady is_roughly :)
colomon interesting error...
TimToady something used + before your definition, maybe 17:11
colomon by line number, that's not a definition of infix:<+> at all; it's the definition of dot product, and it's using [+] internally. 17:12
sisar moritz: 'contextuals' ?
like ?
moritz $*EPSILON
sisar oh
colomon though there is a sub infix:<+> later in the class definition.
moritz I think we call them 'dynamic variables' now
TimToady colomon: missing multi? 17:13
17:14 fhelmberger joined
TimToady but really, if infix:<+> is bound to an outer proto, it shouldn't care if you add multis under it 17:14
sorear colomon: defining additional 2-argument infix:<+> subs in the setting is a Bad Idea
TimToady why? 17:15
or do you mean non-multis?
17:15 pmurias joined
pmurias hi 17:15
TimToady lo
sorear TimToady: optimizations 17:16
TimToady either doesn't follow or doesn't buy it. :) 17:17
colomon sorear, TimToady: what I'm looking at now is in Math::Vector (not setting), and does have multis. however, I am defining the multi sub in a class definition, could that be the problem / related to the problem?
sorear colomon: if you want to extend the behavior of CORE::infix:<+> on two arguments, you need to modify Buuiltins.cs
colomon: ah, then you are probably seeing a bug as TimToady++ described
colomon sorear: you're saying that to properly do Date (with its own infix:<+>) should probably involved modifying the stuff in Builtins.cs? Now that you mention it, I probably know 90% of what is needed to do that. Should have thought of that approach months ago... 17:19
sorear colomon: probably moving the new multi ahead of all the uses would help
17:21 kubrat left
colomon sorear: in Math::Vector, I'm not actually trying to using the new infix:<+> multi, I'm trying to use the standard infix:<+> from the setting. Of course, that might be causing the problem... 17:21
TimToady maybe something's trying to install an additional unneeded proto 17:22
since the proto infix:<+> should suffice, supposedly 17:23
s/the/the setting's/
sorear TimToady: no, you were right the first time
TimToady I hate it when that doesn't happen. :)
sorear TimToady: the first + binds to CORE's + dispatcher, then a new dispatcher is created and the symbol binder throws a hissy
colomon: sorry, the compiler can't know which multi you're trying to use 17:25
TimToady the compiler should only care about which proto you're using
colomon errr.... isn't figuring that out the whole point of multiple dispatch?
TimToady multis is run-time
TimToady understands there are potential issues with constant folding 17:26
oops, must afk a bit &
sorear although maybe this behavior isn't a bug at all
diakopter . 17:31
phenny diakopter: 12:41Z <moritz> tell diakopter I went through all the tickets you mentioned, and closed many, commented on some and fixed some. Thanks!
sorear nah, it is a bug, but a slightly nontrivial one 17:32
colomon is glad he doesn't need to figure out how to define new infix:<+>s without referring to older infix:<+>s. 17:33
diakopter RT #76462 is that reference syntax valid? 17:36
rt.perl.org/rt3/Public/Bug/Display...l?id=76462
rakudo: my %h=('a'=>1,'b'=>2); my $h_ref=\%h; say $h_ref.{'a'}
p6eval rakudo e2d876: OUTPUT«Any()␤»
jnthn r: my %h=('a'=>1,'b'=>2); my $h_ref=\%h; say $h_ref.perl 17:37
p6eval rakudo e2d876: OUTPUT«Capture.new( list => ("a" => 1, "b" => 2).list, hash => EnumMap.new())␤»
jnthn Ah, it's somehow gone and stuck it in the capture as if it was a positional arg.
It...prolly shouldn't do that. 17:38
diakopter if I had access to RT I could add that as a comment to the ticket
17:39 sisar left
diakopter well, the behavior has changed on it since it was last commented on 17:39
sorear jnthn: errm, rakudo's behavior does not look like 'positional arg' 17:40
n: my %h=('a'=>1,'b'=>2); my $h_ref=\%h; say $h_ref.perl
p6eval niecza v18: OUTPUT«\({"a" => 1, "b" => 2}.hash)␤»
diakopter someone: RT #76492 is fixed; needs tests
jnthn sorear: ah, hmm, it's list contexted it too
sorear: I'm guessing it should populate the hash portion of the capture. 17:41
oh, maybe not though.
jnthn should read the spec and stopp guessing :)
arnsholt Too much Swedish for jnthn? =) 17:42
diakopter someone: RT #76510 the original complaint is fixed, but the two follow-ons are not; partial testneeded 17:43
17:43 brrt joined 17:44 sisar joined, Kresike joined
Kresike hi all 17:44
sorear hello, Kresike. 17:45
17:46 renormalist left
diakopter r: say 3 17:46
p6eval rakudo e2d876: OUTPUT«3␤»
17:46 renormalist joined
diakopter someone: RT #76610 is fixed; needs tests 17:47
Kresike hello sorear
diakopter someone: RT #76648 is fixed; needs tests 17:48
[Coke] diakopter: what email address do you want me to give you rt privs at? 17:50
diakopter well, my main email address on bitcard is totally broken, let me try to activate wilson_at_cpan_dot_org I'll let you know 17:51
nm, diakopter@gmail should work now 17:53
I guess something about my account or bitcard is now fixed.
moritz rakudo: my $a = 3; my $b := $a; my $c = 3; say $a =:= $b; say $a =:= $c 17:54
p6eval rakudo e2d876: OUTPUT«True␤False␤»
[Coke] yay, perl6 irc logs contain the link to the metacommiter url. ;) 17:55
[Coke] *thinks* he's granted diakopter bugadminrights.
anyone else that's been bugging us? 17:56
hurm. some of these people are no longer with perl6. should we do some cleanup? 17:58
moritz which people?
sorear it's not at all a bad idea to remove privileges from accounts that are no longer used 17:59
[Coke] gist.github.com/2829767
sorear do you remember last year when 'audreyt' was compromised and used to disrupt #perl6?
[Coke]: ahem, some of those people are still very much with us 18:00
[Coke] no, but my memory is often hacked into and replaced with shadows.
sorear like 52 moritz (Moritz Lenz) :P
diakopter sorear: I'm sure [Coke] meant that list to mean all the people who are currently able to access
sorear oh, 13 too 18:01
[Coke] diakopter++ # I thought obviously since my name is on it.
moritz [Coke]: I'll mark who I think should stay active
[Coke] danke. 18:02
the "parrot commit" group is also a member. 18:03
sorear I recommend sending a broad email to p6c or possible even p6a so that anyone affected who shouldn't have been has a chance to appeal
diakopter phenny: tell TimToady another std buglet: gist.github.com/2823010
phenny diakopter: I'll pass that on when TimToady is around.
[Coke] IME, that just opens the door to ask people to say "turn my account back on" even if they never use it.
moritz [Coke]: gist.github.com/2829783 18:04
18:04 sergot left
diakopter [Coke]: how do I add a testneeded tag 18:05
moritz diakopter: click on "Basics" 18:06
diakopter then what
moritz diakopter: and then in the bottom right there is a list of available tags
diakopter not for me
moritz diakopter: do you have any text boxes where you can edit stuff? 18:07
[Coke] moritz: that all seems reasonable.
diakopter yeah; subject, status, queue, owner, time estimated, time worked, time left, priority, final priority
[Coke] diakopter: did you click on the link to bring you out of readonly mode?
moritz diakopter: you should be on an URL like rt.perl.org/rt3/Ticket/Modify.html?id=113408 18:08
diakopter yes
[Coke] moritz: leaving ask in since he's an admin anyway.
moritz [Coke]: ok
[Coke] diakopter: and what does "Logged in as..." say on the top?
diakopter oh weird. it switched me to a different account. 18:09
see, this is the problem I was having with #&%^@& bitcard before
I log in as one account, then later it switches me to another account or logs me out
[Coke] there several people with multiple accounts.' 18:10
I'll just enable your other 2, ok?
diakopter hah, ok
[Coke] or the one. privmsg me it.
18:11 spider-mario joined
diakopter nm I got my other account to work. actually it was my fault. 18:11
bitcard does seem a lot stabler 18:12
than a couple years ago
at least you can reset your automatic login now
sorear o/ spider-mario
spider-mario \o sorear
18:12 DreamingInCode joined, erkan joined 18:15 daxim left
diakopter yay: those fields appear under Basics now [Coke]++ moritz++ 18:16
sorear o/ DreamingInCode
dalek kudo/nom: 9ef8010 | jnthn++ | src/Perl6/ (3 files):
pir:: -> nqp:: for a bunch more stuff in the compiler.
18:17
ecza: c86e3f0 | sorear++ | FETCH_URL:
Move bootstrap pointer to github now that that is working again
18:18
DreamingInCode \o/ sorear
[Coke] parrotbugadminpowers cleansed. 18:20
you may have noticed a minor interruption, as I deleted "parrot group" and added back some people individually that were impacted. 18:21
(e.g. moritz)
18:23 adu joined
dalek p: 14b6fca | jnthn++ | src/PAST/NQP.pir:
Add nqp::can.
18:32
diakopter rakudo: sub foo(@items is copy) { say @items[0..^1]; say @items; }; my @items = 'a'..'g'; foo(@items); say @items; # what should this say? I can't tell whether #74430 is now working
p6eval rakudo e2d876: OUTPUT«a␤a b c d e f g␤a b c d e f g␤»
diakopter n: say ((1,2) X <a b>).perl 18:34
p6eval niecza v18: OUTPUT«(1, "a", 1, "b", 2, "a", 2, "b").list␤»
diakopter r: say ((1,2) X <a b>).perl
p6eval rakudo e2d876: OUTPUT«((ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),)).list␤»
diakopter n: say [(1,2) X <a b>].perl
p6eval niecza v18: OUTPUT«[1, "a", 1, "b", 2, "a", 2, "b"]␤»
diakopter r: say [(1,2) X <a b>].perl
p6eval rakudo e2d876: OUTPUT«[1, "a", 1, "b", 2, "a", 2, "b"]␤»
spider-mario r: sub infix:<€>($a, $b) {[$a, $b]} say ((1, 2) X€ <a b>).perl 18:36
p6eval rakudo e2d876: OUTPUT«===SORRY!===␤Confused␤at /tmp/Ag83oSRsMC:1␤»
spider-mario r: sub infix:<€>($a, $b) {[$a, $b]}; say ((1, 2) X€ <a b>).perl
p6eval rakudo e2d876: OUTPUT«([1, "a"], [1, "b"], [2, "a"], [2, "b"]).list␤»
diakopter p6: class A {has @.s}; my %h='n'=><a1 a2 a3>; say %h<n>.perl;my A $x.=new(:s(%h<n>));say $x.s.perl 18:37
p6eval rakudo e2d876: OUTPUT«$("a1", "a2", "a3")␤Array.new("a1", "a2", "a3")␤»
..pugs: OUTPUT«\"a1"␤\("a1",)␤»
..niecza v18: OUTPUT«$("a1", "a2", "a3")␤["a1", "a2", "a3"].list␤»
18:37 brrt left
diakopter jnthn/sorear: ^^ which is right 18:37
RT #74636 wants both .perl to output the same 18:38
TimToady phenny phood
phenny TimToady: 18:03Z <diakopter> tell TimToady another std buglet: gist.github.com/2823010
TimToady std: gist.github.com/2823010 18:39
p6eval std f179a1b: OUTPUT«ok 00:00 46m␤»
TimToady diakopter: um...
diakopter oh oops I changed that gist since then
sec
jnthn diakopter: I think Rakudo and Niecza's outputs are saying the same thing really. 18:40
diakopter: Or close enough.
diakopter std: gist.github.com/2829948
p6eval std f179a1b: OUTPUT«Use of uninitialized value $x in pattern match (m//) at STD.pm line 66577.␤Use of uninitialized value $x in concatenation (.) or string at STD.pm line 66616.␤===SORRY!===␤Preceding context expects a term, but found infix = instead at /tmp/5i7jNVz5gD…
diakopter jnthn: so are they both right for both .perl (can I mark the ticket testneeded)? 18:41
jnthn diakopter: It's doing what I expect it to do there, yes.
diakopter: That is, it's item-y when it's in a hash value.
TimToady diakopter: well, the error part is correct 18:42
the uninits I presume are what you mean
diakopter yeah; minor nits 18:43
uni-nits even 18:46
18:47 ChristianS left
dalek kudo/nom: 223419d | jnthn++ | / (15 files):
pir::can => nqp::can
18:48
18:49 jdv79 joined
jdv79 github.com/search?q=rakduo&typ...rt_value=1 18:49
are those spelling errors? i typo'd on my search for rakudo.
diakopter yes :)
jdv79 just wondering if rakduo was something real i didn't know about
diakopter I think we'll all typo'd that way 18:50
*we've
jdv79 yay for consistency
jnthn Seems the one in the Rakudo repo is a typo in a commit long ago, and it's since been fixed. :) 18:51
18:51 gesh joined
diakopter p6: sub foo(@a) { @a[0, 1] = <OH NOES> }; my @a = 0, 1; foo(@a); say ~@a 18:58
p6eval pugs, rakudo e2d876, niecza v18: OUTPUT«OH NOES␤»
diakopter TimToady: is @a read-only in the proper way there? ^^
19:06 birdwindupbird joined
diakopter r: sub f { gather for 1 { return; }}; f(); say "alive" 19:11
p6eval rakudo e2d876: OUTPUT«alive␤»
diakopter r: sub f { gather for 1 { return; }}; my @a = f(); say "alive"
p6eval rakudo e2d876: OUTPUT«(signal SEGV)»
diakopter jnthn: ^^ :)
moritz diakopter: read-onlyness of of arrays and hashes is still an open question 19:12
(SEGV) known, I've submitted it not long ago
diakopter oh; it's a duplicate of May 2010 #75174 then 19:13
nm
you commented on that one :)
diakopter should read the whole thing first
19:14 raiph joined
diakopter std: say 1 if 2 if 3 { say 3 } # TimToady have you seen this one? #75230 19:14
p6eval std f179a1b: OUTPUT«Use of uninitialized value $x in pattern match (m//) at STD.pm line 66577.␤Use of uninitialized value $x in concatenation (.) or string at STD.pm line 66616.␤===SORRY!===␤Missing semicolon at /tmp/2yh3PPJvek line 1:␤------> say 1 if 2⏏[31…
diakopter oh! it's different now.
nm
moritz: how do I merge a duplicate 19:16
moritz diakopter: in the "Links" tab
"merge into"
diakopter 75320 and 76878 do you agree? 19:17
if so, which should be merged into which
jnthn: do you remember this? :) [16:36] <jnthn> mathw: I'm trying to work out why it might not be so 19:21
simple as "check if we advanced by any characters"
(that's what I did in the javascript peg for MGrammar - check if it advanced; seemed to work great)
p6: my ::&a &a # is rakudo's error good enough here? I suspect so. 19:26
p6eval niecza v18-1-gc86e3f0: OUTPUT«===SORRY!===␤␤Class required, but symbol table name used instead at /tmp/PfjdZ6XUZN line 1:␤------> my ::⏏&a &a # is rakudo's error good enough he␤␤A type must be provided at /tmp/PfjdZ6XUZN line 1:␤------> my ::[3…
..rakudo 223419: OUTPUT«===SORRY!===␤Cannot use :: as a type name at line 2, near "&a &a # is"␤»
..pugs: ( no output )
jnthn diakopter: No, don't know what I was talking about without more context :)
diakopter <.ws>+
infinitely looping
I've been trying to figure out how to detect possibly zero-width things in the NFA constructor 19:27
and not put them in loops
p6: "a".subst(/<ws>+ $$/, ''); 19:28
19:28 brrt joined
p6eval rakudo 223419, niecza v18-1-gc86e3f0: OUTPUT«(timeout)» 19:28
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
diakopter both rakudo and niecza timeout 19:29
I *think* it should be possible to process an nfa to see if there are any zero-width paths. 19:32
jnthn <ws> ain't declarative though...so it doesn't have an NFA to analyse.
diakopter oh. 19:33
dalek kudo/nom: 3b15966 | jnthn++ | src/ops/perl6.ops:
Fix SEGV that arose from a return in a gather.
19:40
jnthn diakopter: ^^
diakopter rakudo: class A { has $c where 1; }
p6eval rakudo 223419: OUTPUT«===SORRY!===␤Contextual %*PARAM_INFO not found␤»
diakopter jnthn++ # I'll update the ticket 19:41
jnthn guesses update means "tag testneeded"
diakopter yeah
19:43 brrt left
sisar jnthn: did you get a chance to look at irclog.perlgeek.de/perl6/2012-05-23#i_5627900, the backtrace related to module installation failures? 19:43
19:43 brrt joined
sisar is it helpful enough ? 19:43
19:47 brrt left
diakopter std: enum A <a>; enum B <a>; 19:50
p6eval std f179a1b: OUTPUT«===SORRY!===␤Illegal redeclaration of symbol 'a' (see line 1) at /tmp/ExZPJrmV7T line 1:␤------> enum A <a>; enum B <a>⏏;␤Check failed␤FAILED 00:00 40m␤»
diakopter phenny: ask TimToady is this right? std: enum A <a>; enum B <a>;
phenny diakopter: I'll pass that on when TimToady is around.
19:52 MattDMo joined
diakopter p6: $*x = 42; say $*x.WHAT 19:52
p6eval rakudo 223419: OUTPUT«Dynamic variable $*x not found␤ in method <anon> at src/gen/CORE.setting:9317␤ in <anon> at src/gen/Metamodel.pm:2260␤ in any find_method_fallback at src/gen/Metamodel.pm:2258␤ in any find_method at src/gen/Metamodel.pm:828␤ in block <anon> at /tmp/Ivt9zr6xSI:…
..pugs: OUTPUT«Int␤»
..niecza v18-1-gc86e3f0: OUTPUT«Unhandled exception: Writing to readonly scalar␤ at /tmp/qSIatGUdIf line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3910 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3911 (module-CORE @ 558) ␤ at /home/p6eval/niecza/lib…
diakopter p6: $*x = 42;
p6eval rakudo 223419: OUTPUT«Dynamic variable $*x not found␤ in method <anon> at src/gen/CORE.setting:9317␤ in <anon> at src/gen/Metamodel.pm:2260␤ in any find_method_fallback at src/gen/Metamodel.pm:2258␤ in any find_method at src/gen/Metamodel.pm:828␤ in block <anon> at /tmp/Vhay3VPmpQ:…
..niecza v18-1-gc86e3f0: OUTPUT«Unhandled exception: Writing to readonly scalar␤ at /tmp/EGuxWILmSp line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3910 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3911 (module-CORE @ 558) ␤ at /home/p6eval/niecza/lib…
..pugs: ( no output )
diakopter p6: $*x
p6eval pugs, rakudo 223419, niecza v18-1-gc86e3f0: ( no output )
19:53 gesh left 19:54 shinobicl_ left 19:56 MattDMo left, adu left
jnthn sisar: I didn't get to that one just yet. 19:59
sisar: Looking at precomp issues is pretty high on my todo list.
sisar jnthn: no problem :) 20:02
jnthn's-todo-list++
jnthn Yeah, that's my todo list. Always getting incremented. :P
diakopter rakudo: my Int (Str (Int (Str $x))); say $x # hee hee
p6eval rakudo 223419: OUTPUT«Null PMC access in find_method('gist')␤ in sub say at src/gen/CORE.setting:6949␤ in block <anon> at /tmp/VwJO9gqRAu:1␤␤»
jnthn ...wtf. :) 20:03
sisar :)
diakopter that's #73102
xenu i smell lisp in the air 20:04
;)
diakopter rakudo: my Int (Str (Int $x)); say $x.WHAT
p6eval rakudo 223419: OUTPUT«Can only use get_what on a SixModelObject␤ in block <anon> at /tmp/SoV3T4Ob5N:1␤␤»
jnthn Same root cause.
diakopter I wonder what $x is if it's not a SixModelObject 20:05
jnthn A Null PMC, as the message above said. :)
diakopter oh 20:07
jnthn tries the obvious patch
diakopter std: my Int (Str (Int (Str $x)))
p6eval std f179a1b: OUTPUT«ok 00:00 42m␤»
diakopter n: my Int (Str (Int $x)); say $x.WHAT 20:08
p6eval niecza v18-1-gc86e3f0: OUTPUT«Any()␤»
diakopter n: my Int (Str (Int $x)); say $x
p6eval niecza v18-1-gc86e3f0: OUTPUT«Any()␤»
diakopter I have no idea what the nested types are supposed to mean
jnthn We either :)
Hm 20:09
I wonder whether it should be an error though.
sisar diakopter: seeing you here trying out weird syntax stuff on p6eval, i now understand why TimTiady said that you++ write weird code :p 20:10
jnthn hm, obvious fix didn't help much 20:11
jnthn leaves this one for now
diakopter sisar: well, the ones I'm trying today are from 2 years ago when both masak and lue and I went on a fuzzing spree
I'm triaging old tickets to see if behavior changed and tickets need updated 20:12
so far moritz and I have marked probably 40-50 as testneeded
jnthn wow
sisar yeah, I saw that
jnthn diakopter++ moritz++
sisar diakopter++ moritz++
dalek kudo/nom: 0248432 | moritz++ | src/core/control.pm:
typed exception for returning from exhausted routine
20:13
[Coke] r: say 636-101 20:14
diakopter rakudo: my @a=0..*; @a[Inf]=3; say @a[Inf]; # here's an interesting one. its behavior has totally changed 3 times already in the past 2 years
p6eval rakudo 223419: OUTPUT«535␤»
rakudo 223419: OUTPUT«This type cannot unbox to a native integer␤ in method at_pos at src/gen/CORE.setting:5723␤ in method postcircumfix:<[ ]> at src/gen/CORE.setting:1184␤ in block <anon> at /tmp/JkBszJpFDN:1␤␤»
diakopter I think the current behavior seems right.
20:14 imarcusthis left 20:15 benabik left 20:16 benabik joined
dalek ast: e708a8c | moritz++ | S (2 files):
test X::ControlFlow::Return
20:16
[Coke] nom: say NaN.perl
p6eval rakudo 223419: OUTPUT«NaN␤»
[Coke] diakopter: RT #103500
moritz 370 tests for typed exceptions.
[Coke] r: say Inf.int 20:17
p6eval rakudo 3b1596: OUTPUT«No such method 'int' for invocant of type 'Num'␤ in block <anon> at /tmp/bRrcbJ1bu4:1␤␤»
[Coke] r: say Inf.Int
p6eval rakudo 3b1596: OUTPUT«Cannot coerce Inf to an Int␤ in method gist at src/gen/CORE.setting:9312␤ in sub say at src/gen/CORE.setting:6949␤ in block <anon> at /tmp/HdgJCFT331:1␤␤»
diakopter p6: my Hash $x; $x[1] ; say $x.perl # is rakudo correct here now? 20:18
p6eval pugs: OUTPUT«\\()␤»
..rakudo 3b1596, niecza v18-1-gc86e3f0: OUTPUT«Hash␤»
diakopter moritz++ typed exceptions
20:18 imarcusthis joined
moritz they make testing of that stuff much easier 20:19
which was my main motivation
diakopter [Coke]: there are only 101 marked testneeded? 20:20
[Coke] diakopter: yes.
103
diakopter :)
[Coke] rakudo.org/rt/testneeded
diakopter rakudo: say "\xFDD0" # is this correct now? 20:27
p6eval rakudo 3b1596: OUTPUT«===SORRY!===␤Invalid character for UTF-8 encoding␤␤»
diakopter "<lue> apparently it doesn't support the whole of unicode..."
jnthn .u FDD0 20:28
phenny U+FDD0 (No name found)
diakopter ok, marking notabug
20:28 snearch joined
jnthn I'm not sure what we should really do in this case. 20:29
diakopter waits then
jnthn Technically, an NFG string *could* represent it.
diakopter r: class A { method foo($bar:) { say $bar.WHAT } }; A.new.foo( :bar(42) ) # is this okay now 20:39
p6eval rakudo 3b1596: OUTPUT«A()␤»
diakopter "It's questionable whether an invocant can be specified both by the
> dot-call form and by passing a named parameter"
jnthn That ain't doing anything such 20:41
*%_ is collecting the :bar(42)
And $bar isn't a named so it's getting the invocant.
s/so it's/and it's/
20:42 fhelmberger left
diakopter I guess it's not a bug then 20:43
20:49 spider-mario left
gfldex r: gist.github.com/2830624 20:50
p6eval rakudo 3b1596: OUTPUT«#00bb00␤#00aa00␤#00bb00␤#00aa00␤#00bb00␤#00aa00␤#00bb00␤#00aa00␤#00bb00␤#00aa00␤»
diakopter 15:48 <diakopter> r: (1..3).map({$_ => $_*$_}).perl.say
15:48 <p6eval> rakudo 3b1596: OUTPUT«use of uninitialized variable $_ of type Any in
numeric context in block <anon> at /tmp/h5JE2CAnLz:1␤␤use of uninitialized
variable $_ of type Any in numeric context in block <anon> at
/tmp/h5JE2CAnLz:1␤␤use of uninitialized variable $!key of type Any in string
c…
gfldex on cygwin i get "ICU not loaded" for that gist
diakopter 15:49 <diakopter> r: (1..3).map({{$_ => $_*$_}}).perl.say
ugh
r: (1..3).map({$_ => $_*$_}).perl.say
p6eval rakudo 3b1596: OUTPUT«use of uninitialized variable $_ of type Any in numeric context in block <anon> at /tmp/2hcyev09Jp:1␤␤use of uninitialized variable $_ of type Any in numeric context in block <anon> at /tmp/2hcyev09Jp:1␤␤use of uninitialized variable $!key of type Any in string c…
diakopter r: (1..3).map({{$_ => $_*$_}}).perl.say 20:51
p6eval rakudo 3b1596: OUTPUT«({"1" => 1}, {"2" => 4}, {"3" => 9}).list␤»
diakopter gfldex: did you build parrot with icu on cygwin?
(sounds like not)
gfldex i think so, any quick way to check that?
diakopter parrot_config --dump|grep licudata 20:52
gfldex no parrot_config to be found 20:55
20:56 snearch left
diakopter it's not in the same spot where the parrot binary was installed? 20:56
gfldex find can't find it 20:57
diakopter where is the parrot binary?
gfldex ~/rakudo/parrot/parrot 20:58
20:58 libertyprime left, birdwindupbird left
diakopter strange 20:58
I thought parrot_config was always built
I guess you could look in the Makefile 20:59
20:59 libertyprime joined
diakopter for that same string 20:59
gfldex i have more then one cygparrot4.?.?.dll
could it pick the wrong one?
diakopter ohhh.. you didn't build parrot; you used a package?
gfldex i think i will kill the dlls and rebuild
no i used --gen-parrot
diakopter oh
benabik parrot_config is always built with parrot. 21:00
21:06 libertyprime left, wolfman2000 joined 21:07 libertyprime joined, skids left
gfldex no parrot_config on cygwin 21:08
diakopter check for licudata in the Makefile
21:09 raiph left 21:13 ScreenSaudi joined
diakopter rakudo: my $a = "oh hai"; say $a .= "uc"() 21:13
p6eval rakudo 024843: OUTPUT«No such method 'Capture[0xa010b9c]' for invocant of type 'Str'␤ in method dispatch:<.=> at src/gen/CORE.setting:824␤ in block <anon> at /tmp/HbUU8pkkG9:1␤␤»
gfldex no icudata in the Makefile 21:15
i will try to update cygwin 21:16
diakopter gfldex: then ./Configure couldn't find libicu-dev
sorear good * #perl6 21:17
diakopter sorear: hi 21:18
21:18 aesundstrom joined 21:19 pmurias left 21:22 ScreenSaudi left 21:24 kaare_ left 21:28 plobsing_ joined 21:31 plobsing left
diakopter r: enum X <A B C> is export; 21:31
p6eval rakudo 024843: OUTPUT«===SORRY!===␤Error while compiling, type X::Syntax::Confused␤ at line 2, near "enum X <A "␤»
diakopter moritz: what does that mean 21:32
it's RT #71196 21:33
jnthn It means that you put "is export" in the wrong place, I think :)
r: enum X is export <A B C>; 21:34
p6eval rakudo 024843: ( no output )
jnthn Should be that.
diakopter oh
Kresike so was that a bug in diakopter ? :) 21:35
diakopter it was a bug in RT #71196 21:36
jnthn I heard you like bugs, so I put a bug in your bug.
Kresike night all ... 21:39
21:39 Kresike left 21:40 bluescreen10 left 21:41 _jaldhar left, _jaldhar joined
diakopter p6: "" ~~ /<end>/ 21:41
p6eval niecza v18-1-gc86e3f0: OUTPUT«Unhandled exception: Unable to resolve method end in type Cursor␤ at /tmp/KP1T_sOVC4 line 1 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2867 (Regex.ACCEPTS @ 10) ␤ at /tmp/KP1T_sOVC4 line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.… 21:42
..rakudo 024843: OUTPUT«Can not get non-existent attribute '$!pos' on class 'Cursor'␤ in regex <anon> at /tmp/3Q5GDxKqRW:1␤ in method ACCEPTS at src/gen/CORE.setting:9557␤ in block <anon> at /tmp/3Q5GDxKqRW:1␤␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
21:42 rsimoes left, libertyprime left
diakopter that's odd. a Cursor without $!pos ? 21:42
crab2313 Hello #perl6
diakopter jnthn: ^^ ?
21:42 crab2313 left
diakopter crab2313: howdy 21:42
oops
21:43 libertyprime joined, rsimoes joined
jnthn diakopter: The error is a tad misleading. 21:43
21:43 crab2313 joined
jnthn (I know the ticket you're thinking of.) 21:44
21:44 libertyprime left 21:45 kurahaupo joined 21:46 b1rkh0ff left, libertyprime joined 21:48 pupoque joined, libertyprime left, libertyprime joined
crab2313 Hello #perl6 21:50
diakopter howdy 21:51
21:51 icwiener joined
crab2313 diakopter: hello 21:52
diakopter crab2313: are you interested in Perl 6? 21:53
crab2313 diakopter: Yes.
21:54 pupoque left, libertyprime left
diakopter crab2313: are you a Perl 5 user? 21:54
21:54 pupoque joined 21:55 libertyprime joined
crab2313 diakopter: Yes, I'm a Perl 5 user.And I really like Perl. 21:56
21:58 b1rkh0ff joined
jnthn 'night, #perl6 21:59
crab2313 I tried, perl6 --target=pir a.p6 > b.pir , but b.pir didn't work. 22:02
sorear You can just use perl6 a.p6 22:03
--target=pir is not intended for general usage
it only really works as part of the bootstrap
diakopter rakudo: for 1, 2, 3 { NEXT { say "!" }; .say } # why is NEXT executed 3 times 22:04
p6eval rakudo 024843: OUTPUT«1␤!␤2␤!␤3␤!␤»
crab2313 sorear: Thanks.
22:10 pupoque left
diakopter phenny: ask TimToady stdbug/todo: RT #64022 std: my ::MyType ::= :(Num, Str) 22:11
phenny diakopter: I'll pass that on when TimToady is around.
diakopter n: my $foo = "foo"; say $foo R~= "foo" 22:16
p6eval niecza v18-1-gc86e3f0: OUTPUT«Unhandled exception: Writing to readonly scalar␤ at /tmp/nRCvy82Zc6 line 1 (ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3283 (reverseop @ 4) ␤ at /tmp/nRCvy82Zc6 line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3910 (ANO…
diakopter rakudo: my $foo = "foo"; say $foo R~= "foo"
p6eval rakudo 024843: OUTPUT«Cannot assign to a non-container␤ in block <anon> at src/gen/CORE.setting:11297␤ in block <anon> at src/gen/CORE.setting:11309␤ in block <anon> at /tmp/gd7OSqtsEC:1␤␤»
diakopter oops; pasted wrong one; sorry
22:16 DreamingInCode left
diakopter rakudo: my ($x, $y) = <a b>; $x R~= $y; say "$x $y" 22:16
p6eval rakudo 024843: OUTPUT«a ba␤»
diakopter n: my ($x, $y) = <a b>; $x R~= $y; say "$x $y"
p6eval niecza v18-1-gc86e3f0: OUTPUT«a ba␤»
diakopter sorear: are those right? if so, I'll close rakudo's #64818 22:17
17:31 <diakopter> rakudo: say 1.not; 22:32
17:31 <p6eval> rakudo 024843: OUTPUT«False␤»
ugh
r: say False.not
p6eval rakudo 024843: OUTPUT«True␤»
22:33 skids joined 22:34 majrmovies left
sorear diakopter: I do beleive so 22:37
22:38 libertyprime left, libertyprime joined 22:43 tokuhiro_ joined, Chillance left, Chillance joined 23:01 whiteknight joined 23:02 whiteknight is now known as Guest22737
diakopter um. RT broke just as I was using it. I hope I didn't break it. 23:02
Internal Server Error 23:03
23:06 stephenlb joined
diakopter (working now) 23:07
colomon n: my %h; push %h<a>, 4, 2; 23:10
p6eval niecza v18-1-gc86e3f0: OUTPUT«Unhandled exception: Unable to resolve method push in type Any␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/tExMI3vaqb line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3910 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting lin…
colomon n: my %h; %h<a>.push, 4, 2;
p6eval niecza v18-1-gc86e3f0: OUTPUT«Unhandled exception: Unable to resolve method push in type Any␤ at /tmp/610mBnuUAi line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3910 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3911 (module-CORE @ 558) ␤ at /home/p6…
TimToady phenny phood 23:14
phenny TimToady: 19:50Z <diakopter> ask TimToady is this right? std: enum A <a>; enum B <a>;
TimToady: 22:11Z <diakopter> ask TimToady stdbug/todo: RT #64022 std: my ::MyType ::= :(Num, Str)
TimToady diakopter: the two a enums are supposed to cancel and force you to use A::a or B::a 23:15
diakopter ok\
TimToady on the second you can't declare an 'en passant' type without an associated parameter 23:16
std: my ::MyType ::= :(Num, Str)
p6eval std f179a1b: OUTPUT«===SORRY!===␤Multiple prefix constraints not yet supported at /tmp/USQ6xfwKq1 line 1:␤------> my ::MyType ::⏏= :(Num, Str)␤Illegal redeclaration of symbol 'MyType' (see line 1) at /tmp/USQ6xfwKq1 line 1:␤------> my ::MyType[…
TimToady std: my ::MyType $ ::= :(Num, Str)
p6eval std f179a1b: OUTPUT«ok 00:00 43m␤»
diakopter S02 needs updated then 23:17
under Signature Objects
TimToady std: my (::MyType $) ::= :(Num, Str)
p6eval std f179a1b: OUTPUT«ok 00:00 44m␤»
diakopter Signature objects I mean
TimToady std: my (::MyType) ::= :(Num, Str)
p6eval std f179a1b: OUTPUT«ok 00:00 43m␤»
TimToady it's just too ambiguous without the ()
diakopter my ::MySig ::= :(Int, Num, Complex, Status) # is in S02 23:18
23:18 icwiener left
diakopter want me to add the parens to the example? 23:19
23:19 tokuhiro_ left
TimToady no, that's not what it's trying to do 23:19
23:19 tokuhiro_ joined
TimToady that is a fossil from when :: was more of a sigl 23:20
*gil
subset MySig where :() is more like it
or, my \MySig ::= :()
std: my \MyType ::= :(Num, Str) 23:21
p6eval std f179a1b: OUTPUT«ok 00:00 43m␤»
TimToady you can change it to \ if you like 23:22
but subset would be clearer, I suspect
on the enum issue, S12:1932 applies, on the theory that 'enum A <a>' is importing 'a' from 'A' 23:28
one the second import of 'a', that symbol must be poisoned 23:29
such that any attempt to use bare 'a' as an enum value is disallwed
(STD doesn't do this yet) 23:30
diakopter oh
TimToady it's not supposed to blow up on trying to import the second 'a'; it's just supposed to force disambiguoation 23:31
*ua
23:31 tokuhiro_ left
diakopter I'll add those details to both RT tickets 23:31
TimToady btw, the poisioning trick is originally from Ada 23:32
23:32 tokuhiro_ joined, tokuhiro_ left
colomon thinks that was a disturbing line to randomly read on the bottom of his screen 23:32
sorear o/ colomon 23:33
colomon \o
TimToady die...kill...one could write a poem...
diakopter at last 23:34
colomon I thought Sharon Hopkins already did? 23:35
;)
23:35 thou left
diakopter no, irclog.perlgeek.de/perl6/2010-05-11#i_2319752 23:36
23:37 tokuhiro_ joined
colomon diakopter: notice who all was in on that discussion... ;) 23:38
colomon has no idea who Sharon Hopkins actually is....
23:41 thou joined
colomon apparently was wrong about Wikipedia not accepting the word of someone named TimToady on #perl6 about the authorship of that poem. 23:41
23:47 adu joined 23:49 thou left 23:50 lestrrat left, lestrrat joined
dalek ast: 26a959e | (Solomon Foster)++ | S02-types/autovivification.t:
Fudge for Niecza.
23:54
23:59 thou joined