Camelia, the Perl 6 bug

IRC log for #perl6, 2011-12-21

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:03 tadzik g'night #perl6
00:03 sorear bye
00:06 jnthn 'night, tadzik
00:15 whiteknight joined #perl6
00:17 lue Is there a way for me to determine the size of a file without reading the whole thing in and counting the bytes?
00:18 sorear stat
00:19 wolfman2000 joined #perl6
00:20 lestrrat joined #perl6
00:21 replore_ joined #perl6
00:21 kfo joined #perl6
00:26 arlinius joined #perl6
00:26 ab5tract joined #perl6
00:30 kfo joined #perl6
00:30 ispeak_ joined #perl6
00:34 jnthn Sleep time here, and flight and other travel tomorrow. Not quite sure when I'll be online next... Happy hacking. ;-) &
00:37 kfo joined #perl6
00:45 packetknife joined #perl6
00:46 wolverian joined #perl6
00:48 packetkn_ joined #perl6
00:49 kfo joined #perl6
00:49 kfo joined #perl6
00:59 Timbus|Away joined #perl6
01:08 kfo joined #perl6
01:09 drbean joined #perl6
01:16 kfo joined #perl6
01:16 am0c joined #perl6
01:20 Timbus joined #perl6
01:38 packetknife joined #perl6
01:41 kfo joined #perl6
01:49 dalek niecza: 6533fc0 | sorear++ | / (2 files):
01:49 dalek niecza: Restore special treatment for negated character classes; add NIECZA_LTM_PROF for less-verbose tracing
01:49 dalek niecza: review: https://github.com/sorear/niecza/commit/6533fc0fc0
01:49 sorear bootstrap now seems to completely work; speed is back to a reasonable range
01:50 kfo joined #perl6
02:01 woosley joined #perl6
02:19 lestrrat joined #perl6
02:42 drbean joined #perl6
03:27 lue Apparently seek in rakudo comes with one more parameter than stated in the spec.
03:27 lue std: say $*IN.seek(2);
03:27 p6eval std dc62e1d: OUTPUT«ok 00:01 120m␤»
03:36 Psyche^ joined #perl6
04:34 ab5tract joined #perl6
04:39 sorear good * #perl6
04:44 molaf joined #perl6
04:47 ponbiki joined #perl6
04:49 mkramer joined #perl6
04:51 sorear spectest run finished, only 3 failing files
04:52 ab5tract joined #perl6
04:53 dalek roast: 3341d5b | sorear++ | S03-operators/inplace.t:
04:53 dalek roast: [S03-operators/inplace] Clarify niecza fudge so nobody undoes it by mistake
04:53 dalek roast: review: https://github.com/perl6/roast/commit/3341d5b724
05:01 jevin joined #perl6
05:02 sorear S02-lexical-conventions/unicode-whitespace is an interesting test...
05:02 sorear rakudo: eval '1 1'; say "pie";
05:02 p6eval rakudo 89f54d: OUTPUT«===SORRY!===␤Confused at line 1, near "1 1"␤»
05:03 sorear rakudo: say "pie"; eval '1 1';
05:03 p6eval rakudo 89f54d: OUTPUT«pie␤===SORRY!===␤Confused at line 1, near "1 1"␤»
05:03 sorear rakudo: try eval '1 1'; say "pie";
05:03 p6eval rakudo 89f54d: OUTPUT«pie␤»
05:03 sorear rakudo: say try die "pie"
05:03 p6eval rakudo 89f54d: OUTPUT«Exception.new()␤»
05:03 sorear niecza: say try die "pie"
05:03 p6eval niecza v12-99-g6533fc0: OUTPUT«Any()␤»
05:13 mkramer joined #perl6
05:15 thou joined #perl6
05:17 dalek roast: 263189e | sorear++ | S02-lexical-conventions/unicode-whitespace.t:
05:17 dalek roast: [.../unicode-whitespace] Refudge, s/skip/todo/
05:17 dalek roast:
05:17 dalek roast: Because this file uses vertical whitespace that fudge doesn't handle,
05:17 dalek roast: skip annotations should never be used in it.  I've refactored it so
05:17 dalek roast: that todo can be used instead.  Note that v13 will handle many more
05:17 dalek roast: of these tests.
05:17 dalek roast: review: https://github.com/perl6/roast/commit/263189ee76
05:18 sorear ....where by "many more" I apparently mean "all"
05:20 gfldex joined #perl6
05:23 alc joined #perl6
05:24 thinkhy joined #perl6
05:27 thinkhy irc://irc.perl.org
05:39 * sorear now thinks that getting Str<->number coercions working-in-general should be a priority
05:39 drbean joined #perl6
05:49 kaleem joined #perl6
06:02 drbean joined #perl6
06:02 dalek mu: feca358 | lue++ | misc/perl6advent-2011/schedule:
06:02 dalek mu: [advent] Claim the 24th for multi subs
06:02 dalek mu: review: https://github.com/perl6/mu/commit/feca358102
06:02 sorear o/ lue
06:03 PerlJam std: role R1 { method foo {} }; role R2 { method foo { } }; class C does R1 does R2 { }
06:03 p6eval std dc62e1d: OUTPUT«ok 00:01 119m␤»
06:03 PerlJam perl6: role R1 { method foo {} }; role R2 { method foo { } }; class C does R1 does R2 { }
06:03 p6eval niecza v12-99-g6533fc0: OUTPUT«[31m===[0mSORRY![31m===[0m��Action method trait_mod:does not yet implemented at /tmp/_6Fa1bpmIr line 1:�------> [32m R2 { method foo { } }; class C does R1 [33m�[31mdoes R2 { }[0m��Action method trait_mod:does not yet implemented at /tmp/_6Fa1bpmIr…
06:03 p6eval ..pugs b927740:  ( no output )
06:03 p6eval ..rakudo 89f54d: OUTPUT«===SORRY!===␤Method 'foo' must be resolved by class C because it exists in multiple roles (R2, R1)␤»
06:04 sorear PerlJam: rakudo is correct here
06:04 PerlJam I know.  I'm just seeing what the various implementations have to say about it.
06:04 sorear well, niecza also gets the right answer, but for *entirely* the wrong reason
06:31 PerlJam masak: you are down for <some topic> on Dec 22.  Can I suggest DrunkenGymnast be that topic?
06:39 moritz \o
06:48 PerlJam std: class Q { }; class W { is Q; }
06:48 p6eval std dc62e1d: OUTPUT«[31m===[0mSORRY![31m===[0m�Couldn't find terminator ; at /tmp/XzNOLSsmt3 line 1 (EOF):�------> [32mclass Q { }; class W { is Q; }[33m�[31m<EOL>[0m�Parse failed�FAILED 00:01 120m�»
06:48 PerlJam std: class Q { }; class W { also is Q; }
06:48 p6eval std dc62e1d: OUTPUT«ok 00:01 119m␤»
06:49 felher Hui, JSON::Tiny is way faster than in old ng times :)
06:49 PerlJam that first error is LTA
06:51 mkramer joined #perl6
06:51 dalek specs: 117b63f | duff++ | S12-objects.pod:
06:51 dalek specs: small fossil fix
06:51 dalek specs: review: https://github.com/perl6/specs/commit/117b63f4fe
06:55 preflex_ joined #perl6
06:57 koban joined #perl6
07:01 moritz felher: that's great to do hear; do you happen to have numbers?
07:04 wtw joined #perl6
07:08 mkramer left #perl6
07:14 baest joined #perl6
07:32 Trashlord joined #perl6
07:34 felher moritz: after you asked for numbers i did some measurements. Seems like i remembered the old timings wrong. There is still a "small" speed improvement of 10%, though :)
07:34 moritz felher: hm, that's less than I would have expected :/
07:36 felher moritz: what did you expect? :)
07:37 moritz felher: awsomeness, of course :-) maybe a factor 3 or so
07:38 moritz but then I don't think anybody has benchmarked qregex yet :/
07:38 felher moritz: that really would be awesome :D That would be fast enough for me to start hacking on a interface for the notmuch email client :)
07:59 imarcusthis joined #perl6
08:05 carlin joined #perl6
08:08 mj41 joined #perl6
08:12 drbean joined #perl6
08:12 moritz it turns out that parsing a largish JSON file spends 18% in  token str { <-["\\\t\n]>+ }
08:13 moritz not sure if that's because it has so long strings without any escapes, or because the negative char class is inefficient
08:19 felher moritz: how do you do those benchmarks?
08:19 moritz PERL6LIB=blib/lib parrot --runcore=subprof ~/p6/rakudo/install/lib/parrot/3.11​.0-devel/languages/perl6/perl6.pbc -e 'use JSON::Tiny; from-json(open("initial_data.json").slurp)' 2>subprof.log
08:19 felher moritz: thanks :)
08:19 moritz and then   kcachegrind subprof.log
08:42 drbean joined #perl6
08:44 mkramer joined #perl6
09:17 daxim joined #perl6
09:18 dayangkun joined #perl6
09:38 ispeak_ joined #perl6
09:39 dakkar joined #perl6
09:46 felher seems like there is not visualization tool for callgrind that doesn't depend on KDE...
09:56 daxim superior toolkit is superior
09:58 mkramer left #perl6
10:14 sorear felher: kcachegrind depends on QT
10:14 sorear felher: you don't have to actually be running the works
10:14 sorear just have the libraries available in /usr/lib
10:31 daxim kcachegrind is definitely a kde app with direct dependencies on libkdecore4, libkde4, kdebase4-runtime
10:38 xjiujiu joined #perl6
10:40 X99 joined #perl6
10:46 MindosCheng joined #perl6
10:52 felher sorear: there is qcachegrind directory in the tarball. But i'm having trouble with cmake and qt4_automoc currently :)
10:56 mls joined #perl6
10:57 mls moritz: try 'perl6 --profile'
11:00 mls felher: cg_annotate from valgrind might also work for you. But kcachegrind is much nicer
11:02 felher mls: yeah, thnx :) , i know abnout cg_annotate. But i totally agree that kcg is much nicer :)
11:09 nek joined #perl6
11:14 cognominal jnthn: is there a reason for zavolaj still being a git repository independant of rakudo?
11:20 * sorear sleep
11:21 drbean joined #perl6
11:34 envi_ joined #perl6
11:34 flussence perl6: class A { my sub b(self) { say $!c }; has $!c = 1; }; A.new.b; # just curious
11:34 p6eval pugs b927740: OUTPUT«*** ␤    Unexpected "self"␤    expecting word character, "|", ":", "*", parameter name or ")"␤    at /tmp/fXDQsthY6i line 1, column 20␤»
11:34 p6eval ..niecza v12-99-g6533fc0: OUTPUT«[31m===[0mSORRY![31m===[0m��In parameter declaration, typename 'self' must be predeclared (or marked as declarative with :: prefix) at /tmp/4x4vzevB5a line 1:�------> [32mclass A { my sub b(self[33m�[31m) { say $!c }; has $!c = 1; }; A.new.b; [0m��…
11:34 p6eval ..rakudo 89f54d: OUTPUT«===SORRY!===␤Invalid typename in parameter declaration at line 1, near ") { say $!"␤»
11:35 flussence perl6: class A { my sub b(::T $obj = self) { say $obj.c }; has $.c = 1; }; A.new.b; # just curious
11:35 p6eval niecza v12-99-g6533fc0: OUTPUT«[31m===[0mSORRY![31m===[0m��'self' used where no object is available at /tmp/lwfcMtdpnX line 1:�------> [32mclass A { my sub b(::T $obj = self[33m�[31m) { say $obj.c }; has $.c = 1; }; A.new.[0m��GLOBAL::T does not name any package at /tmp/lwfcMtdp…
11:35 p6eval ..rakudo 89f54d: OUTPUT«===SORRY!===␤Symbol 'self' not predeclared in b (/tmp/Na1nqBCYoE:1)␤»
11:35 p6eval ..pugs b927740: OUTPUT«*** No such method in class A: "&b"␤    at /tmp/WIQe6l0XKY line 1, column 69-76␤»
11:36 flussence oh
11:36 flussence perl6: class A { my sub b(T:: $obj = self) { say $obj.c }; has $.c = 1; }; A.new.b; # not expecting this to work either
11:36 p6eval niecza v12-99-g6533fc0: OUTPUT«[31m===[0mSORRY![31m===[0m��In parameter declaration, typename 'T::' must be predeclared (or marked as declarative with :: prefix) at /tmp/dAvTVdV3DP line 1:�------> [32mclass A { my sub b(T::[33m�[31m $obj = self) { say $obj.c }; has $.c = [0m��Pa…
11:36 p6eval ..pugs b927740: OUTPUT«*** No such method in class A: "&b"␤    at /tmp/zs2Ckl6nwK line 1, column 69-76␤»
11:36 p6eval ..rakudo 89f54d: OUTPUT«===SORRY!===␤Invalid typename in parameter declaration at line 1, near " $obj = se"␤»
11:37 flussence perl6: class A { my sub b(T:: $obj = self) { say $obj.c }; has $.c = 1; }; A.new::b; # might help if I got the code right...
11:37 moritz did you mean ::T instead of T:: ?
11:37 p6eval rakudo 89f54d: OUTPUT«===SORRY!===␤Invalid typename in parameter declaration at line 1, near " $obj = se"␤»
11:37 p6eval ..niecza v12-99-g6533fc0: OUTPUT«[31m===[0mSORRY![31m===[0m��In parameter declaration, typename 'T::' must be predeclared (or marked as declarative with :: prefix) at /tmp/A2n_IHldN4 line 1:�------> [32mclass A { my sub b(T::[33m�[31m $obj = self) { say $obj.c }; has $.c = [0m��Pa…
11:37 p6eval ..pugs b927740: OUTPUT«*** No such method in class A: "&new::b"␤    at /tmp/QCn2ID6x0o line 1, column 69-77␤»
11:37 flussence type binding? yeah, didn't seem to work the first time though
11:38 flussence perl6: class A { my sub b($obj = self) { say $obj.c }; has $.c = 1; }; A.new::b;
11:38 p6eval niecza v12-99-g6533fc0: OUTPUT«[31m===[0mSORRY![31m===[0m��'self' used where no object is available at /tmp/UHz1cg9q3W line 1:�------> [32mclass A { my sub b($obj = self[33m�[31m) { say $obj.c }; has $.c = 1; }; A.new:[0m��Qualified references to non-private methods NYI at /tmp/…
11:38 p6eval ..pugs b927740: OUTPUT«*** No such method in class A: "&new::b"␤    at /tmp/oZlFGMw5jj line 1, column 65-73␤»
11:38 p6eval ..rakudo 89f54d: OUTPUT«===SORRY!===␤Symbol 'self' not predeclared in b (/tmp/CBFg79CBux:1)␤»
11:38 flussence not sure why I had the T:: at all
11:38 moritz also with 'my sub' the A::b will never work
11:39 flussence just wondering how much I could shorten lexical sub calls inside classes :)
11:39 fridim_ joined #perl6
11:40 xjiujiu joined #perl6
11:43 flussence .oO( I should probably wait until I'm properly awake before writing code - I just spent 2 minutes trying to figure out why that line was giving me "bash: syntax error near unexpected token `('" locally... )
11:44 mkramer1 joined #perl6
11:53 GlitchMr joined #perl6
11:53 tadzik hmm, any ideas for an advent post?
11:55 flussence if I had anything interesting to write about I'd have done one myself :)
11:55 tadzik :)
11:55 tadzik I accidentaly volunteered :P
11:55 tadzik I think about "few useful modules and example usage"
11:59 flussence could do one about the ecosystem stuff
12:00 tadzik I think there already was one (maybe last year)
12:00 tadzik http://perl6advent.wordpress.com/2010/12/​09/day-9-%E2%80%93-the-module-ecosystem/
12:00 tadzik eww, it uses neutro
12:01 tadzik maybe there is a need for a new one after all
12:02 moritz there is
12:02 flussence or you could go fix up your perl6-MPD code and recycle my post from last year :D
12:02 tadzik true
12:02 tadzik was there an NCI post?
12:03 flussence I did an NCI demo last year, haven't seen one this time around yet
12:03 donri joined #perl6
12:07 tadzik yay, segfault
12:13 cognominal_ joined #perl6
12:17 tadzik is there any up-to-date code working with the new NCI?
12:18 flussence well, I've been fixing up mine... AFAIK the tests in zavolaj haven't been updated yet
12:18 tadzik aye
12:19 * tadzik is looking through jnthn's gists
12:25 tadzik I'm afraid OpaquePointers may be NYI
12:25 tadzik or I just dunno how to use them :)
12:26 tadzik hmm, odd
12:26 tadzik flussence: you have mpd lying around?
12:27 tadzik https://gist.github.com/1505856 segfaults. If you leave out the $s parts it works fine
12:28 flussence joined #perl6
12:29 tadzik so passing connection around works, but song does not
12:30 tadzik ...maybe because I have no song playing :P
12:30 flussence ergh, lousy connection here
12:30 tadzik connection looks ok
12:30 * flussence irclogs the last few lines
12:30 tadzik Richard Cheese/2004 - I'd Like A Virgin/08. Beat It.flac
12:30 tadzik not bad
12:32 tadzik new quest: how to check if I got null
12:32 flussence that'll return a type object, iirc
12:33 bbkr1 joined #perl6
12:33 flussence (I'm not entirely sure what happens if you get null from something that's supposed to return a CPointer thing)
12:34 tadzik I suppose NULL is a valid CPointer
12:34 tadzik well, if the repr is NULL... you know what I mean, right? :)
12:37 * [Coke] yawns.
12:45 flussence I've found a string that crashes perl6.vim's highlighting :D
12:45 flussence # -------------------------------------------------
12:46 moritz :/
12:46 moritz flussence: please submit that as a bug report
12:46 flussence 'k
12:48 tadzik okay, I love new NCI
12:55 flussence oh, wait. updating vim-perl's fixed it
12:58 tokuhirom joined #perl6
13:01 tadzik whoa
13:01 tadzik that does reserve a nice advent post
13:01 flussence and on closer inspection I think it was a local edit to my perl6.vim file that caused it. whoops
13:02 tadzik https://gist.github.com/1505856
13:02 tadzik look from #69
13:05 flussence tadzik++ # wow, that code's tiny!
13:06 flussence (it could be even smaller if we had working DESTROY() :)
13:06 flussence (though come to think of it, would that even work on a CPointer object?)
13:07 tadzik no idea
13:07 tadzik well, I suppose it would, somehow, somewhat :)(
13:07 tadzik I'm quite amazed that method new() Just Worked
13:08 flussence also xmms2++ I guess, for not segfaulting on my sloppy code that doesn't free pointers properly
13:09 tokuhirom joined #perl6
13:11 bluescreen10 joined #perl6
13:26 kaleem joined #perl6
13:26 moritz .oO( now it's xmms3 )
13:32 * moritz stupid
13:33 moritz anyway, JSON::Tiny now passes tests to the level that it did on rakudo 2011.07, partially better
13:39 moritz nom: sub f(%h) { }; f(Hash)
13:39 p6eval nom 89f54d:  ( no output )
13:39 moritz should that work?
13:39 moritz nom: sub f(%h) { say %h.values }; f(Hash)
13:39 p6eval nom 89f54d: OUTPUT«Cannot look up attributes in a type object␤  in method pairs at src/gen/CORE.setting:5197␤  in method values at src/gen/CORE.setting:5195␤  in sub f at /tmp/My9oCaFPxh:1␤  in block <anon> at /tmp/My9oCaFPxh:1␤  in <anon> at /tmp/My9oCaFPxh:1␤»
13:40 moritz I'd argue that %, & and & sigils should always imply :D
13:58 sftp joined #perl6
14:14 colomon joined #perl6
14:16 nvlled joined #perl6
14:23 tadzik why is allegro so odd. It'd make an excellent advent post
14:23 tadzik but how do you get to know about keyboard input? You check in the global array! Life's good!
14:24 colomon ?
14:24 tadzik I wanted to write allegro (drawing library) bindings for Perl 6
14:24 arnsholt For a second I was wondering why tadzik was going on about Allegro Common Lisp (and how it'd be good for an advent post)
14:25 colomon I was thinking lisp as well
14:25 tadzik heh
14:29 colomon tadzik: this allegro?  http://alleg.sourceforge.net/
14:29 tadzik yeah
14:31 colomon tadzik++
14:31 tadzik allegro--
14:31 tadzik global variables! _Global Variables!_
14:31 tadzik eww
14:36 tadzik hmm, lua integration
14:37 tadzik that'd be too much lua, to little perl 6
14:37 tadzik what's some nice C library to write bindings for? :)
14:39 * colomon ponders
14:40 cedric joined #perl6
14:40 cedric tadzik: libperl ;)
14:40 tadzik ha! :)
14:40 tadzik I wish I knew that
14:41 colomon LAME?
14:41 tadzik hmm
14:41 tadzik I was thinking gstreamer or such
14:41 colomon OpenGL?
14:42 tadzik I don't know almost nothing about it :/ I was thinking about something more-less object oriented, so I can show how nicely you can write classes which are really just CPointers
14:42 tadzik have you seen the libmpdclient example?
14:42 colomon yes
14:42 tadzik something of this sort. But not everyone has mpd and will appreciate the results
14:42 tadzik drawing a christmas tree with allegro is probably easier to appreciate :)
14:42 colomon I don't know libmpdclient, though, so I didn't know how much of the object-orientedness was coming from where.
14:43 colomon if you know what I mean
14:43 tadzik yeah
14:53 mikemol tadzik: tk?
14:54 cedric tadzik: my ¢2, it could be nice to get bindings for taglib and then see how this approach differs from the CLR support in Niecza (as described by colomon++ in http://justrakudoit.wordpress.com​/2011/11/06/examining-mp3-tags/)
14:58 colomon ooo, taglib was fun!
14:59 mux tadzik: libfuse would be interesting
15:00 mux and useful
15:01 koban left #perl6
15:02 mikemol You could do some weird stuff with libfuse peering into perl6 innards.
15:02 mux also, sqlite
15:03 mikemol sqlite certainly wouldn't be a simple one to implement.
15:03 mikemol I don't know libfuse's interface. Best option sounds like taglib, for the Niecza comparison cedric notied...
15:03 mikemol *noted
15:07 mux I had missed the "simple" criterion
15:08 mikemol mux: Well, I don't think there is technically a 'simple' criterion, but he was looking for something OO-based.
15:08 mux oh. well I had missed that too
15:08 mux so he wants to write bindings for a _C_ library but that has to be for something vaguely OO?
15:09 mikemol Mapping sqlite3 to OO is *not* trivial. I've spent the last four months doing it. >.>
15:10 mikemol mux: Not as weird as it sounds. The Win32 API, for example, is largely OO in design, even though it's a C binding.
15:11 tadzik yeah, taglib sounds nice
15:12 mux mikemol: I wasn't saying that you can't write OO in C. I come from kernel land after all, where we do that constantly
15:12 mikemol Generally speaking, one prefers C-style bindings for libraries with OO behaviors. It's far simpler than trying to agree on an object marshalling protocol.
15:12 mux the C ABI sure is a hell lot simpler than the C++ one
15:13 mikemol There is no standardized C++ ABI, AFAIK. It depends on using the same compiler and, to an extent, using the same version of said compiler with the same flags.
15:13 mux yeah, sure; s/the C++ one/any C++ one/ if you like
15:13 mikemol And that was another assumption I was trying to edge around, too; C++ isn't the only compiled-to-native-code OO language out there.
15:13 mux sigh. fine.
15:14 tadzik taglib seems to be C++
15:14 mikemol Are there C bindings offered?
15:15 cedric according to my /usr/lib64/pkgconfig/taglib_c.pc: "Description: Audio meta-data library (C bindings)"
15:15 colomon perl6: $_ = "abc"; my $i = 1; s:i($i)/a/b/
15:15 p6eval rakudo 89f54d: OUTPUT«===SORRY!===␤Value of adverb :i must be known at compile time at line 1, near "/a/b/"␤»
15:15 p6eval ..niecza v12-99-g6533fc0:  ( no output )
15:15 p6eval ..pugs b927740: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.​13.20111008/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HAND…
15:15 colomon perl6: $_ = "abc"; my $i = 1; s:i($i)/a/b/; .say
15:15 p6eval niecza v12-99-g6533fc0: OUTPUT«bbc␤»
15:15 p6eval ..rakudo 89f54d: OUTPUT«===SORRY!===␤Value of adverb :i must be known at compile time at line 1, near "/a/b/; .sa"␤»
15:15 p6eval ..pugs b927740: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.​13.20111008/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HAND…
15:15 mikemol Where I work, we code in C++, but we set up a C ABI for our DLLs, because it simplifies maintenance and compatibility.
15:16 mikemol Ah, missed cedric's line in the p6eval output.
15:17 colomon mikemol: sorry, I'm trying to figure out one of the spectests
15:18 mikemol I'm about halfway through S02, but I think the conversion to epub isn't quite right, so I'll have to go back and re-read in HTML.
15:24 cedric tadzik: did you find the C bindings in taglib? ref: "and does provide Glib-style C bindings (currently for the generic API only)" http://developer.kde.org/~wheeler/taglib.html
15:34 tadzik allegro--
15:34 pkkm_ joined #perl6
15:34 tadzik this will never end
15:34 tadzik allegro_init() is not a function. It's a macro
15:34 tadzik cedric: looking
15:35 tadzik cedric: do you see any C api docs?
15:37 * cedric is looking for C API docs
15:39 tadzik there's something in https://github.com/taglib/taglib​/blob/master/bindings/c/tag_c.h
15:40 tadzik let's see how it works
15:40 cedric I didn't find any other doc than tag_c.h :-/
15:42 tadzik looks good enough for me
15:42 daxim http://search.cpan.org/~do​ngxu/Audio-TagLib-1.50_01/
15:47 colomon sorear: what's the point of niecza_quantifier_max?
15:50 dalek roast: 911d8bd | (Solomon Foster)++ | S05- (2 files):
15:50 dalek roast: Fudge for niecza.
15:50 dalek roast: review: https://github.com/perl6/roast/commit/911d8bde16
15:55 thou joined #perl6
15:55 tadzik > perl6 taglib.pl
15:56 tadzik Daft Punk - Technologic
15:56 tadzik yay :)
16:01 cedric tadzik++
16:02 tadzik I'm poking SDL again. The vision of drawing a christmas tree for the advent calendar is too tempting
16:06 masak evenin', #perl6
16:07 tadzik hey masak
16:09 [Coke] colomon: any more fudges planned today?
16:09 [Coke] (wondering when I should kick off the comparison today. ;)
16:09 colomon Go ahead and kick it off, imo
16:11 dalek niecza: 7585370 | (Solomon Foster)++ | t/spectest.data:
16:11 dalek niecza: Turn on S05-substitution/subst.t.
16:11 dalek niecza: review: https://github.com/sorear/niecza/commit/758537073f
16:11 colomon I don't doubt I'll try for more fudging later if I get the chance.  :)
16:12 am0c joined #perl6
16:16 mkramer joined #perl6
16:22 ab5tract joined #perl6
16:26 [Coke] that's another 250 tests or so. colomon++
16:29 [Coke] almost at 60%. (running rakudo now to see if any change there.)
16:33 lutok joined #perl6
16:47 kaleem joined #perl6
16:48 kaleem joined #perl6
16:51 tadzik https://gist.github.com/1506741
16:51 jerome_ joined #perl6
16:51 tadzik diplays info about mp3s, flacs, oggs and whatever taglib handles
16:52 moritz [Coke]: rakudo tests have been rather stable the past days; if new tests pass, then because new tests were written
16:53 flussence tadzik++
16:54 masak tadzik: you, sir, rock.
16:54 flussence btw, I think you left a redundant "class TagFile" at the top
16:54 masak tadzik: what happens if one doesn't free the C pointers at the end?
16:54 tadzik a blog post will appear quite late today, so if there's anything special you'd like to see there, drop me a link
16:54 tadzik masak: memleak
16:54 tadzik nothing more serious I guess
16:54 tadzik flussence: true, thanks :)
16:55 masak tadzik: but the program is ending anyway... :)
16:55 tadzik masak: you should've seen SDL bindings :)
16:57 tadzik If I knew how to draw a line in sdl, I'd write a post about drawing a tree :)
16:58 mikemol sec
16:58 cedric tadzik++: line 37 -> is there a memory leak here? (die without free())
16:59 tadzik cedric: yes, there is, thanks
17:01 mikemol tadzik: http://wiki.libsdl.org/moin.cgi/CategorySurface
17:01 tadzik I don't grok this surfaces, sadly
17:01 tadzik those, even
17:02 mikemol http://rosettacode.org/wiki/Fractal_tree#C
17:02 mikemol Though that example's a mess with all the ifdefs.
17:03 mikemol Bah. Nevermind the RC example. It uses a helper library named SGE.
17:05 tadzik it doesn't need to
17:05 tadzik I just made it work with Sdl and cairo
17:05 tadzik and that's good enough for me
17:05 mikemol :)
17:09 tadzik I'm afraid it's too much magic :/
17:10 tadzik it goes SDL_surface->pixels, and istr we can only access struct member if they're ints, or something of this sort
17:10 tadzik seen jnthn
17:10 aloha jnthn was last seen in #perl6 16 hours 36 mins ago saying "Sleep time here, and flight and other travel tomorrow. Not quite sure when I'll be online next... Happy hacking. ;-) &".
17:12 tadzik bbl
17:12 mikemol tadzik: Someone implemented http://rosettacode.org/wiki/Mandelbrot_set#Perl_6
17:13 mikemol That dumps data to stdout. If you can dump it to an anonymous mmap or some such, and feed the base address of the mmap into an SDL surface (or any other graphics API), then you're double-buffering between p6 space and nativecall space.
17:18 kcwu joined #perl6
17:24 thou joined #perl6
17:25 Util Unimplemented and untested: zipwith and crosswith
17:25 Util $ ack -ail '(?:zip|cross)with' ~/specs ~/roast ~/rakudo ~/niecza
17:25 Util ~/specs/S03-operators.pod:3
17:25 Util END_OF_ISSUE
17:28 Util #phasers in 2min?
17:29 colomon sounds right
17:50 GlitchMr perl6: print 018\
17:51 p6eval rakudo 89f54d: OUTPUT«===SORRY!===␤Confused at line 1, near "print 018\\"␤»
17:51 p6eval ..pugs b927740: OUTPUT«*** ␤    Unexpected end of input␤    expecting "."␤    at /tmp/gsLECG4x9E line 2, column 1␤»
17:51 p6eval ..niecza v12-100-g7585370: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Confused at /tmp/UPbB5N95mf line 1:â�¤------> [32mprint 018[33mâ��[31m\[0mâ�¤Other potential difficulties:â�¤  Leading 0 does not indicate octal in Perl 6; please use 0o18 if you mean that at /tmp/UPbB5N95mf line 1:â�¤------> [3…
17:51 GlitchMr ... accidental character
17:51 GlitchMr perl6: print 018
17:51 p6eval pugs b927740, rakudo 89f54d: OUTPUT«18»
17:51 p6eval ..niecza v12-100-g7585370: OUTPUT«Potential difficulties:â�¤  Leading 0 does not indicate octal in Perl 6; please use 0o18 if you mean that at /tmp/YH7inYRv4e line 1 (EOF):â�¤------> [32mprint 018[33mâ��[31m<EOL>[0mâ�¤â�¤18»
17:51 GlitchMr 0o18... indeed...
17:57 cosimo joined #perl6
18:06 mikemol I'm not sure I understand what the purpose of the test fudging is.
18:07 mikemol Actually, I'm certain I don't understand...
18:14 dalek nqp: fe2175d | moritz++ | tools/build/PARROT_REVISION:
18:14 dalek nqp: bump PARROT_REVISION to 3.11 release
18:14 dalek nqp: review: https://github.com/perl6/nqp/commit/fe2175d55b
18:14 colomon mikemol: well, your average test file probably has about 100 tests in it.  suppose 10 of them don't work in niecza.
18:15 colomon Then you can fudge those 10 to say "this doesn't work" and then add the rest of the tests to the list that is run every time you do a spec test
18:15 moritz mikemol: the purpose is to run test file which would otherwise be blocked on some few, advanced tests
18:15 colomon that means you get the benefit of the 90 tests that do work.
18:16 dalek rakudo/nom: f2c8103 | moritz++ | tools/build/NQP_REVISION:
18:16 dalek rakudo/nom: bump to an NQP that requires parrot 3.11
18:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f2c8103caf
18:16 mikemol Is the fudging of the nature of "don't trust this test for a spectest yet", or "modify this test so that this file doens't hang the interpreter"?
18:17 mikemol i.e. in my PHPUnit tests, I can say $this->skipTest("This test runs long, and isn't useful for $particular_reason right now");, and have the rest of the tests continue.
18:17 colomon mikemol: let me give you a precise example, from subst.t, which I fudged today for niecza
18:18 moritz mikemol: it can be both
18:18 mikemol I'm mostly concerned about long-term consequences of fudging, particularly where it's forgotten to un-fudge them.
18:18 colomon niecza: 'a b c d'.subst(/\w/, 'x', :x(*))
18:18 p6eval niecza v12-100-g7585370: OUTPUT«Unhandled exception: Unable to resolve method niecza_quantifier_max in class Whatever␤  at /home/p6eval/niecza/lib/CORE.setting line 430 (Cool.subst @ 12) ␤  at /tmp/YrrNb0oolj line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2288 (AN…
18:19 colomon so that test was a crash.  I fudged it to skip, so that the complete file would execute.
18:19 mikemol Reasonable.
18:19 colomon If someone forgot to unfudge it?
18:19 colomon I guess it's a bug someone might run into one day.
18:20 moritz and we have tools for automatically remove fudge markers if the tests pass
18:20 mikemol Well, the big thing is that you'd want some kind of trace saying "skipped $n tests", possibly with a test list.
18:20 colomon it's not a particularly useful feature, as :g is equivalent and shorter
18:20 colomon mikemol: which we have
18:20 mikemol ah, k. :)
18:21 colomon there's a lovely script to get the complete breakdown of what is passing and what is fudged in each file.
18:22 colomon and if you want to look at a particular file, running "prove --verbose" on it gives you colored output that points right at the fudged tests.
18:36 [Coke] https://gist.github.com/1476841 - niecza @ 59.29% of rakudo
18:36 pmurias joined #perl6
18:39 [Coke] moritz: looks like 7 more tests.
18:41 * [Coke] ponders turning that into a graph.
18:42 [Coke] heh. if you go to https://raw.github.com/gist/1476841/668dd14e692​dfdeb8898e4fcb963d67ebb70d08b/perl6_pass_rates, chrome says "this page is in polish! Do you want to translate it?"
18:42 [Coke] someone already made that graph, didn't they?
18:45 [Coke] mikemol: http://feather.perl6.nl/~coke/niecza_summary.txt
18:45 flussence ohai
18:46 mikemol cool
18:46 [Coke] also s/niecza/rakudo/ - that's the output of t/spec/test_summary
18:46 flussence https://github.com/flussence/s​pecgraphs/raw/master/impls.png
18:46 moritz flussence++
18:47 [Coke] flussence: is that showing real passes, or what prove shows as passes?
18:47 [Coke] (that is, does it include skips?)
18:48 flussence I'm using TAP::Archive stuff directly to get the results, but I think that counts skips as passes. will have to double check...
18:48 flussence (I've saved all of the TAP output stuff, so fixing it isn't a big deal)
18:48 [Coke] if you can not count skips, I will happily leave all the data collection to you, as you're way ahead of me. ;)
18:49 [Coke] flussence++ # this is awesome. ;)
18:49 [Coke] flussence: ah, it even says this in the bottom of the readme.
18:50 flussence I may be a tad obsessive with this stuff :)
18:59 moritz flussence++ being a tad obsessive
19:05 [Coke] niecza: my $range; '1 3' ~~ /(\d+) \s (\d+)/; $range = $0..$1; say "$range"
19:05 p6eval niecza v12-100-g7585370: OUTPUT«Unhandled exception: cannot increment a value of type Match␤  at /home/p6eval/niecza/lib/CORE.setting line 1130 (List.Str @ 2) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1715 (RangeIter.reify @ 5) ␤  at <unkno…
19:05 [Coke] niecza: my $range; '1 3' ~~ /(\d+) \s (\d+)/; $range = +$0..+$1; say "$range"
19:05 p6eval niecza v12-100-g7585370: OUTPUT«1 2 3␤»
19:06 [Coke] sorear: is the fix for that to make range try to coerce its arguments, or to make Match incrementable?
19:08 slavik1 incrementable match, like a global match that returns a one item from the list at a time?
19:08 slavik1 like a tokenizer of sorts?
19:08 [Coke] no.
19:09 [Coke] like, that range object is really just "1..3", but something internally is taking that 1 and trying to ++ it to get 2, and failing when it's a result of a match as opposed to a string or an number.
19:10 [Coke] rakudo: my $range; '1 3' ~~ /(\d+) \s (\d+)/; $range = $0..$1; say "$range"
19:10 p6eval rakudo f2c810: OUTPUT«Method 'succ' not found for invocant of class 'Match'␤  in sub postfix:<++> at src/gen/CORE.setting:1197␤  in method reify at src/gen/CORE.setting:4198␤  in method reify at src/gen/CORE.setting:4257␤  in method reify at src/gen/CORE.setting:4257␤  in method gimme a…
19:10 [Coke] (so, perhaps the spec test is broken. Iunno.)
19:14 Chillance joined #perl6
19:19 moritz what should it coerce to? Str? Numeric?
19:21 flussence Scalar?
19:23 sorear colomon: (niecza_quantifier_max) I needed some way to get the endpoint values in x ** {$Int} and x ** {$Range}
19:23 sorear colomon: this predates multi subs, and is probably still faster
19:23 moritz flussence: Scalar is a container type
19:23 sorear colomon: another option would be a type-case.
19:24 sorear o/ masak
19:25 flussence moritz: looks like Range just needs to coerce to a "value" type, whatever that turns out to be. Wouldn't .item work?
19:26 sorear [Coke]: I don't know either.
19:26 flussence (maybe we need a method like .item that gets out a string/number from any object)
19:27 sorear mikemol: (there is no standard C++ ABI) this is not quite true. http://refspecs.linuxbase.org/cxxabi-1.83.html
19:28 sorear mikemol: that one is used by multiple implementations across several platforms
19:28 sorear mikemol: your actual point stands, though, since not everyone uses it and you can't count on having it
19:29 colomon sorear: what has me confused is the bit where if the max $Range is Inf, the niecza_quantifier_max is 2_147_483_647
19:31 sorear the return value has to fit in a native int.
19:31 colomon sorear: I had just been about to hack Whatever. niecza_quantifier_max to be Inf when I saw that
19:31 ashleydev flussence: what's that spectest graph made with?
19:32 colomon sorear: does Whatever. niecza_quantifier_max { 2_147_483_647 } seem reasonable to you?
19:32 sorear colomon: no
19:32 sorear colomon: S05:962
19:34 colomon sorear: you mean "If you supply a closure, it should return either an Int or a Range object."?
19:35 dalek roast: b3cf6e6 | moritz++ | S05-mass/stdrules.t:
19:35 dalek roast: tests for <at>
19:35 dalek roast: review: https://github.com/perl6/roast/commit/b3cf6e695e
19:35 dalek roast: 7748996 | moritz++ | S06-routine-modifiers/proxy.t:
19:35 dalek roast: fix Proxy tests to not use indirect method syntax, and use methods as callbacks, as per current S06
19:35 dalek roast: review: https://github.com/perl6/roast/commit/77489967fc
19:35 sorear colomon: yes
19:36 colomon sorear: niecza is using niecza_quantifier_max for the :x() argument in subst
19:36 colomon sorear: that can be :x(*) according to the spectests
19:37 fridim_ joined #perl6
19:37 dalek rakudo/nom: 18f12d5 | moritz++ | t/spectest.data:
19:38 dalek rakudo/nom: run Proxy tests
19:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/18f12d5812
19:45 flussence ashleydev: the graph's done using gnuplot scripts, data files for that are generated using perl5
19:46 flussence (I know about Chart::Gnuplot, but it was pretty limited so I ended up doing it manually)
19:56 Trashlord joined #perl6
19:57 sorear colomon: well, that was stupid.
19:57 colomon okay :)
19:57 * [Coke] yays that auto-unfudge mostly just works.
19:58 sorear I guess we need more than one kind of {Range,Int} -> Int thingie
19:58 sorear unsure what the best design would be
19:58 [Coke] moritz++ # I think.
19:59 dalek roast: da96407 | moritz++ | S12-attributes/mutators.t:
19:59 dalek roast: mostly rewrite S12-attributes/mutators.t
19:59 dalek roast:
19:59 dalek roast: The previous revision did funny things like providing an lvalue accessor
19:59 dalek roast: that unconditionally called the lvalue accessor. It also assumed
19:59 dalek roast: that initialization via .new(a => 1) called the lvalue accessor.
19:59 dalek roast: Oh, and it contained most tests twice.
19:59 dalek roast: review: https://github.com/perl6/roast/commit/da96407b64
20:00 colomon sorear: At least for the :x-like modifiers, it seems more like a {*,Range,Parcel of Ints,Int} -> Int thingie
20:00 [Coke] niecza: say +Bool::True ~~ Numeric
20:00 p6eval niecza v12-100-g7585370: OUTPUT«Bool::True␤»
20:01 moritz phenny: tell jnthn at your convenience, please take a look at S12-attributes/mutators.t. It seems to die in   $!varies +=2  with "No applicable candidates found to dispatch to for 'Numeric'", which I find quite weird, since $!varies is typed Int
20:01 phenny moritz: I'll pass that on when jnthn is around.
20:02 sorear colomon: sounds to me like it would be used only in subst, so best to write it as a given/when
20:02 colomon sorear: sure
20:03 sorear Helmut W: "if this works, what can I do for you?
20:03 colomon .... actually, might be used in match as well, no?  I think a lot of the same modifiers apply there
20:03 sorear :(
20:03 colomon still, simple minor subroutine maybe.
20:04 sorear colomon: :x in match depends on pmichaud returning
20:04 sorear or someone else who can properly explain lol semantics to me
20:08 proller joined #perl6
20:11 japhb sorear, re: "05:39* sorearnow thinks that getting Str<->number coercions working-in-general should be a priority" -- Unless you were speaking in a Niecza-specific sense, this brings us back to Failure again
20:11 phenny japhb: 19 Dec 08:33Z <jnthn> tell japhb it's pretty much top of the list; I know exactly how to do it :)
20:12 * japhb looks forward to jnthn's next CArray commits then.  ;-)
20:12 sorear japhb: mm?  yes I am speak nieczaishly
20:12 sorear niecza: say 3**32
20:12 japhb ah, gotcha
20:12 p6eval niecza v12-100-g7585370: OUTPUT«1853020188851841␤»
20:12 sorear niecza: say +(~(3**32))
20:12 p6eval niecza v12-100-g7585370: OUTPUT«1.85302018885184E+15␤»
20:12 sorear niecza: say +(~(3**32)).WHAT
20:12 p6eval niecza v12-100-g7585370: OUTPUT«Unhandled exception: System.FormatException: Invalid format.␤  at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 ␤  at System.Double.Parse (System.String s, IFormatProvider provider) […
20:12 sorear niecza: say (+(~(3**32))).WHAT
20:12 p6eval niecza v12-100-g7585370: OUTPUT«Num()␤»
20:13 japhb Ow.
20:13 fsergot joined #perl6
20:13 japhb I see what you mean
20:13 fsergot hi o/ !
20:13 japhb o/
20:14 dalek roast: 62db446 | moritz++ | S06-routine-modifiers/lvalue-subroutines.t:
20:14 dalek roast: try to bring some sanity to lvalue-subroutines.t
20:14 dalek roast:
20:14 dalek roast: not sure if I succeeded
20:14 dalek roast: review: https://github.com/perl6/roast/commit/62db4460f3
20:14 sorear niecza: say (+(~pi)) - pi # I'm actually unsure if this will work
20:14 p6eval niecza v12-100-g7585370: OUTPUT«0␤»
20:14 sorear niecza: my $num = pi ** 3; say (+(~$num)) - $num
20:14 p6eval niecza v12-100-g7585370: OUTPUT«-2.48689957516035E-14␤»
20:15 fsergot I'm back after a long break :)
20:17 fridim_ I just read the news about the recent donation of Booking.com ! Wah.
20:18 molaf joined #perl6
20:28 Radvendii joined #perl6
20:29 masak booking++
20:30 Radvendii nom: my @a=[0,1],[2,3]; for @a -> $b, $c {say $b, ": ", $c}
20:30 p6eval nom 18f12d: OUTPUT«0 1: 2 3␤»
20:31 Radvendii b: my @a=[0,1],[2,3]; for @a -> $b, $c {say $b, ": ", $c}
20:31 p6eval b 1b7dd1: OUTPUT«0 1: 2 3␤»
20:32 Radvendii How do I make it split [0,1] in a for loop
20:32 Radvendii ?
20:34 bbkr1 joined #perl6
20:34 [Coke] sorear: any issues with applying http://feather.perl6.nl/~coke/autounfudge.patch (created automatically by autounfudge)
20:35 kaleem joined #perl6
20:35 sorear fridim_: what?
20:35 kthakore tadzik: still pooking at SDL?
20:36 kthakore poking*
20:36 [Coke] (assuming that make spectest doesn't mind.)
20:37 [Coke] niecza: say lc('A'..'C')
20:37 p6eval niecza v12-100-g7585370: OUTPUT«a b c␤»
20:37 sorear [Coke]: assuming it passes, I don't see anything hroribly wrong.
20:38 [Coke] Danke.
20:38 Radvendii how do i for loop over something, without modifying the values (making copies)
20:40 Radvendii like for @a is copy {} or something
20:41 Radvendii nom: my @a=1,2,3; for @a is copy {$_++};say @a;
20:41 p6eval nom 18f12d: OUTPUT«===SORRY!===␤Missing block at line 1, near "is copy {$"␤»
20:41 Radvendii nom: my @a=1,2,3; for @a -> $_ is copy {$_++};say @a;
20:41 p6eval nom 18f12d: OUTPUT«1 2 3␤»
20:41 proller joined #perl6
20:41 Radvendii ooh
20:42 Radvendii b: my @a=1,2,3; for @a -> $_ is copy {$_++};say @a;
20:42 p6eval b 1b7dd1: OUTPUT«123␤»
20:43 tadzik kthakore: nah
20:44 MayDaniel joined #perl6
20:44 tadzik kthakore: I couldn't make it display a line
20:44 Radvendii b: my @a=[0,1],[2,3],[4,5]; for @a -> $_ is copy {.shift};say @a;
20:44 p6eval b 1b7dd1: OUTPUT«135␤»
20:44 Radvendii ah ha!
20:45 tadzik but I didn't try very hard
20:45 Radvendii it's not a copy
20:45 colomon Radvendii: ?
20:45 colomon b: my @a=1,2,3; for @a -> $_ is copy {++$_};say @a;
20:45 p6eval b 1b7dd1: OUTPUT«123␤»
20:46 colomon niecza: my @a=1,2,3; for @a -> $_ is copy {++$_};say @a;
20:46 p6eval niecza v12-100-g7585370: OUTPUT«1 2 3␤»
20:46 Radvendii nom: my @a=[0,1],[2,3],[4,5]; for @a -> $_ is copy {.shift};say @a;
20:46 p6eval nom 18f12d: OUTPUT«1 3 5␤»
20:46 Radvendii it removes an element
20:46 Radvendii .shift
20:47 Radvendii even though it's a copy
20:47 colomon ah, yes.
20:47 Radvendii why? what to do?
20:47 Radvendii niecza: my @a=[0,1],[2,3],[4,5]; for @a -> $_ is copy {.shift};say @a;
20:47 p6eval niecza v12-100-g7585370: OUTPUT«1 3 5␤»
20:49 Radvendii is that intentional?
20:49 colomon I'm not sure.  sorry, I've tangled my brain in knots looking at your problem.
20:49 Radvendii hahaha
20:50 colomon perl6: my @a=1..3; for @a -> $x is copy { $x = 1 }; say @a;
20:50 p6eval pugs b927740: OUTPUT«123␤»
20:50 p6eval ..rakudo 18f12d, niecza v12-100-g7585370: OUTPUT«1 2 3␤»
20:50 colomon so everyone agrees that's a copy
20:50 Radvendii yes
20:50 colomon perl6: my @a=[0,1],[2,3],[4,5]; for @a -> $x is copy { $x.shift }; say @a
20:51 p6eval rakudo 18f12d, niecza v12-100-g7585370: OUTPUT«1 3 5␤»
20:51 p6eval ..pugs b927740: OUTPUT«135␤»
20:51 colomon perl6: my @a=[0,1],[2,3],[4,5]; for @a -> $x is copy { $x = 0 }; say @a
20:51 p6eval rakudo 18f12d, niecza v12-100-g7585370: OUTPUT«0 1 2 3 4 5␤»
20:51 p6eval ..pugs b927740: OUTPUT«0 12 34 5␤»
20:52 Radvendii it's just shift that is the problme
20:52 Radvendii try pop?
20:53 Radvendii niecza: my @a=[0,1],[2,3],[4,5]; for @a -> $_ is copy {.pop};say @a;
20:53 p6eval niecza v12-100-g7585370: OUTPUT«0 2 4␤»
20:53 Radvendii pop too
20:53 colomon I guess it's a very shallow copy
20:53 colomon but I don't really like that explanation
20:53 Radvendii yeah, it's pretty counter-intuitive what it does
20:55 Radvendii perl6: my @a=[0,1],[2,3],[4,5]; for @a -> $_ is copy {$_[0]=6};say @a;
20:55 p6eval rakudo 18f12d, niecza v12-100-g7585370: OUTPUT«6 1 6 3 6 5␤»
20:55 p6eval ..pugs b927740: OUTPUT«6 16 36 5␤»
20:56 [Coke] colomon: test failures for me in radix.t
20:56 Radvendii it's any time you access a part of the element
20:56 colomon [Coke]: me too
20:56 [Coke] ah, ok. I'll fudge it.
20:57 wallberg joined #perl6
20:57 alvis joined #perl6
21:01 masak 'night, #perl6
21:01 Radvendii goodnight
21:02 tadzik g'night masak
21:02 colomon \o
21:03 colomon [Coke]: I presume it's related to sorear's rewriting that code.  But I haven't stopped to check it out yet.
21:04 [Coke] colomon: fudging every test doesn't help, so I think sorear broke it, yes.
21:04 Radvendii colomon: any ideas regarding the shallow copying?
21:04 [Coke] Dies in the setting.
21:05 colomon Radvendii: in what sense?  I don't like it, but it might be right.
21:05 Radvendii as in, it's what should be happening?
21:05 Radvendii that doesnt make sense...
21:06 colomon it's awfully consistent across implementations to be an accident
21:07 sorear Radvendii: copy copies the pointers
21:08 sorear this behavior is par for the course with computer languages that use mutable objects
21:08 Radvendii is there a way to do a deep copy?
21:08 Radvendii besides saying $a=$_ inside the for loop
21:10 Radvendii is there a way to define something like
21:10 Radvendii "is deepcopy"
21:10 Radvendii ?
21:13 REPLeffect joined #perl6
21:13 Radvendii even $a=$_ doesnt work!!
21:13 colomon nope, it's still a shallow copy
21:13 Radvendii perl6: my @a=[0,1],[2,3],[4,5]; for @a -> $_ {$a=$_;$a[0]=6};say @a;
21:14 p6eval rakudo 18f12d: OUTPUT«===SORRY!===␤Variable $a is not predeclared at line 1, near "=$_;$a[0]="␤»
21:14 p6eval ..pugs b927740: OUTPUT«*** ␤    Unexpected "=$"␤    expecting "::"␤    Variable "$a" requires predeclaration or explicit package name␤    at /tmp/fqk7tOujp9 line 1, column 42␤»
21:14 p6eval ..niecza v12-100-g7585370: OUTPUT«[31m===[0mSORRY![31m===[0m��Variable $a is not predeclared (did you mean @a?) at /tmp/to1B1hcFHN line 1:�------> [32mmy @a=[0,1],[2,3],[4,5]; for @a -> $_ {[33m�[31m$a=$_;$a[0]=6};say @a;[0m��Variable $a is not predeclared (did you mean @a?) at /t…
21:14 Radvendii perl6: my @a=[0,1],[2,3],[4,5]; for @a -> $_ {my $b=$_;$b[0]=6};say @a;
21:14 p6eval rakudo 18f12d, niecza v12-100-g7585370: OUTPUT«6 1 6 3 6 5␤»
21:14 p6eval ..pugs b927740: OUTPUT«6 16 36 5␤»
21:14 Radvendii so how do i do a deep copy? (without a loop)?
21:14 colomon nom: my @a=[0,1],[2,3],[4,5]; for @a -> $_ { my @b = @$_; @b[0] = 6; } ; say @a
21:14 p6eval nom 18f12d: OUTPUT«0 1 2 3 4 5␤»
21:15 Radvendii great. back to @$... okay
21:15 Radvendii thanks
21:15 Radvendii ive gotta go
21:16 Radvendii bbl
21:16 bbkr1 rakudo: sub foo ( Bool $t ) { $t.say }; foo( :t ); # am I right by saying that param in bool context without value should evaluate to true?
21:16 p6eval rakudo 18f12d: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤  in sub foo at /tmp/mPePp4oYTL:1␤  in block <anon> at /tmp/mPePp4oYTL:1␤  in <anon> at /tmp/mPePp4oYTL:1␤»
21:17 bkolera joined #perl6
21:17 overrosy joined #perl6
21:19 dalek roast: 0b449f6 | coke++ | S (42 files):
21:19 dalek roast: niecza unfudge (mostly from autounfudge)
21:19 dalek roast: review: https://github.com/perl6/roast/commit/0b449f6f3e
21:19 bbkr1 nvm, found that, now it's (Bool :$t) - with semicolon
21:20 [Coke] colomon: apparently we need to run that more often (touched 42 files!)
21:20 colomon [Coke]: run what?
21:20 colomon oh, auto unfudge
21:20 colomon [Coke]++
21:21 [Coke] phenny: tell mikemol that roast: 0b449f6 was pretty much an automated tool figuring out what tests that had previously been skipped are now passing.
21:21 phenny [Coke]: I'll pass that on when mikemol is around.
21:21 mikemol phenny: Tell [Coke] I'm here.
21:21 phenny mikemol: 21:21Z <[Coke]> tell mikemol that roast: 0b449f6 was pretty much an automated tool figuring out what tests that had previously been skipped are now passing.
21:22 bkolera joined #perl6
21:22 mikemol [Coke]: Cool
21:22 colomon [Coke]: how does it work?
21:23 bkolera joined #perl6
21:23 [Coke] it's the same one as from rakudo (that one assumes you have a ./perl6 and a tools/perl6-limited*) ... it finds all the fudged tests you're running, and tries backing out each skip/todo. when it finds one that doesn't cause an error, it saves it to a .patch file
21:23 colomon niecza: say "-1".atan2("2")
21:23 p6eval niecza v12-100-g7585370: OUTPUT«-0.463647609000806␤»
21:23 colomon [Coke]: sweet
21:24 [Coke] so when you're done, you just apply the patch (test if you're paranoid) and done.
21:24 [Coke] colomon: I think it was a moritz++ special.
21:24 colomon did you spectest?
21:24 [Coke] aye.
21:24 colomon [Coke]++
21:25 [Coke] one of the unfudges was bad, and another (todo) one was missed, probably because roast got updated in between.
21:25 [Coke] so I fixed those 2.
21:26 colomon how long did it take to run?
21:27 bacek joined #perl6
21:29 [Coke] No clue.
21:29 [Coke] definitely faster for niecza than rakudo.
21:29 colomon minutes?  hours?  days?
21:30 [Coke] no more than hours.
21:30 [Coke] probably less than one.
21:30 colomon sweet
21:31 bkolera1 joined #perl6
21:31 tadzik advent post preview! http://perl6advent.wordpress.​com/?p=1037&amp;preview=true
21:31 tadzik please criticise
21:32 fieldsa joined #perl6
21:32 [Coke] Error 404 - Not Found
21:32 tadzik not logged in, maybe?
21:33 [Coke] ah.
21:35 [Coke] logged in. 404.
21:35 tadzik hrm
21:35 [Coke] probably don't have perms.
21:36 [Coke] colomon: we'll hit 60% tomorrow unless there's a rakudo surge. ;)
21:36 tadzik how about now?
21:36 [Coke] 404
21:36 [Coke] I may just not have privs, seriously.
21:36 tadzik [Coke]: https://gist.github.com/1507821
21:37 [Coke] 404! (jk)
21:37 tadzik ohh, you've got to be kidding me
21:37 tadzik oh, ok ;)
21:37 colomon reading it now
21:37 colomon [Coke]: or I get sidetracked making actual improvements to niecza.  ;)
21:37 y3llow_ joined #perl6
21:38 [Coke] neceserilly -> necessarily
21:38 pothos_ joined #perl6
21:38 bkolera joined #perl6
21:38 tadzik thanks
21:38 [Coke] colomon: nah, we're already there, I think.
21:38 tadzik colomon: you wrote a similar thing for niecza, iirc?
21:38 tadzik yep, found it
21:38 colomon taglib, yes
21:40 [Coke] "and react appropriately Perl 6 way" ... react *in an* app.. ?
21:40 mj41 joined #perl6
21:40 tadzik probably, I wasn't quite sure about this one. Thanks again :)
21:40 y3llow joined #perl6
21:40 colomon tadzik++
21:40 [Coke] in the good, old C ~~ s/the// ?
21:41 ksi joined #perl6
21:41 [Coke] tadzik++ #indeed!
21:41 [Coke] that's awesome.
21:41 colomon [Coke]++'s suggestions are all good.
21:41 [Coke] I love the lack of XS. ;)
21:41 pothos joined #perl6
21:41 tadzik :)
21:41 colomon and tadzik, it was great you could get this working so quickly.
21:41 tadzik yeah, it's pretty cool.
21:41 tadzik I've tried like 5 libraries today, mpdclient, taglib, allegro, sdl, cairo...
21:42 tadzik wanted to draw a Christmas tree :)
21:42 tadzik but music's good too
21:42 tadzik publishing
21:42 [Coke] I wonder, if you change the type of that gist to .pod, will it render htmly?
21:42 tadzik no eye deer
21:42 donaldh joined #perl6
21:42 y3llow joined #perl6
21:43 tadzik ba-dam! http://perl6advent.wordpress.com/2011/​12/21/native-libraries-native-objects/
21:44 [Coke] whoops: Deamon -> Daemon
21:44 [Coke] sorry I missed that one.
21:44 tadzik huh
21:44 tadzik no problem with that
21:44 flussence joined #perl6
21:44 pothos joined #perl6
21:44 tadzik done
21:46 [Coke] tadzik++, nice post.
21:46 colomon oh, noez, git trouble
21:48 colomon ah, dreaded trailing whitespace
21:53 fsergot joined #perl6
21:55 dalek niecza: c184ec8 | (Solomon Foster)++ | lib/CORE.setting:
21:55 dalek niecza: Allow :x(*) in subst.
21:55 dalek niecza: review: https://github.com/sorear/niecza/commit/c184ec8e38
21:55 dalek roast: 024f20c | (Solomon Foster)++ | S05-substitution/subst.t:
21:55 dalek roast: Unfudge tests that now work.
21:55 dalek roast: review: https://github.com/perl6/roast/commit/024f20cc50
22:00 fridim_ joined #perl6
22:20 fridim_ joined #perl6
22:20 fsergot joined #perl6
22:36 dalek roast: 4bc3e06 | (Solomon Foster)++ | S12-attributes/instance.t:
22:36 dalek roast: Fudge for niecza.
22:36 dalek roast: review: https://github.com/perl6/roast/commit/4bc3e06f3e
22:37 dalek niecza: 22261b4 | (Solomon Foster)++ | t/spectest.data:
22:37 dalek niecza: Turn on S12-attributes/instance.t.
22:37 dalek niecza: review: https://github.com/sorear/niecza/commit/22261b4f37
22:38 colomon [Coke]: there's another 80 or so.
22:58 Radvendii joined #perl6
22:59 Radvendii hello
23:01 colomon o/
23:01 sorear o/
23:01 Improv joined #perl6
23:02 Radvendii can i do for @a -> @$b {}?
23:02 colomon Radvendii: no
23:02 sorear No.
23:02 colomon niecza: sub foo($x) { say $x }; foo(:x("blue"))
23:02 Improv Hey all, I'm having trouble figuring out how to do "my Int @a" type things (I get recursion errors)
23:02 p6eval niecza v12-101-gc184ec8: OUTPUT«blue␤»
23:02 sorear niecza: for [1,2], [3,4], [5,6] -> @b { say +@b }
23:02 p6eval niecza v12-101-gc184ec8: OUTPUT«2␤2␤2␤»
23:03 colomon that's not supposed to work any more, is it?
23:03 sorear Improv: you can't in any current compiler
23:03 colomon nom: sub foo($x) { say $x }; foo(:x("blue"))
23:03 p6eval nom 18f12d: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤  in sub foo at /tmp/9ebChJ1Vze:1␤  in block <anon> at /tmp/9ebChJ1Vze:1␤  in <anon> at /tmp/9ebChJ1Vze:1␤»
23:03 Improv sorear: Ahh. Ok. Seems there's a lot of sample code on the web showing that :(
23:03 colomon nom: my Int @a = 1, 2, 3; say @a
23:03 p6eval nom 18f12d: OUTPUT«1 2 3␤»
23:04 colomon nom: my Int @a = 1, 2, "Blue"; say @a
23:04 p6eval nom 18f12d: OUTPUT«1 2 Blue␤»
23:04 colomon looks like it silently fails in nom?
23:04 colomon b: my Int @a = 1, 2, "Blue"; say @a
23:04 p6eval b 1b7dd1: OUTPUT«12Blue␤»
23:04 sorear colomon: jnthn and I have yet to be adequately convinced that removing the name/pos connection is a good idea
23:05 Improv b: my Int @a = 1,2,3; say @a[0]
23:05 p6eval b 1b7dd1: OUTPUT«maximum recursion depth exceeded␤  in 'at_pos' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤  in 'at_pos' at line 8:src/gen/core.pm␤  in 'Any::postcircumfix:<[ ]>' at line 1824:src/gen/core.pm␤  in 'at_pos' at line 5:src/gen/core.pm␤  in 'at_pos' at line 8:src/gen/…
23:05 colomon sorear: ah.  is that why there are still tests for them in roast?
23:06 donri joined #perl6
23:07 sorear colomon: the change to the specs repository was done quickly
23:07 Improv What's the actual status of Perl6 anyhow? Are any of the compilers/interpreters in a "released" state?
23:07 Improv Or is it still cooking?
23:08 sorear Improv: it's hard to say, because the compilers have always been in a released state
23:09 donri it's more ready than you think, but not as much as the people in here who will tell you the question is wrong thinks
23:09 Improv Maybe not ready for production code yet?
23:10 donri not for any useful definition of production, no
23:10 Improv Is there a better syntax for specifying an array of Ints?
23:10 Improv Or is that syntax right but not supported yet?
23:11 donri better than what?
23:11 Improv As in, working.
23:11 donri as opposed to what?
23:11 sorear Improv: you can't define production code
23:11 sorear Improv: we aren't doing a waterfall-model here.  There was not and will not be a Great Ribbon Cutting Ceremony
23:12 donri ^^^ "question is wrong" ;)
23:12 Improv Sigh.
23:12 sorear Perl 6 has been used by people for real things for several years now
23:12 sorear it has been better than Perl 5 for some things and worse for others, for years
23:12 sorear what part of this is hard to understand?  I want to know
23:13 Improv sorear: At some point I am hoping to "It's done, most of the features work, CPAN folk should port their stuff soon, everyone should migrate"
23:13 donri there's currently little stability or performance, at least in the case of rakudo
23:13 Improv hoping to hear
23:14 donri IMHO perl 6 is not perl 5+1
23:14 Improv I know it's a big language shift with lots of syntax and functionality changes, sure.
23:14 Improv I just want to know when there is consensus is that it's out of alpha/beta.
23:15 slavik1 Improv: christmas
23:15 sorear slavik1: not funny
23:15 sorear slavik1: we don't use that on outsiders
23:15 slavik1 sorear: that's what Larry has said
23:15 slavik1 oh
23:15 Improv slavik1: Christmas which year? :)
23:15 slavik1 Improv: and what date is christmas?
23:15 slavik1 ;)
23:16 slavik1 june 27th can be christmas
23:16 sorear Improv: there's a slight problem there - Perl 5 is not abandoned
23:16 sorear Improv: there are just as many people working on improving 5 as there are on finishing 6
23:17 Improv sorear: That is fair.
23:17 sorear so why are you going to ditch one living language for another?
23:17 slavik1 sorear: I would if that one living language offered features I found more useful
23:17 slavik1 like Grammars for example ;)
23:17 Improv sorear: I think if I told you what I thought, there'd be a large, unfriendly argument that I don't want to have right now.
23:17 sorear people used to think that 6 would supercede 5 completely once it was, in a certain sense, done
23:18 Improv I guess I'll check back in a year, again.
23:18 sorear Improv: you think I'm wasting my time.  I know that, and you're probably right.
23:18 Improv wasting your time? I have no idea what that means.
23:18 Improv sorear: I don't actually know who you are.
23:18 sorear Perl 6 is dead, nothing good will ever come here
23:19 sorear Improv: I'm a Perl 6 implementer.
23:19 Improv Oh, ok.
23:19 Improv I wasn't aware.
23:19 Improv I am just a long-time perl5 user who's hoping to hear someday that perl6 is ready.
23:19 * donri mostly likes perl6 because he'd like perl5 is it was sane-like-perl6-is-sane; all the packed features are just extra.
23:19 donri s/is it/if it/
23:20 bbkr1 who did variadic params dispatch in Rakudo? they are AWESOME!
23:20 Improv I'm hoping that Perl6 is as popular someday as Perl5 used to be, rather than as popular as, say, Plan9
23:20 sorear Improv: it's ready, but it may not be worth it
23:21 sorear I think that's a much better explanation and I'll use it from now on
23:21 Improv Ok.
23:21 Improv Anyhow, happy holidays, all. Sorry if I touched on sensitive topics.
23:21 sorear Perl6 is ready to use, if you like the Perl6 improvements enough to put up with slow compilers and sparse-at-best libraries
23:22 sorear Thanks, and no worries.
23:23 sorear people still use ircII?
23:23 slavik1 sorear: personally, I am happy as long as there is a state where there are no major syntax breaking decisions being contemplated
23:23 donri people still use perlV?
23:23 slavik1 ouch
23:23 slavik1 like there was a switch from =~ to ~~ or something like that
23:24 sorear slavik1: that's basically already the case.
23:24 slavik1 perfect, I am happy :)
23:26 slavik1 sorear: I lost track of this but are assertions for grammars/regex working now?
23:27 slavik1 as in: "256" ~~ /(\d{3})/ <?{ 0<= $0 <= 255}>
23:27 slavik1 that was th old syntax I believe or something like that
23:27 slavik1 rakudo: "256" ~~ /(\d{3})/ <?{ 0<= $0 <= 255}>
23:27 p6eval rakudo 18f12d: OUTPUT«===SORRY!===␤Unsupported use of {N,M} as general quantifier; in Perl 6 please use ** N..M (or ** N..*) at line 1, near ")/ <?{ 0<="␤»
23:27 slavik1 rakudo: "256" ~~ /(\d ** 3)/ <?{ 0<= $0 <= 255}>
23:28 p6eval rakudo 18f12d: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2␤»
23:29 slavik1 rakudo: "256" ~~ /(\d ** 3)/ <{ 0<= $0 <= 255}>
23:29 p6eval rakudo 18f12d: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2␤»
23:29 slavik1 rakudo: "256" ~~ /(\d ** 3)/ <{ 0<= $0 <= 255 }>
23:29 p6eval rakudo 18f12d: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2␤»
23:30 sorear slavik1: the assertions need to go *inside* the regex. :)
23:30 slavik1 rakudo: "256" ~~ /(\d ** 3) <{ 0<= $0 <= 255 }>/
23:30 p6eval rakudo 18f12d: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2␤»
23:30 sorear and it has to be <?{
23:30 slavik1 ahh
23:30 slavik1 rakudo: "256" ~~ /(\d ** 3) <?{ 0<= $0 <= 255 }>/
23:30 p6eval rakudo 18f12d: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2␤»
23:31 sorear niecza: say "256" ~~ /(\d ** 3) <?{ 0<= $0 <= 255 }>/
23:31 p6eval niecza v12-102-g22261b4: OUTPUT«[31m===[0mSORRY![31m===[0m��Unable to parse quote-words subscript; couldn't find right angle quote at /tmp/fV9YZmG7Tf line 1:�------> [32msay "256" ~~ /(\d ** 3) <?{ 0<[33m�[31m= $0 <= 255 }>/[0m��Parse failed��»
23:31 slavik1 rakudo is being mean to me :(
23:31 sorear niecza: say "256" ~~ /(\d ** 3) <?{ 0 <= $0 <= 255 }>/
23:31 p6eval niecza v12-102-g22261b4: OUTPUT«Match()␤»
23:31 sorear rakudo: "256" ~~ /(\d ** 3) <?{ 0 <= $0 <= 255 }>/
23:31 p6eval rakudo 18f12d: OUTPUT«use of uninitialized value of type Nil in numeric context␤use of uninitialized value of type Nil in numeric context␤»
23:32 slavik1 rakudo: "256" ~~ /(\d ** 3) <?{ 0<= $0 <= 255 }>/I don't get it, what did you do different that niecza worked the second time
23:32 p6eval rakudo 18f12d: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2␤»
23:32 slavik1 gah
23:32 slavik1 I don't get it, what did you do different that niecza worked the second time
23:32 sorear slavik1: I added a space after the 0
23:32 slavik1 oh
23:32 slavik1 rakudo: "256" ~~ /(\d ** 3) <?{ 0 <= $0 <= 255 }>/
23:32 p6eval rakudo 18f12d: OUTPUT«use of uninitialized value of type Nil in numeric context␤use of uninitialized value of type Nil in numeric context␤»
23:33 slavik1 rakudo: "256" ~~ /(\d ** 3) <?{ 0 <= $1 <= 255 }>/
23:33 p6eval rakudo 18f12d: OUTPUT«use of uninitialized value of type Nil in numeric context␤use of uninitialized value of type Nil in numeric context␤»
23:33 slavik1 that can't be right ...
23:33 slavik1 it's as if there are is no extraction happening
23:33 sorear for sure something's up
23:34 slavik1 niecza: "256" ~~ /(\d ** 3) <?{ 0 <= $1 <= 255 }>/
23:34 p6eval niecza v12-102-g22261b4: OUTPUT«Use of uninitialized value in numeric context␤  at /home/p6eval/niecza/lib/CORE.setting line 782 (warn @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 196 (Any.Numeric @ 5) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/HGJjRMpBby line 1 (ANON @…
23:34 slavik1 niecza: "256" ~~ /(\d ** 3) <?{ 0 <= $0 <= 255 }>/
23:34 p6eval niecza v12-102-g22261b4:  ( no output )
23:34 slavik1 niecza: say "256" ~~ /(\d ** 3) <?{ 0 <= $0 <= 255 }>/
23:34 p6eval niecza v12-102-g22261b4: OUTPUT«Match()␤»
23:34 slavik1 rakudo: say "256" ~~ /(\d ** 3) <?{ 0 <= $0 <= 255 }>/
23:34 p6eval rakudo 18f12d: OUTPUT«use of uninitialized value of type Nil in numeric context␤use of uninitialized value of type Nil in numeric context␤=> <256>␤ 0 => <256>␤␤»
23:37 Radvendii joined #perl6
23:56 sorear slavik1: reminder, 256 is not between 0 and 255

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs