Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-09-30

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:01 soh_cah_toa_ joined #perl6
00:04 jferrero left #perl6
00:06 jnthn ah, almost there with basic only analysis :)
00:06 tadzik :)
00:07 jnthn Made a bunch more spectests fail :)
00:07 jnthn For the right reason.
00:07 jnthn Or at least, the ones I looked at do.
00:07 diakopter jnthn: do the native operators detect overflow?
00:07 jnthn diakopter: No, and iirc they're spec'd as not needing to.
00:07 diakopter oh good
00:09 tadzik so, how much can we win with addind 'returns' to every method and sub in the setting? :)
00:09 jnthn Methods, nothing for now.
00:09 diakopter jnthn: are the native operations performed by parrot through pir? or are you creating C functions you're binding from nqp or 6model?
00:09 jnthn subs - worth doing but do it carefully.
00:09 jnthn diakopter: We compile down to the Parrot add opcode
00:10 jnthn for +
00:10 jnthn for example
00:10 diakopter oh
00:10 jnthn If this was the CLR we'd use it's add op too
00:11 jnthn So if you write an expression like $a * $b + $c div $d or so, and they're all known as natively typed ints, then they'll all live in Parrot int registers and just use the native ops for doing those operations.
00:11 * diakopter detects the royal 'we' degenerating to the singular over the months
00:12 diakopter parrot still has no JIT, right?
00:12 jnthn Right :(
00:12 soh_cah_toa_ :( indeed
00:12 jnthn The optimizer does little, if anything, Parrot specific though.
00:13 diakopter I was just thinking; if it's never going to get a JIT, you might as well build up your own library of opcodes, oh wait, I mean, VM
00:13 jnthn Well, yeah. :)
00:13 diakopter (mostly kidding)
00:14 jnthn I'm not sure my copious free time currently extends to working on a VM too, sadly.
00:14 jnthn It would be kinda fun.
00:14 jnthn I find most things in the compilers/runtime space fun, though. :)
00:16 dalek rakudo/optimizer: b2d15fa | jnthn++ | src/binder/bind.c:
00:16 dalek rakudo/optimizer: Start filling out the compile time trial binding for onlies. We'll start off just doing analysis for those that only have required positional parameters. This detects any arity mis-matches in this case at compile time. Some spectest failures, though most seem legitimate (they fail because we catch the innevitable failure at compile time now).
00:16 dalek rakudo/optimizer: review: https://github.com/rakudo/rakudo/commit/b2d15fa863
00:16 dalek rakudo/optimizer: 7d65d53 | jnthn++ | src/Perl6/Actions.pm:
00:16 dalek rakudo/optimizer: Fix to inline spec generator.
00:16 dalek rakudo/optimizer: review: https://github.com/rakudo/rakudo/commit/7d65d53aed
00:16 dalek rakudo/optimizer: bcb7c05 | jnthn++ | src/binder/bind.c:
00:16 dalek rakudo/optimizer: First crack at trial binding type analysis. Seems to do the right kind of thing.
00:16 dalek rakudo/optimizer: review: https://github.com/rakudo/rakudo/commit/bcb7c05acf
00:16 dalek rakudo/optimizer: 2e5a594 | jnthn++ | src/Perl6/Optimizer.pm:
00:16 dalek rakudo/optimizer: Small fix to inline handling, plus better error reporting if it hits an internal error.
00:16 dalek rakudo/optimizer: review: https://github.com/rakudo/rakudo/commit/2e5a594367
00:17 jnthn > sub foo() { }; foo('lol')
00:17 jnthn CHECK FAILED:
00:17 jnthn Dispatch to 'foo' could never work with the arguments of types (str)
00:17 jnthn \o/
00:18 jnthn Some enterprising soul could probably figure out how to make this and the multi analysis differentiate arity failures from type failures and report more helpfully on it.
00:20 diakopter impressive
00:23 jnthn OK, I'm meant to deal with some $dayjob tasks tomorrow, including a somewhat important meeting (thankfully, in the afternoon), so I'd best rest a bit. :)
00:24 replore joined #perl6
00:24 jnthn .oO( Inlining: best implemented between the hours of midnight and 3am... )
00:24 jnthn night o/
00:24 diakopter o/
00:25 shinobicl_ joined #perl6
00:25 tadzik jnthn: this is awesome, jnthn++
01:09 thou joined #perl6
01:18 itz joined #perl6
01:30 [Coke] jnthn++
01:30 [Coke] looks like recent regex work has reclaimed a few more spectests.
01:31 * [Coke] will push updated list shortly.
01:34 replore joined #perl6
01:39 f00li5h joined #perl6
01:41 dalek roast: 40a7cbb | Coke++ | S (5 files):
01:41 dalek roast: rakudo nom fudging
01:41 dalek roast: review: https://github.com/perl6/roast/commit/40a7cbbcd5
01:42 dalek rakudo/nom: 008201f | Coke++ | t/spectest.data:
01:42 dalek rakudo/nom: track failures, run fudged tests.
01:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/008201fbf6
01:44 wolfman2000 joined #perl6
01:46 araujo joined #perl6
02:15 plobsing joined #perl6
02:17 [Coke] perl6: say Failure()
02:17 p6eval pugs: OUTPUT«*** No such subroutine: "&Failure"␤    at /tmp/M1yOvUQQIz line 1, column 5 - line 2, column 1␤»
02:17 p6eval ..niecza v10-17-g8fdba33: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared name:â�¤        'Failure' used at line 1â�¤â�¤â�¤Unhandled Exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 766 (CORE die @ 2) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36) â�¤â€¦
02:17 p6eval ..rakudo 008201: OUTPUT«Could not find sub &Failure␤  in block <anon> at /tmp/tvklenYEWp:1␤  in <anon> at /tmp/tvklenYEWp:1␤␤»
02:17 frhodes joined #perl6
02:17 [Coke] perl6: say 1 ~~ Failure
02:17 p6eval pugs: OUTPUT«*** No such subroutine: "&Failure"␤    at /tmp/8yVNMzEINT line 1, column 5 - line 2, column 1␤»
02:17 p6eval ..niecza v10-17-g8fdba33: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared name:â�¤        'Failure' used at line 1â�¤â�¤â�¤Unhandled Exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 766 (CORE die @ 2) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36) â�¤â€¦
02:17 p6eval ..rakudo 008201: OUTPUT«Bool::False␤»
02:19 cotto joined #perl6
02:22 frhodes joined #perl6
02:23 packetknife joined #perl6
02:23 dalek roast: bd0cef4 | Coke++ | S02- (3 files):
02:23 dalek roast: niecza fudging.
02:23 dalek roast: review: https://github.com/perl6/roast/commit/bd0cef4f68
02:24 dalek niecza: 5be99bf | Coke++ | t/spectest.data:
02:24 dalek niecza: run a fudged test
02:24 dalek niecza: review: https://github.com/sorear/niecza/commit/5be99bf613
02:24 soh_cah_toa_ p6eval: sub foo(Str $a?, Int $b?) { say 'foobar' }; foo("abc"); foo(42)
02:24 soh_cah_toa_ perl: sub foo(Str $a?, Int $b?) { say 'foobar' }; foo("abc"); foo(42)
02:24 soh_cah_toa_ agh...
02:24 soh_cah_toa_ nom: sub foo(Str $a?, Int $b?) { say 'foobar' }; foo("abc"); foo(42)
02:24 p6eval nom 008201: OUTPUT«foobar␤Nominal type check failed for parameter '$a'; expected Str but got Int instead␤  in sub foo at /tmp/tqVQ97rBvu:1␤  in block <anon> at /tmp/tqVQ97rBvu:1␤  in <anon> at /tmp/tqVQ97rBvu:1␤␤»
02:25 soh_cah_toa_ niecza: sub foo(Str $a?, Int $b?) { say 'foobar' }; foo("abc"); foo(42)
02:25 p6eval niecza v10-17-g8fdba33: OUTPUT«Potential difficulties:â�¤  $a is declared but not used at /tmp/2oWY1F2iss line 1:â�¤------> [32msub foo(Str [33mâ��[31m$a?, Int $b?) { say 'foobar' }; foo("abc[0mâ�¤  $b is declared but not used at /tmp/2oWY1F2iss line 1:â�¤------> [32msub foo(Str $a?, Int [3…
02:25 benabik soh_cah_toa_: Were you looking for perl6: ?
02:25 soh_cah_toa_ ah
02:25 soh_cah_toa_ perl6: sub foo(Str $a?, Int $b?) { say 'foobar' }; foo("abc"); foo(42)
02:25 p6eval pugs: OUTPUT«foobar␤foobar␤»
02:25 p6eval ..rakudo 008201: OUTPUT«foobar␤Nominal type check failed for parameter '$a'; expected Str but got Int instead␤  in sub foo at /tmp/EXF60VxZS1:1␤  in block <anon> at /tmp/EXF60VxZS1:1␤  in <anon> at /tmp/EXF60VxZS1:1␤␤»
02:25 p6eval ..niecza v10-17-g8fdba33: OUTPUT«Potential difficulties:â�¤  $a is declared but not used at /tmp/iOWoEUkvua line 1:â�¤------> [32msub foo(Str [33mâ��[31m$a?, Int $b?) { say 'foobar' }; foo("abc[0mâ�¤  $b is declared but not used at /tmp/iOWoEUkvua line 1:â�¤------> [32msub foo(Str $a?, Int [3…
02:25 soh_cah_toa_ wow, pugs got it right
02:26 benabik soh_cah_toa_: I don't think so.  I think if you have ($a?, $b?), you have to give a $a to give a $b
02:26 soh_cah_toa_ but they're both optional
02:27 colomon joined #perl6
02:27 benabik soh_cah_toa_: Yes, which means you can skip both.  I don't think the binder is required to try skipping over parameters to match types.
02:28 benabik foo(42) and foo('bar') both try to set $a
02:29 soh_cah_toa_ hm, that's right
02:29 soh_cah_toa_ it doesn't re-dispatch though?
02:30 soh_cah_toa_ i wonder if it's in the spec of pugs just does it by accident
02:30 soh_cah_toa_ s/of/or/
02:33 colomon I'm pretty sure benabik's correct, and pugs is just confused.
02:33 benabik I think pugs is ignoring the type constraint.
02:33 benabik pugs: sub foo(Str $a) { say $a }; foo('bar'); foo(42)
02:33 p6eval pugs: OUTPUT«bar␤42␤»
02:33 soh_cah_toa_ i guess i can just use a multi method instead w/ a bit more hackery
02:34 benabik pugs: sub foo(Int $a) { say $a }; foo('bar'); foo(42)
02:34 p6eval pugs: OUTPUT«bar␤42␤»
02:34 colomon pugs: sub foo(Str $a?, Int $b?) { say 'foobar'; say :$a.perl; say :$b.perl }; foo("abc"); foo(42)
02:34 p6eval pugs: OUTPUT«foobar␤pugs: Named argument found where no matched parameter expected: (a,Var "$a")␤»
02:34 benabik Yeah.  42 might be the string "42", but "bar" is never the int bar.
02:35 colomon pugs: sub foo(Str $a?, Int $b?) { say 'foobar'; say $a; say $b }; foo("abc"); foo(42)
02:35 p6eval pugs: OUTPUT«foobar␤abc␤␤foobar␤42␤␤»
02:35 colomon pugs: sub foo(Str $a?, Int $b?) { say 'foobar'; say "a: $a"; say "b: $b" }; foo("abc"); foo(42)
02:35 p6eval pugs: OUTPUT«foobar␤a: abc␤b: ␤foobar␤a: 42␤b: ␤»
02:36 woosley joined #perl6
02:40 colomon benabik's got it sussed out correctly.  :)
02:41 uasi joined #perl6
02:42 HarryS joined #perl6
02:45 cotto joined #perl6
02:47 soh_cah_toa_ perl6: fail 'foobar'
02:47 p6eval niecza v10-18-g5be99bf: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤     'fail' used at line 1â�¤â�¤â�¤Unhandled Exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 766 (CORE die @ 2) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36) â�¤â€¦
02:47 p6eval ..rakudo 008201:  ( no output )
02:47 p6eval ..pugs: OUTPUT«*** Cannot use this control structure outside a 'routine' structure␤    at /tmp/5TcTFqplsT line 1, column 1 - line 2, column 1␤»
02:48 soh_cah_toa_ nom: fail 'foobar'
02:48 p6eval nom 008201:  ( no output )
02:48 soh_cah_toa_ i knew it wasn't just me
02:49 diakopter nom:say fail fail 44
02:50 diakopter nom: say fail fail 44
02:50 p6eval nom 008201: OUTPUT«44␤  in block <anon> at /tmp/giyisj_6XO:1␤  in <anon> at /tmp/giyisj_6XO:1␤␤»
02:57 alester joined #perl6
03:16 envi joined #perl6
03:29 cotto joined #perl6
03:32 packetknife joined #perl6
03:37 xinming joined #perl6
03:42 HarryS joined #perl6
03:46 ingy joined #perl6
03:53 kaleem joined #perl6
03:58 sorear good * #perl6
03:59 sorear phenny: tell GlitchMr 1. it's is equiv<++>, not is equiv:<++>, these are completely different 2. precedence on multis is NYI in niecza, just use regular subs
04:00 phenny sorear: I'll pass that on when GlitchMr is around.
04:11 satyavvd joined #perl6
04:11 kaleem joined #perl6
04:11 envi joined #perl6
04:11 colomon joined #perl6
04:11 wolfman2000 joined #perl6
04:11 benabik joined #perl6
04:11 [Coke] joined #perl6
04:11 espadrine joined #perl6
04:11 szbalint joined #perl6
04:11 diakopter joined #perl6
04:11 sivoais joined #perl6
04:11 ruoso joined #perl6
04:11 risou joined #perl6
04:11 localhost joined #perl6
04:11 preflex joined #perl6
04:11 sftp joined #perl6
04:11 cognominal_ joined #perl6
04:11 Grimnir_ joined #perl6
04:11 mikemol joined #perl6
04:11 jlaire joined #perl6
04:11 skangas joined #perl6
04:11 DarthGandalf joined #perl6
04:11 m6locks joined #perl6
04:11 szabgab joined #perl6
04:11 orafu joined #perl6
04:11 kst` joined #perl6
04:11 slavik1 joined #perl6
04:11 Patterner joined #perl6
04:11 PZt joined #perl6
04:11 robinsmidsrod joined #perl6
04:11 ponbiki joined #perl6
04:11 Sarten-X joined #perl6
04:11 aloha joined #perl6
04:11 ashleydev joined #perl6
04:11 jerome_ joined #perl6
04:11 japhb joined #perl6
04:11 pyrimidine joined #perl6
04:11 imarcusthis joined #perl6
04:11 zenog joined #perl6
04:11 BLZbubba joined #perl6
04:11 bbkr_ joined #perl6
04:11 lateau_ joined #perl6
04:11 arnsholt joined #perl6
04:11 jesk joined #perl6
04:11 Gothmog_ joined #perl6
04:11 jrockway joined #perl6
04:11 domidumont joined #perl6
04:11 p6eval joined #perl6
04:11 carlin joined #perl6
04:11 Maddingue joined #perl6
04:11 snarkyboojum joined #perl6
04:11 wooden joined #perl6
04:11 senobmeht joined #perl6
04:11 ggoebel joined #perl6
04:11 baest joined #perl6
04:11 lumi_ joined #perl6
04:11 awwaiid joined #perl6
04:11 Helios joined #perl6
04:11 cosimo joined #perl6
04:11 Lorn joined #perl6
04:11 pmichaud joined #perl6
04:11 fhelmberger_ joined #perl6
04:11 pochi joined #perl6
04:11 mux joined #perl6
04:11 mls_ joined #perl6
04:11 nsh- joined #perl6
04:11 eiro joined #perl6
04:11 LoRe joined #perl6
04:11 hillu joined #perl6
04:11 Yappoko___ joined #perl6
04:11 moritz joined #perl6
04:11 renormalist joined #perl6
04:11 arthur-_ joined #perl6
04:11 breinbaas joined #perl6
04:11 apejens joined #perl6
04:11 yath joined #perl6
04:11 Grrrr joined #perl6
04:11 ingy joined #perl6
04:13 jaldhar joined #perl6
04:15 kaleem joined #perl6
04:18 lestrrat joined #perl6
04:19 jaldhar joined #perl6
04:19 satyavvd joined #perl6
04:21 sunnavy joined #perl6
04:23 frhodes joined #perl6
04:36 frhodes joined #perl6
04:42 benabik nom: say fail 42
04:42 p6eval nom 008201: OUTPUT«42␤  in block <anon> at /tmp/pAi8tvAKdY:1␤  in <anon> at /tmp/pAi8tvAKdY:1␤␤»
04:42 benabik nom: fail 42
04:42 p6eval nom 008201:  ( no output )
04:42 benabik Fails only fail when something tries to use them as a value, right?
04:43 _jaldhar joined #perl6
04:46 uasi joined #perl6
05:05 shinobicl_ left #perl6
05:06 shinobicl_ joined #perl6
05:06 shinobicl_ left #perl6
05:14 daniel-s joined #perl6
05:14 mberends joined #perl6
05:14 mikemol joined #perl6
05:14 TiMBuS|Away joined #perl6
05:39 moritz good morning
05:39 moritz nom: $^n
05:39 p6eval nom 008201:  ( no output )
05:40 moritz nom: $^n; say 'alive'
05:40 p6eval nom 008201: OUTPUT«alive␤»
05:41 moritz nom: say lines("a\nb\n").perl
05:41 p6eval nom 008201: OUTPUT«("a", "b").list␤»
05:42 f00li5h joined #perl6
05:43 moritz rakudo: my $a; eval $a.WHO
05:43 p6eval rakudo 008201: OUTPUT«Nominal type check failed for parameter '$code'; expected Str but got Stash instead␤  in sub eval at src/gen/CORE.setting:420␤  in block <anon> at /tmp/2yrXekDZ9H:1␤  in <anon> at /tmp/2yrXekDZ9H:1␤␤»
05:43 HarryS joined #perl6
05:44 sorear rakudo: my $a; say $a.WHO
05:44 p6eval rakudo 008201: OUTPUT«().hash␤»
05:44 sorear rakudo: my $a; say ~$a.WHO
05:44 p6eval rakudo 008201: OUTPUT«␤»
05:45 sorear moritz: what were you expecting that to do?
05:45 sorear moritz: and good mornign
05:45 moritz sorear: not Null PMC Access'ing :-)
05:46 moritz sorear: I have no idea, actually
05:46 moritz std: $^n
05:46 p6eval std 8b331d2: OUTPUT«[31m===[0mSORRY![31m===[0m�Placeholder variable $^n may not be used outside of a block at /tmp/QJ6c2B3TGl line 1:�------> [32m<BOL>[33m�[31m$^n[0m�Check failed�FAILED 00:01 119m�»
05:46 moritz hm, makes sense
05:47 dalek roast: b3f8106 | moritz++ | S03-operators/assign.t:
05:47 dalek roast: expand tests for RT #93972
05:47 dalek roast: review: https://github.com/perl6/roast/commit/b3f81063fd
05:48 moritz rakudo: my $i; sub foo { say $i if ++$i %% 50; eval "foo" }; foo(); say "alive"
05:48 p6eval rakudo 008201: OUTPUT«50␤100␤150␤alive␤»
05:59 sorear moritz: was it NPAing earlier?
06:06 mj41 joined #perl6
06:06 moritz b: $^n
06:06 p6eval b 1b7dd1:  ( no output )
06:07 moritz sorear: yes, at least a ticket claimed so
06:15 dalek niecza/serialize: 5be99bf | Coke++ | t/spectest.data:
06:15 dalek niecza/serialize: run a fudged test
06:15 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/5be99bf613
06:15 dalek niecza/serialize: 94e9968 | sorear++ | / (25 files):
06:15 dalek niecza/serialize: Merge remote branch 'origin/master' into serialize
06:15 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/94e9968941
06:19 * sorear wonders why 5be99f was reported separately
06:22 moritz rakudo: my @a = (1); @a ||= (); say @a.perl
06:22 p6eval rakudo 008201: OUTPUT«(timeout)maximum recursion depth exceeded␤»
06:23 benabik bwa?
06:23 moritz https://rt.perl.org/rt3/Ti​cket/Display.html?id=90158
06:25 sorear niecza: my @a = (1); @a ||= (); say @a.perl
06:25 moritz nom: say 10 % i
06:25 p6eval niecza v10-18-g5be99bf: OUTPUT«[1].list␤»
06:25 p6eval nom 008201: OUTPUT«Could not find sub &i␤  in block <anon> at /tmp/l2pLEEweGT:1␤  in <anon> at /tmp/l2pLEEweGT:1␤␤»
06:25 moritz nom: say 10 % 1i
06:25 p6eval nom 008201: OUTPUT«(timeout)maximum recursion depth exceeded␤»
06:26 benabik I wonder what @a is that it's recursing so much.
06:26 benabik I wonder if "maximum recursion depth exceeded" is actually "multi go boom" somehow.
06:26 benabik I wonder if I shouldn't have been asleep several hours ago.
06:26 * benabik wonders.
06:26 sorear Hellllo benabik
06:27 * sorear should probably be asleep now!
06:27 benabik sorear: What time are you at?  I was up at 6 AM and it's now 2:30 AM.
06:28 benabik But I finished my homework.
06:28 sorear pst
06:29 benabik sorear: Bah, PST.  It's not even midnight out there.
06:31 sorear benabik: Morning classes.
06:33 benabik sorear: My class wasn't until 2, but the assistantship requires me to be there by 7:30.  It's exciting.
06:33 aloha joined #perl6
06:36 koban joined #perl6
06:48 alim joined #perl6
06:50 * sorear seleep
06:56 cotto joined #perl6
07:09 dragonhawk joined #perl6
07:09 dragonhawk Hi
07:09 moritz hi dragonhawk
07:09 dragonhawk How's it
07:10 mj41 joined #perl6
07:10 dragonhawk This my first time here
07:11 moritz then welcome to the wonderful world of Perl 6 programming
07:11 dragonhawk Do u guys just talk programing
07:13 moritz also language design, testing and many related subjects
07:13 dragonhawk R there any just plain chat rooms
07:14 moritz I don't know
07:14 mauke #defocus
07:14 mauke #haskell-blah
07:15 dragonhawk Hay thanks
07:15 dragonhawk That worked
07:16 cotto joined #perl6
07:18 dalek rakudo/nom: 66d0a4a | moritz++ | src/core/ (2 files):
07:18 dalek rakudo/nom: infix % and %% only make sense on Real, not Numeric
07:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/66d0a4af67
07:24 Trashlord joined #perl6
07:39 cotto joined #perl6
07:57 ram___ joined #perl6
08:00 moritz http://arxiv.org/PS_cache/ar​xiv/pdf/1109/1109.6160v1.pdf # another update the the v > c neutrinos
08:00 daxim joined #perl6
08:01 wamba joined #perl6
08:10 moritz std: class A { method b() { } }; &A::b = sub { }
08:10 p6eval std 8b331d2: OUTPUT«ok 00:01 126m␤»
08:10 moritz perl6: class A { method b() { } }; &A::b = sub { }
08:10 p6eval pugs: OUTPUT«*** Can't modify constant item: VStr "MkCode {isMulti = False, subName = \"&b\", subType = SubMethod, subOuterPads = [PRuntime {pr_pad = MkPad (padToList [(\"&b\",PEStatic {pe_type = (mkType \"Method\"), pe_proto = <Method:0x7f837f01bb81>, pe_flags = MkEntryFlags {ef_isCont…
08:10 p6eval ..rakudo 66d0a4, niecza v10-18-g5be99bf:  ( no output )
08:12 dragonhawk left #perl6
08:40 _ilbot joined #perl6
08:40 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: http://irc.perl6.org/ | UTF-8 is our friend!
08:40 meraxes joined #perl6
08:40 rhr_ joined #perl6
08:40 mauke joined #perl6
08:40 aloha joined #perl6
08:40 _jaldhar joined #perl6
08:40 lestrrat joined #perl6
08:40 y3llow joined #perl6
08:40 alvis joined #perl6
08:40 [particle]1 joined #perl6
08:40 mtk joined #perl6
08:40 bacek_at_work joined #perl6
08:40 aindilis joined #perl6
08:40 djanatyn joined #perl6
08:40 yves_ joined #perl6
08:40 hugme joined #perl6
08:40 PacoLinux_ joined #perl6
08:40 Woodi joined #perl6
08:40 takesako joined #perl6
08:40 Reaganomicon joined #perl6
08:40 Util joined #perl6
08:40 dalek joined #perl6
08:41 felher joined #perl6
08:41 araujo joined #perl6
08:41 sorear joined #perl6
08:41 cotto joined #perl6
08:41 Trashlord joined #perl6
08:41 TiMBuS joined #perl6
08:41 daniel-s joined #perl6
08:41 buubot_backup joined #perl6
08:41 pothos joined #perl6
08:41 shinobicl joined #perl6
08:41 dual joined #perl6
08:41 geekosaur joined #perl6
08:41 silug joined #perl6
08:41 mls_ niecza: { die ; CATCH { default { say "caught"} } ; LEAVE { say "leave" ; die } }
08:41 p6eval niecza v10-18-g5be99bf: OUTPUT«caught␤leave␤caught␤»
08:41 y3llow joined #perl6
08:42 araujo joined #perl6
08:42 araujo joined #perl6
08:42 mls_ niecza++
08:42 mls_ niecza: { die ; CATCH { die; } ; LEAVE { say "leave" ; die } }
08:43 p6eval niecza v10-18-g5be99bf: OUTPUT«leave␤␤Unhandled Exception: Died Died␤  at  line 0 (ExitRunloop @ 0) ␤  at /tmp/8DalPUiYwx line 1 (MAIN C3_ANON @ 3) ␤  at  line 0 (ExitRunloop @ 0) ␤  at /tmp/8DalPUiYwx line 1 (MAIN C1_ANON @ 2) ␤  at /tmp/8DalPUiYwx line 1 (MAIN mainline @ 1) ␤  at /hom…
08:43 mls_ niecza: { die ; CATCH { die; } ; LEAVE { say "leave" } }
08:43 p6eval niecza v10-18-g5be99bf: OUTPUT«leave␤␤Unhandled Exception: Died Died␤  at  line 0 (ExitRunloop @ 0) ␤  at /tmp/GYxnAEBuk8 line 1 (MAIN C1_ANON @ 2) ␤  at /tmp/GYxnAEBuk8 line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2115 (CORE C1022_ANON @ 2) ␤  at /home/p6e…
08:43 jnthn morning, #perl6
08:44 mls_ morning jnthn!
08:44 araujo joined #perl6
08:44 araujo joined #perl6
08:45 frettled_ Good moaning!
08:52 mauke_ joined #perl6
09:33 hanekomu joined #perl6
09:33 hanekomu <- p6 n00b
09:33 hanekomu just cloned rakudo nom, perl Configure.pl --gen-parrot, make, make test, make spectest and got
09:33 hanekomu t/spec/S05-modifier/ignorecase.rakudo, t/spec/S06-signature/slurpy-params.rakudo, t/spec/S19-command-line/dash-e.rakudo failed
09:33 hanekomu all others ok
09:34 hanekomu is that expected?
09:34 mj41 joined #perl6
09:36 orafu joined #perl6
09:36 Khisanth joined #perl6
09:36 jnthn I've heard others say that dash-e.rakudo can fail intermitently. Here slurpy-params.rakudo shows up as having a TODO'd test that passes, not as failing.
09:38 ab5tract joined #perl6
09:41 hanekomu hm
09:42 hanekomu btw, i kind of got interested in grammars, types etc, looked around for where to start and found that perl 6 might be a nice environment to learn these concepts
09:42 hanekomu looking forward to talking to you in Vienna
09:43 moritz hanekomu: which operating system are you using?
09:43 hanekomu os x 10.6.8
09:44 moritz hanekomu: if you run ./perl6 t/spec/S19-command-line/dash-e.rakudo   what do you get as output?
09:45 hanekomu hm
09:45 hanekomu no ICU lib loaded
09:45 hanekomu ah
09:45 hanekomu i thought it would complain if there was no icu
09:45 moritz well know, we allow to build rakudo without icu
09:46 moritz though I'm not sure if that's a great idea
09:46 moritz s/know/no/
09:47 dalek rakudo/nom: 6060607 | moritz++ | t/spectest.data:
09:47 dalek rakudo/nom: dash-e depends on ICU
09:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/60606073f2
09:48 jnthn moritz: Getting ICU sorted out here on Windows is a real nuisance.
09:48 jnthn When Parrot bundled ICU I did a bunch of stuff to get it to reliably build on Windows.
09:49 jnthn Then they unbundled it. :/
09:49 moritz :(
09:49 jnthn And I'm not going to fix it again.
09:49 jnthn hanekomu: Yes, looking forward to Twin city Perl workshop :)
09:51 jnthn meeting &
09:53 mls_ niecza: { say 'hello'; ENTER { say 'enter' } ; ENTER { say 'enter2' } ; LEAVE { say 'leave2' } ; LEAVE { say 'leave' } }
09:54 p6eval niecza v10-18-g5be99bf: OUTPUT«enter␤enter2␤hello␤leave␤leave2␤»
09:54 mls_ hmm, dunno if the leave blocks should really be run in reverse order...
09:57 dalek roast: e2cbb6d | moritz++ | S12-methods/private.t:
09:57 dalek roast: test that private methods cannot be called from outside
09:57 dalek roast: review: https://github.com/perl6/roast/commit/e2cbb6d823
10:00 dalek roast: 398be5a | moritz++ | S06-signature/optional.t:
10:00 dalek roast: required params need to come before optional ones (RT #71110)
10:00 dalek roast: review: https://github.com/perl6/roast/commit/398be5af23
10:03 hanekomu i've installed icu now; what do i have to recompile?
10:04 tadzik Parrot I suppose
10:04 moritz all of it
10:04 moritz rm -rf install/
10:04 moritz perl Configure.pl --gen-parrot
10:04 hanekomu ok :)
10:08 dalek roast: a493f00 | moritz++ | S06-traits/is-rw.t:
10:08 dalek roast: test that "is rw" requires a variable for writing (RT #74820)
10:08 dalek roast: review: https://github.com/perl6/roast/commit/a493f009e6
10:20 grondilu joined #perl6
10:20 moritz niecza: say Int.WHO
10:20 p6eval niecza v10-18-g5be99bf: OUTPUT«Stash.new(...)␤»
10:20 grondilu rakudo is a bit slow to startup.  It's gonna get better in the future, right?
10:21 flussence takes less than a second to get to the REPL on my netbook... what version are you using?
10:22 grondilu This is Rakudo Perl 6, version 2011.07 built on parrot 3.6.0 0
10:22 grondilu 4.41 seconds for 'perl6 -e 0'
10:22 flussence oh, then yes it'll get better in the future
10:22 flussence i.e. later today when 2011.09 is released
10:23 Mowah_ joined #perl6
10:23 grondilu ok cool
10:24 grondilu I also read that perl6 might be as fast as C, thanks to strong typing.  That would be great.
10:25 mauke einstein's theory implies perl6 cannot be faster than c
10:26 hanekomu is there a "definition of terms" for the beginning perl 6 hacker somewhere - that explains "nom", "nqp", "rakudo", "6model" etc. and the relationships between them?
10:27 moritz grondilu: 0.8s on my machine in the last development branch, to be released today
10:28 grondilu mauke: it's in "perl5to6" (http://perlgeek.de/en/article/5-to-6):  << When you have type informations at compile time, you can perform certain optimizations. Perl 6 doesn't have to be slower than C, in principle. >>
10:28 * grondilu needs to compile a more recent version
10:28 moritz hanekomu: no; there is a similar document, but it's outdated. I need to update it
10:29 grondilu Does the current branch do arbitrary precision arithmetics?  Mine doesn't.
10:30 moritz no
10:31 tadzik mauke: C isn't fast. C implementation can be, or more precisly, the code that a C implementation generates
10:31 moritz though niecza implements bigints
10:31 tadzik C isn't fast in the same terms as English isn't fast
10:31 grondilu englist is fast, imho.
10:31 dalek roast: 7228246 | moritz++ | S10-packages/basic.t:
10:31 dalek roast: test that .WHO returns a Stash
10:31 dalek roast: review: https://github.com/perl6/roast/commit/7228246017
10:31 mauke does no one here know einstein?
10:31 grondilu mauke: ?
10:32 tadzik I was invited to a party that he attended, but I got ill and didn't go
10:33 mauke grondilu: you and tadzik replied to what I said in a way that baffles me
10:36 nine I think most people did not notice the difference between c and C :)
10:36 * grondilu understands the joke now.
10:37 moritz nom: say (1, , 3).perl
10:37 p6eval nom 606060: OUTPUT«(1, 3)␤»
10:37 moritz nom: return
10:37 p6eval nom 606060: OUTPUT«Attempt to return outside of any Routine␤  in sub die at src/gen/CORE.setting:416␤  in block <anon> at /tmp/GYMlDWq6aO:1␤  in <anon> at /tmp/GYMlDWq6aO:1␤␤»
10:41 * moritz closes 2 of the 5 oldest tickets in the perl6 queue
10:42 hanekomu t/spec/S05-modifier/ignorecase.rakudo passes as well now that icu4c is installed
10:46 pnu joined #perl6
10:58 ron__ joined #perl6
11:00 ron__ moritz: ping
11:03 ron__ phenny: tell moritz that there is an open rt ticket 86144 that looks possibly closable and similar to the 92354 ticket he just closed
11:03 phenny ron__: I'll pass that on when moritz is around.
11:04 ron__ rakudo: say 1.WHO; say 1.WHO.keys.Str
11:04 p6eval rakudo 606060: OUTPUT«().hash␤␤»
11:05 ron__ left #perl6
11:24 lestrrat joined #perl6
11:36 Psyche^ joined #perl6
11:37 * [Coke] wonders how much people would pay for a box they could feed a sql query to and have it say "this would run faster if you <foo>"
11:39 moritz [Coke]: quite a bit, some folks
11:39 phenny moritz: 11:03Z <ron__> tell moritz that there is an open rt ticket 86144 that looks possibly closable and similar to the 92354 ticket he just closed
11:39 [Coke] moritz: Like me, right now. ;)
11:40 moritz phenny: tell ron__ thank you, I'll close it too
11:40 phenny moritz: I'll pass that on when ron__ is around.
11:42 bluescreen10 joined #perl6
11:44 moritz nom: my @a := 1
11:44 p6eval nom 606060:  ( no output )
11:45 moritz nom: say 1|2 === 1
11:45 p6eval nom 606060: OUTPUT«Bool::False␤»
11:48 dalek roast: 8e96ed1 | moritz++ | S03-operators/value_equivalence.t:
11:48 dalek roast: === does not autothread (RT #61692)
11:48 dalek roast: review: https://github.com/perl6/roast/commit/8e96ed19b8
11:48 ab5tract joined #perl6
11:54 alim_ joined #perl6
11:54 flussence rakudo: my $count = 3; my $str = 'aaaaa'; say ($str ~~ /\N ** {0..$count}/).perl
11:54 p6eval rakudo 606060: OUTPUT«Match.perl(orig => "aaaaa", from => 0, to => 5, ast => Mu, list => ().list, hash => EnumMap.new())␤»
11:54 flussence rakudo: my $count = 3; my $str = 'aaaaa'; say ($str ~~ /^^ (\N ** {0..$count})/).perl
11:55 p6eval rakudo 606060: OUTPUT«Match.perl(orig => "aaaaa", from => 0, to => 5, ast => Mu, list => (Match.perl(orig => "aaaaa", from => 0, to => 5, ast => Mu, list => ().list, hash => EnumMap.new()),).list, hash => EnumMap.new())␤»
11:55 flussence hm, that doesn't seem to work...
12:13 flussence on the other hand, it makes ~20 more of Text::Tabs::Wrap's tests pass and gets rid of the annoying undefined str errors...
12:14 hanekomu joined #perl6
12:15 hanekomu dumb questions coming up...
12:16 hanekomu nom is the compiler using 6model, right?
12:16 moritz right
12:16 hanekomu what's the relationship between rakudo and nqp?
12:16 moritz rakudo uses nqp
12:16 moritz for compiling some of rakudo's source files
12:17 hanekomu so, just for bootstrapping?
12:17 flussence nqp is glue between the VM and perl6
12:17 moritz hanekomu: 6model also lives in the nqp repository
12:17 moritz hanekomu: so bootstrapping and a bit more :-)
12:17 hanekomu i should make a note of these things and create a roadmap for n00bs
12:18 moritz that would be greatly appreciated
12:18 hanekomu :)
12:20 hanekomu given that 6model lives in nqp lives in rakudo, what's the purpose of jnthn's separate 6model repo on github?
12:20 moritz hanekomu: that was for early prototyping
12:20 hanekomu so it's deprecated?
12:20 moritz hanekomu: and maybe it will be used for a .NET implementation of 6model
12:20 hanekomu ok
12:21 moritz hanekomu: its code isn't used directly in nqp or rakudo at the moment
12:21 ingy TimToady: can I interest you in a %%%?
12:21 ingy TimToady: <a> %%% <b> matches optional b on either side of a
12:22 ingy TimToady: I need it constantly :)
12:26 bluescreen10 joined #perl6
12:27 moritz nom: my $res = try { die "foo" }
12:27 p6eval nom 606060: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤  in block <anon> at /tmp/GetcJR0cFl:1␤  in <anon> at /tmp/GetcJR0cFl:1␤␤»
12:27 moritz teh fun!
12:29 * moritz closes another 2 year old rakudobug
12:34 SHODAN joined #perl6
12:36 flussence niecza: my $count = 3; my $str = 'aaaaa'; say ($str ~~ /^^ (\N ** {0..$count})/).perl
12:36 p6eval niecza v10-18-g5be99bf: OUTPUT«#<match from(0) to(3) text(aaa) pos([#<match from(0) to(3) text(aaa) pos([].list) named({}.hash)>].list) named({}.hash)>␤»
12:36 flussence niecza++ :D
12:37 moritz rakudo: class A { class B {}; B.new }
12:37 p6eval rakudo 606060:  ( no output )
12:37 moritz rakudo: enum A <a>; say a; eval 'sub a { "O HI" }'; say a
12:37 p6eval rakudo 606060: OUTPUT«A::a␤A::a␤»
12:40 moritz rakudo: grammar { token a-a { a }; token TOP { <a-a> } }
12:40 p6eval rakudo 606060: OUTPUT«===SORRY!===␤regex assertion not terminated by angle bracket at line 1, near "-a> } }"␤»
12:40 moritz std: grammar { token a-a { a }; token TOP { <a-a> } }
12:40 p6eval std 8b331d2: OUTPUT«ok 00:01 121m␤»
12:41 moritz rakudo: my IO $a; $a.readline
12:41 p6eval rakudo 606060: OUTPUT«IO is disallowed in safe mode␤  in sub die at src/gen/CORE.setting:416␤  in sub restricted at src/SAFE.setting:2␤  in block <anon> at src/SAFE.setting:15␤  in <anon> at src/gen/Metamodel.pm:2064␤  in find_method_fallback at src/gen/Metamodel.pm:2062␤  in find_metho…
12:43 moritz rakudo: sub foo { say "bar" }; my $x = 'foo'; &::($x)()
12:43 p6eval rakudo 606060: OUTPUT«bar␤»
12:44 moritz rakudo: say %("foo" ~~ /foo/).exists("foo")
12:44 p6eval rakudo 606060: OUTPUT«Bool::False␤»
12:46 moritz rakudo: subset FooStr of Str where /^foo/; multi method rakudo: subset FooStr of Str where /^foo/; multi
12:46 p6eval rakudo 606060: OUTPUT«===SORRY!===␤Malformed block at line 1, near ": subset F"␤»
12:46 moritz rakudo: subset FooStr of Str where /^foo/; multi trim(FooStr $self:) { return "OH HAI" }; say "foo".trim
12:46 p6eval rakudo 606060: OUTPUT«foo␤»
12:55 cognominal joined #perl6
12:59 dalek roast: 6fba902 | moritz++ | S0 (2 files):
12:59 dalek roast: add a test for RT #65308; fudge capturing-contexts.t for rakudo
12:59 dalek roast: review: https://github.com/perl6/roast/commit/6fba9029f9
13:01 moritz nom: augment class Match { method keys() { %(self).keys } }
13:01 p6eval nom 606060: OUTPUT«===SORRY!===␤augment not allowed without 'use MONKEY_TYPING' at line 1, near "{ method k"␤»
13:01 moritz nom: use MONKEY_TYPING; augment class Match { method keys() { %(self).keys } }
13:01 p6eval nom 606060:  ( no output )
13:04 * jnthn back from keeting
13:05 jnthn er, meeting
13:05 flussence niecza: say [max] 1, 3, 5
13:05 p6eval niecza v10-18-g5be99bf: OUTPUT«␤Unhandled Exception: Excess arguments to CORE infix:<max>, used 2 of 3 positionals␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE infix:<max> @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1408 (CORE reduceop @ 10) ␤  at /tmp/GmOXmVdnOK line…
13:05 flussence aw, that still doesn't work :(
13:06 flussence niecza: say (1, 3, 5).max
13:06 p6eval niecza v10-18-g5be99bf: OUTPUT«␤Unhandled Exception: Unable to resolve method max in class Parcel␤  at /tmp/B5mhcY1NQl line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2115 (CORE C1022_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2116 (CORE module-…
13:06 flussence niecza: say [1, 3, 5].max
13:06 p6eval niecza v10-18-g5be99bf: OUTPUT«␤Unhandled Exception: Unable to resolve method max in class Array␤  at /tmp/A9vkf5KTtM line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2115 (CORE C1022_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2116 (CORE module-C…
13:06 flussence perl6: say max(1,3,5)
13:06 p6eval niecza v10-18-g5be99bf: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤     'max' used at line 1â�¤â�¤â�¤Unhandled Exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 766 (CORE die @ 2) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36) â�¤ …
13:06 p6eval ..pugs, rakudo 606060: OUTPUT«5␤»
13:07 jnthn hanekomu: I'm planning to do updates to nqp on CLR and 6model in CLR in the 6model repo initially. At some point stuff should migrate into the NQP repository, but for now it's easier to do it outside.
13:07 hanekomu jnthn: I'll pretend that I understood that. :)
13:08 jnthn I tried to be clear about what it's for in the 6model repo's README. If it's not clear, patches welcome. ;)
13:08 jnthn Or questions that lead to such. :)
13:08 jnthn I like the idea of a "what is what" kinda doc. I plan to write one for the Rakudo repository at some point.
13:09 moritz I plan to do an update to http://perlgeek.de/blog-en/​perl-6/rakudo-overview.html
13:10 moritz rakudo: enum A <b c>; say A.b
13:10 p6eval rakudo 606060: OUTPUT«Method 'b' not found for invocant of class 'A'␤  in block <anon> at /tmp/5M9QeVfoAZ:1␤  in <anon> at /tmp/5M9QeVfoAZ:1␤␤»
13:11 jnthn moritz: ah, nice :)
13:11 jnthn moritz: I realized while on train to meeting earlier that there's something not quite right int he only sub analysis I put in last night, and it may get some false positives in the "could never work" thing.
13:11 jnthn moritz: Just a heads up in case you go fixing spectests.
13:12 jnthn Will try and fix later today.
13:12 moritz rakudo: say [X] [<a b c>] xx 3
13:12 p6eval rakudo 606060: OUTPUT«a c b c a c b c c c b c a c b c b c b c a c b c c c b c a c b c a c b c a c b c c c b c a c b c b c b c a c b c c c b c a c b c c c b c a c b c c c b c a c b c b c b c a c b c c c b c a c b c a c b c a c b c c c b c a c b c b c b c a c b c c c b c a c b c b c b c a…
13:14 moritz rakudo: class class {}; say class.new.perl
13:14 p6eval rakudo 606060: OUTPUT«===SORRY!===␤Unable to parse $*PKGDECL definition at line 1, near ".new.perl"␤»
13:14 jnthn ugh
13:14 jnthn b: class class {}; say class.new.perl
13:14 p6eval b 1b7dd1: OUTPUT«===SORRY!===␤Malformed package declaration at line 22, near ".new.perl"␤»
13:14 jnthn hm
13:14 jnthn std: class class {}; say class.new.perl
13:14 p6eval std 8b331d2: OUTPUT«ok 00:01 120m␤»
13:15 jnthn Not sure what's going on there.
13:15 jnthn Maybe have a look at package_def rule.
13:18 * moritz wonders why he hasn't got a huge wave of mails from RT yet
13:23 sayu joined #perl6
13:24 bbkr1 joined #perl6
13:27 bbkr joined #perl6
13:31 packetknife joined #perl6
13:32 bbkr1 joined #perl6
13:34 mls_ good news: I've got ENTER/LEAVE phasers working a bit
13:35 mls_ exceptions in LEAVE loop currently
13:37 bbkr joined #perl6
13:38 jnthn mls_: nice :)
13:39 jnthn (nice progress, not nice that they look in LEAVE... ;))
13:39 jnthn *loop
13:39 jnthn ...yeah, I can't type at all any more. Time for a weekend. :)
13:42 Trashlord joined #perl6
13:44 koban left #perl6
13:47 bbkr joined #perl6
13:51 moritz in .de, the Monday is free too \o/
13:54 bbkr joined #perl6
13:57 abercrombie joined #perl6
13:59 jnthn moritz: ooh, nice
14:01 bluescreen10 joined #perl6
14:02 bbkr1 joined #perl6
14:03 moritz make
14:03 moritz ww
14:11 bbkr joined #perl6
14:13 dalek rakudo/nom: 5feefbe | moritz++ | t/spectest.data:
14:13 dalek rakudo/nom: run capturing-contexts.t
14:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5feefbe438
14:13 dalek rakudo/nom: f2cc823 | moritz++ | src/core/IO.pm:
14:13 dalek rakudo/nom: IO.seek and .tell
14:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f2cc8231af
14:27 Trashlord joined #perl6
14:28 bbkr joined #perl6
14:30 molaf__ joined #perl6
14:32 bbkr joined #perl6
14:36 cognominal left #perl6
14:36 cognominal joined #perl6
14:49 thou joined #perl6
14:54 MayDaniel joined #perl6
14:55 MayDaniel joined #perl6
14:55 frew joined #perl6
14:56 frew joined #perl6
14:59 sorear good * #perl6
14:59 frew left #perl6
15:00 hanekomu joined #perl6
15:01 flussence heh, I've finally got my $dayjob to stop complaining about me "wasting time" on TDD. 22 fails, 1722518 passes :)
15:02 hanekomu should    multi sub foo(Int $n where { $n == "Foo" }) { say "what?" }    complain about "Foo" not being an Int?
15:03 sorear no
15:03 sorear at least not at compile time
15:03 flussence the where check is a code block that's opaque to the rest of the signature, so it can't tell something's wrong.
15:04 flussence rakudo: my $n = 1; $n == 'Foo'
15:04 p6eval rakudo f2cc82:  ( no output )
15:04 flussence no errors, because it's technically valid code
15:04 hanekomu sure, but here I say "Int $n" - so it might behave the same as   my Int $foo = "Foo"
15:04 hanekomu but ok
15:04 sorear hanekomu: == and = are not the same at all
15:05 flussence rakudo: say "Foo".Int
15:05 p6eval rakudo f2cc82: OUTPUT«0␤»
15:05 jnthn $n == "Foo" will be true whenever $n contains 0.
15:05 flussence rakudo: say "Foo".Int == "Foo"
15:05 p6eval rakudo f2cc82: OUTPUT«Bool::True␤»
15:05 jnthn Anyway, you don't need to write the block
15:05 hanekomu ah indeed.
15:06 jnthn multi sub foo(Int $n where "foo") { } is just as good.
15:06 jnthn er
15:06 jnthn Well, it's still crazy :)
15:06 jnthn multi sub foo(Int $n where 42) { } # works
15:06 jnthn But then you coulda just written
15:06 jnthn multi sub foo(42) { } # works
15:06 mkramer1 joined #perl6
15:07 hanekomu multi sub foo(Int $n where $n == "Foo")   does not appear to be the same as   multi sub foo(Int $n where "Foo")
15:09 jnthn ah, no
15:09 jnthn it's more like $n eq "Foo"
15:09 hanekomu btw,   multi sub foo(0) { say "zero" }    multi sub foo(0) { say "another zero" }      foo(0);     says something about it being ambiguous and lists    :(Int)      twice
15:09 jnthn Well, it *is* ambiguous.
15:09 hanekomu might it not list ":(0)", since it has more precise information?
15:09 jnthn Yes, it can...I even did the refactor the other day to enable us to do that.
15:09 jnthn Just didn't get around to it yet.
15:09 hanekomu ah :)
15:13 hanekomu_ joined #perl6
15:19 jnthn Time to head out for beer and dinner. Back later :)
15:21 cosimo joined #perl6
15:37 am0c joined #perl6
15:49 bbkr joined #perl6
16:00 dalek niecza/serialize: 174e334 | sorear++ | / (3 files):
16:00 dalek niecza/serialize: Implement compiler support for is-traits
16:00 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/174e3343ac
16:03 [Coke] (mails from RT) did you remember to check the "cc list" box?
16:03 [Coke] if so, sometimes those emails need to be whitelisted, IIRC.
16:07 bbkr joined #perl6
16:07 * [Coke] thinks all the LHF on niecza running spec tests is nearly done.
16:14 mls_ hah! it doesn't loop anymore! \o/
16:21 arthur-_ joined #perl6
16:23 mls_ perl6: eval(q{ { } })
16:23 p6eval pugs, niecza v10-18-g5be99bf:  ( no output )
16:23 p6eval ..rakudo f2cc82: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1␤»
16:32 moritz rakudo: multi sub foo(0, $){}; multi sub foo(Int $n, Str $a="A"){say $a}; foo(2,"A")
16:32 p6eval rakudo f2cc82: OUTPUT«A␤»
16:36 dalek roast: 39684f0 | moritz++ | S06-multi/value-based.t:
16:36 dalek roast: dispatch test involving literals and optional parameters (RT #88562)
16:36 dalek roast: review: https://github.com/perl6/roast/commit/39684f0f4a
16:36 mberends joined #perl6
16:37 moritz tadzik: how is the release coming along?
16:41 moritz rakudo: multi sub foo(:bar(:$quux)!) { }; foo(:bar);
16:41 p6eval rakudo f2cc82: OUTPUT«No applicable candidates found to dispatch to for 'foo'. Available candidates are:␤:(Any $quux)␤␤  in sub foo at /tmp/6LJVP9mYAj:1␤  in block <anon> at /tmp/6LJVP9mYAj:1␤  in <anon> at /tmp/6LJVP9mYAj:1␤␤»
16:41 mberends [Coke]: good job on all the testing!  Do whatever you like with test_summary. I'll resume microbenchmarking with it in a few weeks.
16:41 cotto joined #perl6
16:42 sorear o/ mberends
16:42 sorear Coke++ # testing!
16:42 moritz rakudo: "foo".{ say $^a }
16:42 p6eval rakudo f2cc82: OUTPUT«Null PMC access in find_method('gist')␤  in sub say at src/gen/CORE.setting:4930␤  in block <anon> at /tmp/TQySHMT3jS:1␤  in <anon> at /tmp/TQySHMT3jS:1␤␤»
16:42 mberends o/ sorear
16:43 moritz rakudo: say min(3,6)
16:43 p6eval rakudo f2cc82: OUTPUT«3␤»
16:44 moritz rakudo: +sub {}
16:44 mberends sorear: how are you doing with the serialize branch?
16:44 p6eval rakudo f2cc82: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu, Mu %_)␤␤  in method Numeric at src/gen/CORE.setting:607␤  in sub prefix:<+> at src/gen/CORE.setting:1804␤  in block <anon> at /tmp/A3VR50QVdR:1␤  in <anon> at /tmp/A3VR50QV…
16:45 packetknife joined #perl6
16:46 sorear mberends: I'm feeling pretty decent about it.  Very high chance it will run Hello World at least by next #phasers
16:46 sorear ETA 2 weeks
16:47 mberends sorear++: excellent :)
16:48 * mberends will try Mono's System.Drawing instead of Gtk for a bit
16:48 cooper joined #perl6
16:50 cotto joined #perl6
16:52 sorear mberends: how do you get a window to use with System.Drawing?
16:53 sorear (winforms?)
16:55 makkksimal joined #perl6
16:56 mberends sorear: yes, and gacutil -l says System.Windows.Forms is not installed :-( That API might be patented.
16:58 mberends sorear: that's probably the biggest hurdle, to create an object for the drawing area.
16:59 felher If i define a closure in a class, does the closure know 'self'? I.d.: Can i do 'class A { has $.x; has $.closure = { say self.x; }}'. If not, why? Isn't 'self' in the lexical scope of the class? Do i have totally wrong assumptions here? :)
16:59 moritz felher: I thought and hoped you could, but nom doesn't seem to allow it
17:00 felher moritz: Okay, but it should work some far day? :)
17:01 moritz felher: I hope so
17:01 felher moritz: nice :)
17:03 felher Hm, does that mean one will be able to do: 'class Vector { has $.dimension; subset Compatible of Vector where { self.dimension == $_.dimension }; method distance-to(Compatible $vector) { ... }; }'
17:05 kaleem joined #perl6
17:07 MayDaniel joined #perl6
17:07 mkramer1 left #perl6
17:07 sorear mberends: I hear mono supports WinForms.
17:07 hanekomu joined #perl6
17:09 localhost joined #perl6
17:10 jevin joined #perl6
17:10 felher +?
17:11 mberends sorear: yes, there are examples online that suggest that. I'm porting a simple C# one: http://zetcode.com/tutorials/mon​owinformstutorial/introduction/
17:11 [Coke] sorear, mberends: glad to help.
17:11 sorear mberends: if you're having too much trouble, ask #mono
17:11 sorear (irc.gimp.net)
17:12 sorear er, irc.gnome.org
17:12 mberends sorear: thanks, good idea for later, but not from a moving train
17:14 felher std: class A { has $.x = 0; has $.clossure = { say self.x; } }; # :(
17:14 p6eval std 8b331d2: OUTPUT«[31m===[0mSORRY![31m===[0m�'self' used where no object is available at /tmp/WMnKXeOifB line 1:�------> [32mhas $.x = 0; has $.clossure = { say self[33m�[31m.x; } }; # :([0m�Check failed�FAILED 00:01 123m�»
17:14 TimToady my current thinking: 'print' stays raw list/Str output as in P5, 'show' becomes 'print @args».gist', and 'say' is then defined as show + newline.
17:15 shinobicl nom: ('' =~ '')?1:0
17:15 p6eval nom f2cc82: OUTPUT«===SORRY!===␤Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 1, near " '')?1:0"␤»
17:15 shinobicl nom: ('' ~~ '')?1:0
17:15 p6eval nom f2cc82: OUTPUT«===SORRY!===␤Unsupported use of ?: for the conditional operator; in Perl 6 please use ??!! at line 1, near "1:0"␤»
17:15 shinobicl nom: ('' ~~ '')??1!!0
17:15 p6eval nom f2cc82:  ( no output )
17:15 sorear TimToady: what's wrong with the status quo?
17:16 sorear perl6: say '' ~~ ''
17:16 p6eval rakudo f2cc82, niecza v10-18-g5be99bf: OUTPUT«Bool::True␤»
17:16 p6eval ..pugs: OUTPUT«1␤»
17:16 TimToady sorear: people were hating on the status quo yesterday
17:16 [Coke] sorear: there was much gnashing of teeth yesterday about say not being "print plus newline".
17:17 TimToady so I'm suggesting that say is "show plus newline"
17:17 TimToady show basically being a say without the newline
17:17 [Coke] TimToady: that
17:17 TimToady with vague allusions to "show your hand"
17:17 [Coke] (allusions aside) that's not a bad compromise.
17:17 TimToady indicate something before commiting to it
17:18 TimToady and also works because 'show' is how many command APIs dump out settable values
17:19 mberends I would prefer to rollback a few weeks and not make .gist the default stringifier for say.
17:21 tadzik oooh
17:21 tadzik moritz: thanks for reminding :0
17:21 tadzik I'm on it
17:22 tadzik are we fine with non-clean spectest?
17:22 * sorear prefers the status quo to all proposals, but will accept TimToady's decision
17:23 TimToady there were good reasons for gisting the output of say, since it's primarily used for human output, not computer input
17:23 TimToady or however you say that
17:24 TimToady there are also good reasons for leaving print raw
17:24 [Coke] who (aside from TT) is making the distincting between human output and non-human output?
17:24 [Coke] *distinction
17:25 [Coke] That's my primary source of disconnect with the change.
17:25 TimToady maybe you're not a human?
17:28 mberends sorear: Debian/Ubuntu package libmono-winforms2.0-cil must be installed
17:28 mls_ the problem seems to be that you've got two directions of freedom, but just print/say
17:29 mls_ print/println, say/saynl ;)
17:29 mls_ printnl
17:29 tadzik sayln, nice
17:29 tadzik or saysay
17:30 mls_ currently print/say are in the "opposite" corners
17:30 mls_ which makes it hard to define the other two
17:30 TimToady and I think they should stay there
17:30 flussence bah, I fix a bunch of T-T-W for nom and it causes niecza to barf...
17:30 TimToady I'm suggesting show for one corner
17:30 * tadzik got distracted by $lugtalk and is now working on the release
17:31 TimToady (prompt being implemented in terms of show, probably)
17:31 TimToady as for printnl, that's not really much better than print @args, nl; # assuming constant nl = "\n"
17:31 mls_ yes, but having three different names that have nothing in common is confusing for beginners
17:32 [Coke] I'd prefer to have to say .gist if I meant it, rather than multiply operators by output type.
17:32 mls_ (Of course I was kidding with that nl suffix ;) )
17:32 TimToady human languages are most irregular at the most used spots
17:32 TimToady and this is a heavily used spot
17:32 PerlJam greetings
17:33 [Coke] yes, but they are that way not because they were designed that way.
17:33 mls_ TimToady: That's certainly true, from a usage perspective print/say are exactly right IMHO
17:33 espadrine joined #perl6
17:35 TimToady [Coke]: you should read The Search for the Perfect Language by Umberto Eco
17:35 TimToady the heavily used bits of a language are precisely where you do *not* want orthogonality
17:35 PerlJam ingy:   <b>? ~ <b>? <a>   # There's your %%%  :-)
17:36 mls_ I just think that 'show' is confusing, how about printgist?
17:36 mls_ (assuming it's not used often)
17:37 TimToady printline, printgist, and printgistline AKA say :)
17:37 donri joined #perl6
17:37 TimToady prin, prig, and pring :)
17:38 mls_ maybe too much huffman ;)
17:38 lateau_1 joined #perl6
17:38 [Coke] printgist ain't much shorter than print ....gist
17:38 TimToady too much Perfect Language
17:38 PerlJam TimToady: so ... what's the short-hand for  print + newline ?
17:38 TimToady indeed, and printline is no shorter than print ,nl
17:39 TimToady how about a built-in nl constant?
17:39 TimToady or NL
17:39 mls_ but it looks easier and it's easier to append stuff at the end
17:39 TimToady saves all of two characters
17:39 PerlJam Just like C++  (there, does that kill it? :)
17:40 felher I like print, show, say. It would leave print and say untouched, just adding show to be say - newline. Or am i wrong about that?
17:41 flussence argh, too much workarounding
17:41 tadzik I liked the old behaviour of print/say
17:41 * flussence gives up trying to make Text::Wrap work in niecza
17:41 moritz tadzik: which part of the spectest is non-clean?
17:42 tadzik moritz: rechecking, maybe I'm wrong about it, but istr some tests failing non-deterministically
17:42 sorear I happen to really like the current definition of say.
17:42 [Coke] felher: (untouched) from today, not from a week ago or whenever that was.
17:42 tadzik maybe they got fudged when I wasn't looking
17:42 [Coke] sorear: and I happen to really not. ;)
17:42 donri joined #perl6
17:43 mls_ ok, I have to head home, enjoy the further discussion... -> afk
17:43 PerlJam sorear: what if show were today's say and say was just print + newline ?
17:43 Chillance joined #perl6
17:43 donri joined #perl6
17:43 * moritz would be fine with that
17:43 felher [Coke]: Yeah. What was the old behaviour? say = print + nl?
17:43 [Coke] felher: yes.
17:44 flussence sorear: how much trouble would it be to get continue{} working?
17:44 [Coke] that would be better than the earlier proposed compromise, IMO.
17:48 felher We may use print, say (for .Str) and show, echo (for .gist) ;D Perhaps that would keep me from trying to write 'say' on the commandline ;D
17:48 sorear PerlJam: I wouldn't complain.
17:49 sorear flussence: can you explain what continue{} does?
17:49 sorear flussence: do you mean NEXT{}?
17:49 flussence ...I'm doing something idiotic that only coincidentally works in rakudo again, aren't I? :)
17:50 flussence well, I get a NYI message now, so I suppose I'm asking for NEXT :)
17:51 felher std: class A { has $.x = 0; has $.closure = { say self.x; } }; # TimToady: Should that be possible?
17:51 p6eval std 8b331d2: OUTPUT«[31m===[0mSORRY![31m===[0m�'self' used where no object is available at /tmp/uL9E2UNDTP line 1:�------> [32m has $.x = 0; has $.closure = { say self[33m�[31m.x; } }; # TimToady: Should that be poss[0m�Check failed�FAILED 00:01 123m�»
17:51 kaare_ joined #perl6
17:51 PerlJam felher: perhaps if it were a method, otherwise it's not clear what "self" means.
17:52 TimToady which is precisly what the error message says already
17:52 sorear flussence: S04:359 "There is no longer a C<continue> block."
17:53 felher I thought maybe self is in the lexical scope of a class. :/
17:53 TimToady but what would it *mean*?
17:53 sorear niecza doesn't do NEXT (yet) though.
17:54 tadzik moritz: okay, it's a PASS, it's just some TODOs passed
17:54 tadzik t/spec/S06-signature/slurpy-params.rakudo and t/spec/S19-command-line/dash-e.rakudo
17:55 moritz tadzik: slurpy-params.t can be unfudged, I think
17:55 moritz tadzik: and I'd just comment out dash-e.t for now
17:55 tadzik okay, but that's a roastthing
17:55 tadzik moritz: from spectest.data?
17:55 * flussence blames perl6.vim for having misleading highlighting on "continue"
17:55 moritz tadzik: aye
17:56 TimToady flussence: that's a fossil, it's "proceed" now
17:56 espadrine joined #perl6
17:56 PerlJam flussence: it's probably a hold over since I belive perl6.vim started life as perl5.vim
17:57 felher I think i just don't know enough, but i thought it might work just as: sub a() { my $x; return sub() { $x++ } }. Every invocation of a() gets its own $x. Just so every object gets it own self.
17:57 PerlJam felher: but you don't have an object in the class definition
17:57 moritz felher: well, it can only work if the sub is within a method
17:57 mberends joined #perl6
17:58 flussence rakudo: for 1, 2 { say 'a'; continue { say 'b' } }
17:58 p6eval rakudo f2cc82: OUTPUT«a␤Could not find sub &continue␤  in block <anon> at /tmp/fZI1md5tlN:1␤  in method reify at src/gen/CORE.setting:3746␤  in method reify at src/gen/CORE.setting:3651␤  in method reify at src/gen/CORE.setting:3651␤  in method gimme at src/gen/CORE.setting:3988␤  in me…
17:58 flussence huh, why did that work in my code...
17:59 felher I thought i don't have a sub at 'sub a() { my $x ... } ' either, just a definition of a sub.
17:59 flussence oh. of course. it never reached that because it's not a NEXT
17:59 flussence rakudo: for 1, 2 { say 'a'; NEXT { say 'b' } }
17:59 p6eval rakudo f2cc82: OUTPUT«a␤Could not find sub &NEXT␤  in block <anon> at /tmp/La64ZtobaZ:1␤  in method reify at src/gen/CORE.setting:3746␤  in method reify at src/gen/CORE.setting:3651␤  in method reify at src/gen/CORE.setting:3651␤  in method gimme at src/gen/CORE.setting:3988␤  in method…
17:59 flussence erm.
17:59 flussence rakudo: my $x = 3; while $x-- { say 'a'; NEXT { say 'b' } }
17:59 p6eval rakudo f2cc82: OUTPUT«a␤Could not find sub &NEXT␤  in block <anon> at /tmp/1eLCrCgEQv:1␤  in block <anon> at /tmp/1eLCrCgEQv:1␤  in <anon> at /tmp/1eLCrCgEQv:1␤␤»
17:59 felher As well as a class is a definition of an object. Thats not right, hm, isn't it? :)
17:59 TimToady b: for 1, 2 { say 'a'; NEXT { say 'b' } }
17:59 p6eval b 1b7dd1: OUTPUT«a␤Could not find sub &NEXT␤  in <anon> at line 22:/tmp/yD2etZc42e␤  in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp␤»
17:59 flussence rakudo: my $x = 3; while $x-- { say 'a'; next; say 'c'; NEXT { say 'b' } }
17:59 p6eval rakudo f2cc82: OUTPUT«a␤a␤a␤»
18:00 flussence rakudo: my $x = 3; while $x-- { say 'a'; next; say 'c'; some-completely-made-up-keyword { say 'b' } }
18:00 p6eval rakudo f2cc82: OUTPUT«a␤a␤a␤»
18:00 Reaganomicon joined #perl6
18:00 dalek rakudo/nom: f2e57ca | tadzik++ | VERSION:
18:00 dalek rakudo/nom: [release] bump VERSION
18:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f2e57ca01b
18:00 dalek rakudo/nom: 1403177 | tadzik++ | t/spectest.data:
18:00 dalek rakudo/nom: Temporarily comment out dash-e.t
18:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1403177a5d
18:00 TimToady rakudo: for 1, 2 { say 'a'; LEAVE { say 'b' } }
18:00 p6eval rakudo f2cc82: OUTPUT«===SORRY!===␤LEAVE phaser not yet implemented at line 1, near " }"␤»
18:01 TimToady b: for 1, 2 { say 'a'; LEAVE { say 'b' } }
18:01 p6eval b 1b7dd1: OUTPUT«===SORRY!===␤LEAVE phaser not yet implemented at line 22, near " }"␤»
18:02 felher moritz: my 'sub a() ' just built a closure. It wasn't meant to be in a class at all. Sorry for the confusion. :)
18:02 TimToady NEXT is really just a LEAVE that doesn't fire when unwound by a 'last'
18:03 sorear TimToady: so NEXT runs twice in your example?
18:03 * sorear thought there had to be an actual last element
18:03 TimToady yes, it runs right before the loop condition is tested again, as continue does in P5
18:03 flussence should rakudo's spectest.data mention all the files in t/spec? I just noticed most of S04-phasers isn't there at all...
18:04 moritz flussence: no
18:04 TimToady from an optimization point of view, NEXT is just a bit of code at the end that a 'next' does a goto to
18:04 TimToady that's how P5 implements continue
18:05 felher left #perl6
18:05 TimToady biab &
18:05 dalek roast: 97c23e5 | moritz++ | S12-attributes/instance.t:
18:05 dalek roast: refudge and correct S12-attributes/instance.t; add tests for attribute list assignment
18:05 dalek roast: review: https://github.com/perl6/roast/commit/97c23e53d0
18:05 moritz tadzik: I just fudged another test file -- can I add it to spectest.data before the release?
18:06 tadzik moritz: go on
18:09 tadzik moritz: I assume it doesn't break anything? :)
18:09 tadzik I'll just retag everything and ship it, I just checked the tarball for workingness
18:09 moritz tadzik: no need to retagging
18:09 tadzik really?
18:09 tadzik but I already have a tarball and everything
18:09 moritz tadzik: it's fine to add it after the release; I just didn't want to mess with your prcoess
18:10 tadzik no worries, nothing can stop me now
18:10 moritz nom: say 10.ln
18:10 p6eval nom f2cc82: OUTPUT«Method 'ln' not found for invocant of class 'Int'␤  in block <anon> at /tmp/wHslIxEoFE:1␤  in <anon> at /tmp/wHslIxEoFE:1␤␤»
18:11 flussence rakudo: say 'a'; goto 'end'; say 'b'; end: say 'c';
18:11 p6eval rakudo f2cc82: OUTPUT«===SORRY!===␤Confused at line 1, near "end: say '"␤»
18:12 flussence niecza: say 'a'; goto 'end'; say 'b'; end: say 'c';
18:13 p6eval niecza v10-18-g5be99bf: OUTPUT«a␤c␤»
18:14 tadzik okay, release complete
18:14 moritz tadzik++
18:14 tadzik if I didn't forget anything
18:14 flussence \o/
18:14 tadzik sorry for the delay
18:15 dalek roast: 8c73ebb | moritz++ | integration/99problems-51-to-60.t:
18:15 dalek roast: use Any instead of Mu where appropriate
18:15 dalek roast: review: https://github.com/perl6/roast/commit/8c73ebb192
18:16 felher joined #perl6
18:16 ingy PerlJam: huh? that doesn't work
18:17 ingy I want class: <method> %%% <comment>*
18:17 ingy in the real world
18:17 ingy er
18:17 ingy class: <method>+ %%% <comment>*
18:18 TimToady druther do something different, like %? and ?%
18:18 dalek rakudo/nom: cf85f33 | moritz++ | t/spectest.data:
18:18 dalek rakudo/nom: run instance attribute tests
18:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cf85f33d60
18:18 dalek rakudo/nom: 091bee7 | moritz++ | src/core/ (2 files):
18:18 dalek rakudo/nom: fail() in Complex.Real
18:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/091bee7464
18:19 ingy TimToady: I thought about that but it's not really needed
18:19 ingy if you are trying to say optional front, but no optional rear
18:19 ingy just reverse a and b
18:20 felher PerlJam, moritz: I finally understood it. Thnx for your help :)
18:20 Arrgh joined #perl6
18:21 ingy TimToady: so ?%? too?
18:21 ingy Arrgh!!!!
18:21 ingy (that felt so good)
18:21 flussence .oO( I can't write code to spec that works in anything. this is giving me web-dev flashbacks... )
18:21 ingy Arrgh++
18:21 moritz nom: class A { method x() { sub { self } } }; my $x = A.new; say $x === $x.x.()
18:21 TimToady I don't think reversing it will work
18:21 p6eval nom f2cc82: OUTPUT«Bool::True␤»
18:22 moritz felher: here the inner sub is a closure that closes over self
18:22 Arrgh Howdy, glad to be of help. ;)  I'm a Scala guy, just curious about how you guys are progressing these days
18:22 moritz Arrgh: quite nicely, actually
18:22 ingy no?
18:22 mberends joined #perl6
18:23 ingy TimToady: failing example please
18:23 moritz Arrgh: in rakudo, we are now at a point where we can implement nice optimizations
18:23 ingy Arrgh: I can translate p6 modules to Scala!
18:23 ingy Arrgh: http://cdent.org/examples/hello-world/
18:24 ingy :D
18:24 ingy not very many modules yet ;)
18:24 * moritz can translate "Hello, World" into a whole lot of programming languages
18:25 packetkn_ joined #perl6
18:25 felher moritz: yeah, i see :)
18:25 ingy TimToady: let me know if you drop %% and add ?%? or whatever
18:25 ingy dinner&
18:27 gfldex joined #perl6
18:29 diakopter .
18:29 sorear hello diakopter
18:29 diakopter hi
18:30 mberends Niecza can make an empty System.Windows.Forms.Form with Mono :)
18:30 diakopter gist?
18:31 mberends soon, this mobile interweb is flaky
18:31 diakopter TimToady: show +1
18:32 PerlJam diakopter: ah, but which version of show?  :)
18:33 diakopter http://irclog.perlgeek.de/​perl6/2011-09-30#i_4504618
18:34 PerlJam diakopter: what about http://irclog.perlgeek.de/​perl6/2011-09-30#i_4504833 ?
18:35 diakopter hm yeah +1 to that too
18:35 diakopter less trouble for p5 migration
18:35 diakopter well sorta
18:36 flussence perl6: sub foo($a, $b, $c) { say "$a $b $c" }; my &wrapped = &foo.assuming('a', 'b'); &wrapped('c');
18:37 p6eval rakudo f2cc82, niecza v10-18-g5be99bf: OUTPUT«a b c␤»
18:37 p6eval ..pugs: OUTPUT«*** Can't modify constant item: VStr "MkCode {isMulti = True, subName = \"&\", subType = SubPrim, subOuterPads = [], subInnerPad = MkPad (padToList []), subPackage = , subAssoc = AIrrelevantToParsing, subParams = [], subBindings = [], subSlurpLimit = [], subReturns = (mkTyp…
18:37 flussence perl6: sub foo($a, $b, *@_) { say "$a $b @_" }; my &wrapped = &foo.assuming('a', 'b'); &wrapped('c');
18:37 p6eval rakudo f2cc82, niecza v10-18-g5be99bf: OUTPUT«a b @_␤»
18:37 p6eval ..pugs: OUTPUT«*** Can't modify constant item: VStr "MkCode {isMulti = True, subName = \"&\", subType = SubPrim, subOuterPads = [], subInnerPad = MkPad (padToList []), subPackage = , subAssoc = AIrrelevantToParsing, subParams = [], subBindings = [], subSlurpLimit = [], subReturns = (mkTyp…
18:37 flussence perl6: sub foo($a, $b, *@_) { say "$a $b " ~ @_.join }; my &wrapped = &foo.assuming('a', 'b'); &wrapped('c');
18:37 p6eval rakudo f2cc82, niecza v10-18-g5be99bf: OUTPUT«a b c␤»
18:37 p6eval ..pugs: OUTPUT«*** Can't modify constant item: VStr "MkCode {isMulti = True, subName = \"&\", subType = SubPrim, subOuterPads = [], subInnerPad = MkPad (padToList []), subPackage = , subAssoc = AIrrelevantToParsing, subParams = [], subBindings = [], subSlurpLimit = [], subReturns = (mkTyp…
18:37 PerlJam flussence: @_[] or {@_} would have interpolated
18:38 felher moritz: Hm, so since what i want seems not to be possible: is there a way to get something like: 'class Vector { has $.dimension; ... >>>subset Compatible of Vector where { $.dimension == $_.dimension };<<< method sum(Comptabible $other) {...}; method prod(Compatible $other) {...};}'? I know i could use a method is_compatible(Vector $other). I would like to have a subset, though. :)
18:39 moritz felher: should be possible
18:41 moritz felher: hm, no
18:41 moritz types cannot have dependencies on multiple objects in a sane fashion
18:42 felher moritz: Hm, what a pitty. Well, thnx nevertheless. # moritz++ for his incredible patience :)
18:44 Arrgh left #perl6
18:47 PerlJam felher: you could put the where clause each method ... method sum(Vector $v where { $.dimension == $v.dimension }) { ... }
18:47 PerlJam felher: if we had macros it wouldn't even be that onerus to do it to multiple methods.
18:47 PerlJam (if we had macros)
18:50 moritz nom: Int.^add_fallback(-> $, $ { True }, sub f($a, $b) { say "$a,$b" }); 5.foo
18:50 p6eval nom f2cc82: OUTPUT«5,foo␤Method 'postcircumfix:<( )>' not found for invocant of class 'Bool'␤  in <anon> at src/gen/Metamodel.pm:3143␤  in block <anon> at /tmp/f4MoK03QIW:1␤  in <anon> at /tmp/f4MoK03QIW:1␤␤»
18:51 felher PerlJam: yeah :) if we had macros. :)
18:54 felher felher -> afk, studying
18:58 moritz there's an even better way
18:58 moritz make it a generic role
18:58 moritz Vector[$Dimension]
18:58 PerlJam oh, good point
18:58 Woodi b: sub a { my $b=1; $b != 2 ?? { say "p1$b"; return False} !! { say "p2$b" } }; say a();
18:58 p6eval b 1b7dd1: OUTPUT«_block1080␤»
18:59 moritz and then you have a real type
18:59 Woodi rakudo: sub a { my $b=1; $b != 2 ?? { say "p1$b"; return False} !! { say "p2$b" } }; say a();
18:59 p6eval rakudo 091bee: OUTPUT«_block1015␤»
18:59 Woodi rakudo: sub a { my $b=1; $b != 2 ?? &{ say "p1$b"; return False} !! &{ say "p2$b" } }; say a();
18:59 p6eval rakudo 091bee: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 1, near "&{ say \"p1"␤»
18:59 moritz Woodi: try to invoke the result
18:59 moritz rakudo: sub a { my $b=1; $b != 2 ?? { say "p1$b"; return False} !! { say "p2$b" } }; say a()()
18:59 p6eval rakudo 091bee: OUTPUT«p11␤Attempt to return from exhausted Routine␤  in sub die at src/gen/CORE.setting:416␤  in sub EXHAUST at src/gen/CORE.setting:481␤  in block <anon> at /tmp/VKIfuDHHCh:1␤  in block <anon> at /tmp/VKIfuDHHCh:1␤  in <anon> at /tmp/VKIfuDHHCh:1␤␤»
19:00 * Woodi have no idea what invoke is :)
19:00 moritz call
19:02 Woodi rakudo: sub a { my $b=1; $b != 2 ?? &{ say "p1$b"; return False} !! &{ say "p2$b" }; say "more" }; say a()()
19:02 p6eval rakudo 091bee: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 1, near "&{ say \"p1"␤»
19:02 Woodi rakudo: sub a { my $b=1; $b != 2 ?? { say "p1$b"; return False} !! { say "p2$b" }; say "more" }; say a()()
19:02 p6eval rakudo 091bee: OUTPUT«more␤Method 'postcircumfix:<( )>' not found for invocant of class 'Bool'␤  in <anon> at src/gen/Metamodel.pm:3143␤  in block <anon> at /tmp/poa0qPZ36s:1␤  in <anon> at /tmp/poa0qPZ36s:1␤␤»
19:03 moritz Woodi: just use if/else :-)
19:03 Woodi right :)
19:03 moritz you can also use do { ... }
19:03 moritz but that's *really* bad style
19:04 Woodi but it always annoy me that C/Perl5 ?: allows only one operation
19:04 * PerlJam starts working on "Elements of Perl 6 Programming Style"
19:04 Woodi is do {} have good performance ?
19:04 Woodi err
19:04 PerlJam Woodi: that's not true
19:05 Woodi do do {} have good performance ?
19:05 moritz Woodi: in rakudo, every { } block is an invocation, and that's relatively slow
19:05 PerlJam Woodi: but aside from that ... if you need something more complicated, that's what if/else is for.
19:05 moritz doesn't matter if the block belongs to a 'do', an 'if' or whatever
19:06 Woodi i want something not so complicated :) just assign to walue and return..
19:06 tadzik did my p6c email get there?
19:06 Woodi k, rewrite to if
19:06 moritz tadzik: I haven't got it yet
19:07 tadzik dang
19:07 moritz tadzik: I'd also expected to get lots of mails from RT today (because I closed lots of tickets), but didn't get any
19:08 moritz seems p6c has a hiccup
19:08 jlaire joined #perl6
19:09 GlitchMr joined #perl6
19:09 GlitchMr niecza: ...
19:09 phenny GlitchMr: 04:00Z <sorear> tell GlitchMr 1. it's is equiv<++>, not is equiv:<++>, these are completely different 2. precedence on multis is NYI in niecza, just use regular subs
19:09 p6eval niecza v10-18-g5be99bf: OUTPUT«␤Unhandled Exception: >>>Stub code executed␤  at /tmp/sChZLjultR line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2115 (CORE C1022_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2116 (CORE module-CORE @ 58) ␤  at /home/…
19:10 GlitchMr rakudo: ...
19:10 p6eval rakudo 091bee:  ( no output )
19:10 GlitchMr no output...
19:12 GlitchMr rakudo: '$'..'@'
19:12 p6eval rakudo 091bee:  ( no output )
19:13 GlitchMr rakudo: say chr $_ for 36..64
19:13 p6eval rakudo 091bee: OUTPUT«$␤%␤&␤'␤(␤)␤*␤+␤,␤-␤.␤/␤0␤​1␤2␤3␤4␤5␤6␤7␤8␤9␤:␤;␤<␤=␤>␤?␤@␤»
19:13 GlitchMr For me both of those forms looks identical...
19:13 GlitchMr Oh I see...
19:13 GlitchMr I forgot print
19:13 GlitchMr lol
19:13 GlitchMr rakudo: print '$'..'@'
19:14 p6eval rakudo 091bee: OUTPUT«(timeout)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$​$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$​$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$​$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$​$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$​$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$…
19:14 GlitchMr whatever, it was wrong
19:14 GlitchMr rakudo: say $_ for '$'..'@'
19:14 dalek rakudo/nom: ebd4d87 | moritz++ | src/core/Failure.pm:
19:14 dalek rakudo/nom: throw an exception when calling an exception of Failure
19:14 dalek rakudo/nom:
19:14 dalek rakudo/nom: Probably not spec, but much better than the message that the method could not be found
19:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ebd4d87a0e
19:14 p6eval rakudo 091bee: OUTPUT«(timeout)»
19:15 masak joined #perl6
19:15 masak guten heute, #perl6
19:15 GlitchMr rakudo: `clear`;
19:15 p6eval rakudo 091bee: OUTPUT«===SORRY!===␤Confused at line 1, near "`clear`;"␤»
19:16 masak GlitchMr: qx
19:16 GlitchMr rakudo: qx(clear);
19:16 masak rakudo: qx[clear]
19:16 p6eval rakudo 091bee: OUTPUT«Could not find sub &clear␤  in block <anon> at /tmp/_TDl4Z9DiS:1␤  in <anon> at /tmp/_TDl4Z9DiS:1␤␤»
19:16 p6eval rakudo 091bee: OUTPUT«qx, qqx is disallowed in safe mode␤  in sub die at src/gen/CORE.setting:416␤  in sub restricted at src/SAFE.setting:2␤  in sub QX at src/SAFE.setting:9␤  in block <anon> at /tmp/w5P2mf9IAL:1␤  in <anon> at /tmp/w5P2mf9IAL:1␤␤»
19:16 GlitchMr safe mode...
19:16 GlitchMr O_o
19:16 masak GlitchMr: parentheses always mean sub call
19:16 masak GlitchMr: safe mode is on in #perl6.
19:16 GlitchMr What is safe mode?
19:17 masak it's turning off some potentially damaging function in Rakudo.
19:17 jnthn evenin'
19:17 GlitchMr I guess it's similar to safe_mode in PHP... but... that doesn't say much...
19:17 masak jnthn: o/
19:17 masak GlitchMr: not sure it's similar to that.
19:17 moritz GlitchMr: would you run an IRC bot and allow everybody to execute shell commands on your server?
19:17 flussence well for one, rakudo's safe mode actually does something :)
19:17 tadzik oh hai mr masak
19:17 GlitchMr Makes sense...
19:17 masak GlitchMr: it's just a way to prevent obvious abuses of the p6eval bot.
19:17 masak tadzik: mr tadzik, czesc!
19:18 GlitchMr niecza: qx[clear]
19:18 dalek roast: 9842081 | moritz++ | S06-signature/slurpy-params.t:
19:18 dalek roast: unfudge now-passing "is default" test for rakudo
19:18 dalek roast: review: https://github.com/perl6/roast/commit/9842081aba
19:18 p6eval niecza v10-18-g5be99bf: OUTPUT«␤Unhandled Exception: System.Exception: Unable to find lexical rungather in mainline␤  at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, Boolean upf, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0 ␤  at Niecza.CLRBac…
19:18 GlitchMr ...
19:18 moritz tadzik++ # best rakudo release ever
19:19 masak moritz++ # been busy in RT, I see
19:19 jnthn .oO( if tadzik++ does the best Rakudo releases ever, we should just get him to do all of them ;) )
19:19 masak oh, we've had a release? neat!
19:19 moritz rakudo: class A { method foo { my $a = 42; method bar { say $a
19:19 p6eval rakudo 091bee: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 1␤»
19:19 moritz rakudo: class A { method foo { my $a = 42; method bar { say $a } } }; given A.new { .foo; .bar }
19:20 p6eval rakudo 091bee: OUTPUT«42␤»
19:20 masak moritz: congrats on closing RT #52242 -- was that our oldest open one?
19:20 masak moritz: wow, methods in methods -- that's *evil*! who makes up this stuff? :P
19:21 moritz masak: I just know who submitted the ticket :-)
19:21 jnthn masak: you? :P
19:21 jnthn Did it not work out at one time?
19:21 * masak glances around innocently
19:21 masak jnthn: I think it NPMCAs in ng.
19:21 masak or something.
19:22 moritz yep
19:22 moritz https://rt.perl.org/rt3/Ti​cket/Display.html?id=83902
19:22 felher moritz: Hm, vector[$dimension]. Yeah, right. :) One won't be able to easily extend one's vector into a new dimension, though. But it's definitively enought for what i want to do. Ty!
19:22 masak so... evil...
19:22 GlitchMr rakudo: class nope { method nope { print 'nope' }} class yope is nope {} my $yope = yope.new(); $yope.nope
19:22 p6eval rakudo 091bee: OUTPUT«===SORRY!===␤Confused at line 1, near "class nope"␤»
19:23 GlitchMr ...
19:23 masak GlitchMr: semicolon after closing brace.
19:23 masak if you mean to write more on that line.
19:23 GlitchMr rakudo: class Nope { method nope { print 'nope' }}; class Yope is nope {}; my $yope = Yope.new(); $yope.nope
19:23 masak which you usually do in one-liners :)
19:23 p6eval rakudo 091bee: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Mu $type, Any $size, Any $nativesize)␤:(Attribute $attr, Any $rw)␤:(Attribute $attr, Any $readonly)␤:(Routine $r, Any $rw)␤:(Routine $r, Any $default)␤:(Par…
19:23 jnthn masak: daaligt.
19:23 jnthn Glad it's fixed.
19:23 GlitchMr O_o
19:23 masak GlitchMr: "Nope", not "nope"
19:23 jnthn GlitchMr: Case sensitive.
19:23 GlitchMr rakudo: class Nope { method nope { print 'nope' }}; class Yope is Nope {}; my $yope = Yope.new(); $yope.nope
19:23 p6eval rakudo 091bee: OUTPUT«nope»
19:23 masak jnthn: once again, it shows that lexpads rule everything.
19:24 GlitchMr :)
19:24 jnthn I wonder if we can add a default trait_mod:<is> that's a tad more informative...
19:24 masak GlitchMr: also, Barbara Liskov frowns at you :P
19:24 GlitchMr class Nope { function nope() { print 'nope'; }} class Yope extends Nope {} $yope = new Yope(); $yope->nope();
19:25 GlitchMr It reminds me PHP for some reason...
19:25 masak perhaps because that's where you learned OO? :)
19:25 GlitchMr Maybe...
19:25 GlitchMr That's very posible...
19:25 dalek roast: a72deaf | moritz++ | S12-methods/instance.t:
19:25 dalek roast: test for inner methods, RT #83902
19:25 dalek roast: review: https://github.com/perl6/roast/commit/a72deaf07f
19:25 GlitchMr possible...
19:25 jnthn It kinda reminds me of Java and C# and C++ too... ;)
19:25 masak GlitchMr: be sure to check out roles. they're much better than anything OO-based in PHP.
19:26 GlitchMr class ClassName;
19:26 sjohnson ( `ー´)
19:26 GlitchMr ... this in PHP would make empty class...
19:26 jnthn GlitchMr: In Perl 6 it means that rest of the file makes up the body of that class.
19:27 GlitchMr Makes sense...
19:27 masak sjohnson: hello, cute doggie face!
19:27 sjohnson heheh
19:27 moritz nom: class Class { }; say Class.new
19:27 p6eval nom 091bee: OUTPUT«Class<95918824>␤»
19:27 GlitchMr Oh wait... class ClassName; makes syntax error in PHP...
19:27 GlitchMr I find it weird... it other block instructions, it makes empty instruction...
19:28 moritz std: Class
19:28 p6eval std 8b331d2: OUTPUT«ok 00:01 118m␤»
19:28 GlitchMr Whatever...
19:28 moritz so, Class exists?
19:28 GlitchMr niecza: class Class { }; say Class.new
19:28 moritz or not?
19:28 p6eval niecza v10-18-g5be99bf: OUTPUT«Class.new(...)␤»
19:28 sorear hello, GlitchMr.
19:28 GlitchMr sorear, hi
19:28 sorear moritz: fossil I'm sure
19:28 jnthn moritz: It doesn't.
19:29 sivoais joined #perl6
19:29 flussence std: Whatever, ...
19:29 p6eval std 8b331d2: OUTPUT«Potential difficulties:â�¤  Comma found before apparent series operator; please remove comma (or put parensâ�¤    around the ... listop, or use 'fail' instead of ...) at /tmp/UMWmVvaHYX line 1:â�¤------> [32mWhatever,[33mâ��[31m ...[0mâ�¤ok 00:01 121mâ�¤Â»
19:29 sorear moritz: from way back when class A { } defines A (~~ Class) and A.new ~~ A
19:29 GlitchMr std: print print print print print 2;
19:29 p6eval std 8b331d2: OUTPUT«ok 00:01 119m␤»
19:30 GlitchMr niecza: print print print print print 2;
19:30 p6eval niecza v10-18-g5be99bf: OUTPUT«2Bool::TrueBool::TrueBool::TrueBool::True»
19:30 GlitchMr Makes sense...
19:30 dalek roast: 7dd7383 | moritz++ | S02-names-vars/names.t:
19:30 dalek roast: test that class Class is OK
19:30 dalek roast: review: https://github.com/perl6/roast/commit/7dd7383dbb
19:30 GlitchMr print "\x07" while Bool::True
19:31 GlitchMr niecza: print "\x07" while Bool::True
19:31 p6eval niecza v10-18-g5be99bf: OUTPUT«(timeout)…
19:31 sorear GlitchMr: what exactly are you trying to do?
19:31 GlitchMr niecza: print "\x07" for 1..100
19:31 p6eval niecza v10-18-g5be99bf: OUTPUT«»
19:31 GlitchMr Weird... it caused beep in my IRC client.
19:31 GlitchMr That probably means my IRC client fails...
19:31 mikemol Yeah, caused a beep in mine, too.
19:32 flussence p6eval should probably filter out control chars.
19:32 flussence rakudo: print "\x14AAAAA!"
19:32 p6eval rakudo 091bee: OUTPUT«===SORRY!===␤Invalid character for UTF-8 encoding␤␤»
19:32 moritz nom: say NaN == NaN
19:32 p6eval nom 091bee: OUTPUT«Bool::False␤»
19:32 moritz nom: say NaN === NaN
19:32 flussence niecza: print "\x14AAAAA!"
19:32 p6eval nom 091bee: OUTPUT«Bool::False␤»
19:32 p6eval niecza v10-18-g5be99bf: OUTPUT«ꪪ!»
19:32 GlitchMr <moritz> nom: say NaN == NaN
19:32 GlitchMr <p6eval> nom 091bee: OUTPUT«Bool::False␤»
19:32 flussence whoops
19:32 flussence rakudo: print "\x[14]AAAAA!"
19:32 GlitchMr It reminds me JavaScript for some reason...
19:32 p6eval rakudo 091bee: OUTPUT«AAAAA!»
19:32 moritz nom: s[]
19:32 p6eval nom 091bee: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter (must be quoted to match literally) at line 1, near ""␤»
19:32 sorear why are you (ab)using p6eval for this?
19:33 GlitchMr On my PC running that infinite beep loop code causes cmd.exe to freeze...
19:34 moritz nom: say (1, 2) >>[+]<< (10, 10)
19:34 GlitchMr That's probably bug in Micosoft code...
19:34 p6eval nom 091bee: OUTPUT«11 12␤»
19:34 flussence ah, the good old DOS DOS...
19:34 GlitchMr nom: ('h', 'e', 'l', 'l', 'o' Z=> 'w', 'o', 'r', 'l', 'd').perl
19:34 p6eval nom 091bee:  ( no output )
19:34 GlitchMr nom: print ('h', 'e', 'l', 'l', 'o' Z=> 'w', 'o', 'r', 'l', 'd').perl
19:34 p6eval nom 091bee: OUTPUT«("h" => "w", "e" => "o", "l" => "r", "l" => "l", "o" => "d").list»
19:34 GlitchMr Right...
19:35 * sorear wonders if ey should set an /ignore on GlitchMr and p6eval
19:35 GlitchMr nom: #!/usr/bin/perl
19:35 p6eval nom 091bee:  ( no output )
19:35 soh_cah_toa joined #perl6
19:36 sorear hello soh_cah_toa
19:36 soh_cah_toa sorear: hey
19:36 dalek roast: 5e3afdd | moritz++ | S03-metaops/hyper.t:
19:36 dalek roast: test for >>[+]<<, RT #83510
19:36 dalek roast: review: https://github.com/perl6/roast/commit/5e3afdd74a
19:37 flussence rakudo: say ord("\c[BENZENE RING]") # ooc, is there a way to do the inverse of this?
19:37 p6eval rakudo 091bee: OUTPUT«9004␤»
19:37 sivoais joined #perl6
19:37 GlitchMr nom: die "Because Perl 5"
19:37 p6eval nom 091bee: OUTPUT«Because Perl 5␤  in sub die at src/gen/CORE.setting:416␤  in block <anon> at /tmp/ALXEMq1BXi:1␤  in <anon> at /tmp/ALXEMq1BXi:1␤␤»
19:39 pmurias joined #perl6
19:39 sorear flussence: I guess something like charnames::viacode(9004)
19:39 sorear o/ pmurias
19:40 moritz nom: *.&say
19:40 p6eval nom 091bee:  ( no output )
19:40 moritz nom: say *.&say.WHAT
19:40 p6eval nom 091bee: OUTPUT«WhateverCode()␤»
19:42 [Coke] tadzik++
19:43 dalek roast: 924663b | moritz++ | S02-types/whatever.t:
19:43 dalek roast: *.&foo currying, RT #81448
19:43 dalek roast: review: https://github.com/perl6/roast/commit/924663b89a
19:45 pmurias sorear: hi
19:46 pmurias sorear: how well does niecza support .net on windows?
19:47 sorear pmurias: I hear it works, and I've been trying not to break it.  I can't help with specific problems; diakopter is my main contact
19:47 pmurias i'm currently using Win32::GUI and perl5 :( for an app that has to run on windows an was wondering if niecza would be a better choice ;)
19:48 sorear Maybe, if you know how to do .net GUI stuff and don't mind installing .net on client machines
19:49 pmurias isn't .net bundle with windows nowdays?
19:49 pmurias * bundled
19:50 sorear pmurias: No clue.
19:50 sorear I haven't actually developed on Windows since Win98
19:51 pmurias but propably just using Win32::GUI and getting it over with ASAP would be best
19:51 sjohnson sorear: can you talk small bit about why you chose C# for niecza?
19:52 sorear sjohnson: yes
19:53 masak nom: class A { method foo { my $a = 42; class B { method bar { say $a } } } }; A.new.foo; B.new.bar
19:53 p6eval nom 091bee: OUTPUT«Could not find sub &B␤  in block <anon> at /tmp/JGv3SmCXFi:1␤  in <anon> at /tmp/JGv3SmCXFi:1␤␤»
19:53 sjohnson sorear: please do :)
19:53 moritz rakudo: my @a = <a b c>; @a[0 ..^ *-1] >>~=>> "\n"; say @a.perl
19:53 masak nom: class A { method foo { my $a = 42; class B { method bar { say $a } } } }; A.new.foo; A::B.new.bar
19:53 p6eval rakudo 091bee: OUTPUT«Array.new("a\n", "b\n", "c")␤»
19:53 p6eval nom 091bee: OUTPUT«42␤»
19:53 masak \o/
19:53 masak nom: class A { method foo { my $a = 42; class B { method bar { say $a } } } }; A::B.new.bar
19:53 p6eval nom 091bee: OUTPUT«Any()␤»
19:53 masak \o/
19:53 sorear sjohnson: 1. diakopter used it in sprixel, which was where niecza was born 2. I've decided I really like the language
19:54 sjohnson thanks
19:54 sjohnson so it's not a failed attempt by MS to do something good?
19:54 masak in which sense was niecza born at sprixel?
19:54 sjohnson (the language)
19:54 flussence imo it's more like a failed attempt by them to do something evil :)
19:55 arnsholt sjohnson: I usually describe C# as Java, just better
19:55 sorear sjohnson: don't forget, GHC is primarily funded by Microsoft
19:55 arnsholt It has lambdas, for crying out loud =D
19:56 sorear sjohnson: diakopter said C# was created outside Microsoft initially.  They bought it because it's so good.
19:56 sjohnson hmm, i had a hard time googling for GHC.  what is that?
19:56 yath glasgow haskell compiler
19:56 sjohnson interesting
19:56 dual joined #perl6
19:56 sorear sjohnson: C# was influenced a great deal by Java but it was designed with much more emphasis on being compatible with C++ codebases
19:56 sjohnson sorear: and C# compiles on non-Windows OS's?
19:56 sorear yes
19:57 sjohnson interesting
19:57 sjohnson i had no idea
19:57 sorear there are a handful of non-Microsoft C# compilers
19:57 sjohnson maybe i should give it a shot
19:57 masak sjohnson: you most definitely should.
19:57 masak sjohnson: a lot of nice things are happening around C# right now.
19:57 masak and the CLR.
19:58 sjohnson i just assumed it was some crap language like MS Visual Basic
19:58 sjohnson i'm glad i asked
19:59 sorear masak: the details are fuzzy, but I started to work on diakopter's "convert STD to CIL" project for a couple weeks and then we discovered that we had massively different project visions, so I split my code off and gave it a new name
19:59 diakopter sorear: actually I said the .net vm/cil was developed outside
19:59 pyrimidine left #perl6
19:59 diakopter I'm certain C# itself was an MS thing
19:59 sorear diakopter: oh, so the acquired product was C/CLI and C# came later?  very interesting
20:00 sorear sjohnson: heh, I thought the same thing, diakopter++ for pressuring me to actually give it a try
20:00 diakopter I'm sure the development of C# had tons of influence over the first *release* of .Net, but from what I've read, the actual VM had its early stages in research and an outside company that was acquired
20:02 diakopter in other words I bet C# influenced the first *release* of the CIL spec
20:02 masak sounds probably.
20:02 masak probable*
20:02 sorear the most problematic thing with the CLR as a development platform is that, due to the metadata-loading requirement, it has non-insignificant fixed overhead
20:03 mberends joined #perl6
20:04 sorear the second most problematic thing I've found is that you don't have complete control over memory layout and the ability to hook arbitrarily into the GC
20:05 diakopter forking/bundling mono could solve that, but would create lots of other problems :)
20:06 sorear IME Mono's fixed overhead, while significant, is much less than the Sun JVM's
20:06 pmurias fixed overhead = ?
20:06 sorear a Mono hello world can start from a cold cache on my 8 year old computer in less than a second
20:07 moritz and how long does Perl 5 need? :-)
20:07 diakopter :)
20:07 diakopter it'd be hard to get a computer in a state where Perl hasn't been run
20:07 diakopter well, maybe not
20:08 moritz diakopter: you can have multiple perls
20:08 diakopter oh yeah
20:08 benabik diakopter: You can force the Linux kernel to drop its caches.
20:08 dalek roast: 104edee | moritz++ | S02-types/array.t:
20:08 dalek roast: test array indexing with 0..^*-1, RT RT #79270
20:08 dalek roast: review: https://github.com/perl6/roast/commit/104edeeef9
20:08 sorear there's another problem that shows up with very large applications
20:09 sorear niecza has about 5MB of assemblies (I want to find ways to reduce the source/binary expansion factor here)
20:09 sorear the time required to parse the metadata for STD.dll et al accounts for a substantial fraction of niecza's startup slowness
20:10 moritz rakudo: my $pair = "OH HAI" => 42; say $pair.Capture.perl
20:10 p6eval rakudo ebd4d8: OUTPUT«key       OH HAI value    42␤»
20:10 diakopter sorear: have you experimented with the JIT flags? in perlesque I saw a dramatic speedup by telling mono not to optimize certain things
20:11 sorear diakopter: I try to measure niecza after AOTing.
20:13 diakopter oh
20:14 pmurias sorear: would having a persistent niecza compiler help things?
20:15 pmurias sorear: it still will hurt development there
20:15 pmurias s/there//
20:19 sorear That is unacceptable.
20:19 diakopter what's unacceptable?
20:20 sorear diakopter: a single persistant niecza daemon
20:32 ingy p6 has demons!
20:34 pmurias sorear: why is that unacceptable?
20:34 benabik Hm.  Scala has a huge startup load, and that's exactly how they manage it.  Use fsc instead of scalar and it starts a resident version of the compiler.
20:34 benabik *scalac, not scalar
20:35 dalek rakudo/optimizer: 56be5f9 | jnthn++ | src/binder/bind.c:
20:35 dalek rakudo/optimizer: Fix a couple of oversights in compile-time bind analysis.
20:35 dalek rakudo/optimizer: review: https://github.com/rakudo/rakudo/commit/56be5f9f70
20:35 [Coke] Anyone here near Albany, NY?
20:36 benabik [Coke]: same state, which is closer than some.  ;-)
20:36 * [Coke] offers a beer to anyone who makes it out this way.
20:36 * benabik makes a note to get free beer next time he visits his brother-in-law.  ;-)
20:37 vlixes joined #perl6
20:37 flussence I think mod_perl/mod_php have prior art over scala there :)
20:38 sorear same country, which is closer than some. :-)
20:39 jnthn Same hemisphere... :)
20:39 bbkr joined #perl6
20:41 * [Coke] does wish there was an active enough perl community in this part of NYS to bring jnthn over for a chat (and a beer)
20:41 benabik [Coke]: +1
20:41 * [Coke] will try to make it down to NYC the next time something happens there.
20:41 sorear almost all (in the Lebesgue sense) pairs of points on Earth share a hemisphere.
20:42 sorear and I don't think we have any Perl hackers in space yet.
20:42 sjohnson @karma
20:46 pmurias sorear: why does print eval("4",:lang<perl5>); attempt to call gist?
20:48 sorear pmurias: it's calling gist on the return value of print
20:48 sorear actual answer: a bug
20:48 sorear print ~eval for now
20:50 mberends one-liner: mono run/Niecza.exe -e 'CLR::("System.Windows.Forms.MessageBox,Syste​m.Windows.Forms,Version=2.0.0.0,Culture=neutr​al,PublicKeyToken=b77a5c561934e089").Show("Oh Hai!")'
20:57 diakopter niecza: CLR::("System.Windows.Forms.MessageBox,System​.Windows.Forms,Version=2.0.0.0,Culture=neutra​l,PublicKeyToken=b77a5c561934e089").Show("Oh Hai!")
20:57 p6eval niecza v10-18-g5be99bf: OUTPUT«␤Unhandled Exception: CLR objects may not be used directly in safe mode␤  at /tmp/wl41_ilwlO line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2115 (CORE C1022_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2116 (CORE mo…
20:57 diakopter nice
21:09 diakopter hunh; I disagree with the explanation of the example at http://en.wikipedia.org/wiki/​Common_knowledge_%28logic%29
21:09 hanekomu rakudo: say $_ for 1..3
21:09 p6eval rakudo ebd4d8: OUTPUT«1␤2␤3␤»
21:09 hanekomu rakudo: say for 1..3
21:09 p6eval rakudo ebd4d8: OUTPUT«␤␤␤»
21:10 hanekomu hm
21:10 diakopter rakudo: .say for 1..3
21:10 p6eval rakudo ebd4d8: OUTPUT«1␤2␤3␤»
21:10 hanekomu ah :)
21:11 diakopter specifically, for k >= 3, I'll insist that the blue-eyed fact *is* common knowledge
21:12 diakopter (before the outsider announces it)
21:13 masak diakopter: I've heard the example stated in a couple of forms, sometimes with bell tolls and cheating husbands etc. it's fine for a logic exercise, but it feels very unlike how people act in real life. reality is too fuzzy for people to act like first-order logic computers.
21:13 masak but maybe that isn't your complaint.
21:15 masak hanekomu: bare 'say' should be disallowed in Rakudo. it's a known bug that it isn't.
21:15 masak std: say for 1..3
21:15 p6eval std 8b331d2: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/q_m2tAemSc line 1:�------> [32msay[33m�[31m for 1..3[0m�Check failed�FAILED 00:01 121m�»
21:15 hanekomu what's std? yet another compiler?
21:16 masak hanekomu: it's a reference parser.
21:16 masak it mainly gives informative error messages. doesn't run code.
21:16 hanekomu ah
21:17 masak hanekomu: moritz thinks it's a bit unfair to block a perfectly good Perl 6 use case ('say' printing an empty line) just because Perl 5 people may get it wrong.
21:17 masak TimToady insists on it though, mainly by not saying anything back ;)
21:18 diakopter masak: no; that's not my complaint. I'm simply arguing that if k >= 3, everyone on the island (from the beginning of "time" on the island) knows that everyone else knows there is at least one blue-eyed person on the island, and that's sufficient for it to be common knowledge
21:19 masak diakopter: oh, I think I see what you mean.
21:19 diakopter so, on the k-th day from the beginning of "time", all the blue-eyed people know the color of their own eyes, and leave
21:20 masak yeah.
21:20 diakopter it helps to presume/understand that the situation as presented is in an unreachable state if there was no beginning of time (they've been there infinite time already)
21:21 sivoais joined #perl6
21:22 masak one would think infinitely old beings would be more tolerant towards blue-eyes.
21:24 diakopter the xkcd edition http://xkcd.com/blue_eyes.html implies they're infinitely old beings; heh
21:41 shinobicl left #perl6
21:42 cognominal problem with that common knowledge logic is that the crowd knowledge is screwed if there is one single guy that does not know shit about logic. Too bad knowledge about logic is harldy common.
21:44 erb joined #perl6
21:44 masak hi Fuad!
21:45 Fuad joined #perl6
21:45 Fuad masak: hello bro!
21:46 cognominal Jean Yves Girard, the guy who designed System F have very harsh words about all these junk logics.
21:47 cognominal *has
21:47 masak 'night, #perl6
21:49 supernovus joined #perl6
21:50 cognominal the double negation "not knowing no shit" is tastier when talking about logic.
21:57 colomon mberends++ # one-liner
21:58 colomon diakopter: I'm with you.  No one ever has been able to convince me that stating something everyone already knows is true should have any effect at all....
21:59 diakopter colomon: to put it more precisely, for the puzzle to retain sanity, it has to say that the outsider makes the announcement at the beginning of "time" on the island
22:02 diakopter ... and it must not actually give numbers for how many people have blue eyes.
22:14 * [Coke] tries to run niecza on windows 7.
22:16 [Coke] (apparently no one does this using the makefile. woof.)
22:17 diakopter well, it requires cygwin
22:17 * diakopter does it
22:17 diakopter requires cygwin to build
22:17 dalek ecosystem: d1c546e | (Timothy Totten)++ | META.list:
22:17 dalek ecosystem: Added HTTP::Status and HTTP::Client to the list.
22:17 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/d1c546e553
22:19 [Coke] diakopter: I don't think there's anything in here that /should/ require cygwin.
22:19 pmurias diakopter: what is cygwin required for?
22:20 diakopter rm -rf
22:20 [Coke] gmake.
22:20 diakopter touch
22:21 [Coke] If sorear doesn't mind depending on a perl5, those are both fixable.
22:21 diakopter make test needs perl5, so I wouldn't think he would mind
22:21 * [Coke] will head down that path, at least for my own enjoyment.
22:21 diakopter wget is also needed, but there are of course non-cygwin builds of that
22:22 * diakopter tries a .Net build from cygwin
22:22 diakopter failed
22:23 sorear [Coke]: I only consider the binaries (which don't have a Makefile at all) supported on Windows
22:24 diakopter https://github.com/sorear/niecza/issues/61
22:24 diakopter oh
22:24 [Coke] sorear: I can't get at the binaries without the makefile.
22:24 diakopter that's a good point
22:25 [Coke] I mean, I /can/, sure, but I'd have to poke around. I'd like to just type "nmake"
22:25 [Coke] sorear: and I'll be happy to get things working on windows and provide support on that part.
22:25 * diakopter too
22:25 [Coke] (working sans cygwin)
22:26 tadzik supernovus++ # nice modules
22:26 diakopter [Coke]: see the url I pasted above, for the .Net build
22:27 [Coke] k.
22:27 sorear diakopter: that is a weird fail.
22:28 sorear [Coke]: the binaries are on the github 'Downloads' page.  However if you can find a non-awful way to make the Makefile portable, that would be even better.
22:30 [Coke] sorear: starting with a win32 specific version.
22:30 [Coke] Then we can figure out if/how to combine them (or just generate the right choices at a (not yet extant) config time)
22:30 [Coke] oh, look, I have a c# compiler. whee!
22:31 pmurias [Coke]: you'll replace the Makefile with C#?
22:33 sorear [Coke]: do you have the .net devtools in PATH by default?
22:40 [Coke] sorear: yes.
22:40 [Coke] pmurias: no
22:40 [Coke] but If I have a C# compiler, I can try the build.
22:41 [Coke] makefile line 62: can you translate that rule to english for me? I am not familiar with patsubst.
22:41 bbkr joined #perl6
22:41 diakopter [Coke]: all you have to do is change RUN_CLR to blank and CSC to csc
22:42 diakopter Makefile line 62 is empty
22:42 [Coke] diakopter: except that the makefile DOES NOT WORK, yes. ;)
22:42 [Coke] whoops, line 27
22:42 diakopter no, I mean to build using .Net in cygwin
22:42 sorear diakopter: [Coke] appears to be using nmake
22:42 [Coke] I have said this already, but:
22:42 [Coke] I am not using cygwin.
22:43 sorear [Coke]: that's a schema for producing one rule for each niecza source module
22:43 diakopter actually you haven't said that explicitly
22:43 [Coke] diakopter: ok, now I have, and we can move on. ;)
22:44 diakopter is there a way to remove the dependency on wget and unzip using Perl?
22:44 [Coke] so you end up with a rule for boot/obj/CClass.nam : depends on src/CClass.pm6 ?
22:44 [Coke] diakopter: sure, if you don't mind install modules.
22:45 [Coke] *installing
22:45 sorear [Coke]: yes
22:45 flussence well if you've got cpan, you have most of those modules already :)
22:45 diakopter I thought LWP and the compression ones were bundled with perl for many years
22:45 sorear [Coke]: but see also the list of cross-dependencies at the end
22:45 sorear diakopter: install Module::CoreList
22:45 [Coke] sorear: hurm. Then I think instead of creating a Makefile.win32, I'll autogen one. Danke.
22:46 flussence (I don't think it has a zip module though, probably only bz/gz)
22:47 sorear IO::Compress::Gzip was cored in 5.9.4
22:47 sorear LWP::Simple is not in core
22:47 flussence also I dunno if anyone's mentioned it yet, but the test turned on in niecza 5be99bf is really broken for me
22:48 sorear diakopter: perl 5 sounds like "let's trade one big dependency for a different one"
22:48 flussence or some other one...
22:48 flussence hm, works when I run it manually...
22:48 [Coke] flussence:  define "really broken"
22:48 diakopter sorear: I agree
22:48 flussence infinite loop, printing out fail lines
22:48 supernovus tadzik: thanks, one day I'd like to get SSL support into HTTP::Client and then the need for using wget in scripts will be gone.
22:48 soh_cah_toa perl6: class Foo { ... }; class Bar { also is Foo }; say 'foobar'
22:48 [Coke] sorear: you mean, trade cygwin for perl5?
22:48 p6eval rakudo ebd4d8: OUTPUT«===SORRY!===␤also not yet implemented at line 1, near "}; say 'fo"␤»
22:48 p6eval ..pugs:  ( no output )
22:48 p6eval ..niecza v10-18-g5be99bf: OUTPUT«foobar␤»
22:49 diakopter I think requiring cygwin/wget/unzip for builds on Windows is fine
22:49 flussence I'm running a spectest on it now just to make sure...
22:49 [Coke] flussence: are you sure your spec dir is up to date?
22:49 flussence oh. probably not :)
22:49 [Coke] because I fudged the test that goes into an infinite loop.
22:49 soh_cah_toa perl6: class Foo { ... }; class Bar { is Foo }; say 'foobar'
22:49 p6eval niecza v10-18-g5be99bf: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤     'is' used at line 1â�¤â�¤Package was stubbed but not defined at /tmp/7jdVh9MaGM line 1:â�¤------> [32mclass Foo { ... }[33mâ��[31m; class Bar { is Foo }; say 'foobar'[0mâ�¤â�¤â�¤Unhandled Exception: Check failedâ�¤â�¤â€¦
22:49 p6eval ..rakudo ebd4d8: OUTPUT«===SORRY!===␤The following packages were stubbed but not defined:␤    Foo␤␤»
22:49 p6eval ..pugs:  ( no output )
22:49 pmurias replacing cygwin with perl5 for windows seems sensible
22:50 flussence yeah, that's probably it, my local spectest repo gets slightly out of sync at times
22:50 diakopter pmurias: yeah but as sorear pointed out, it's perl5 plus Compress plus LWP
22:51 pmurias replacing cygwin by .net stuff seems the best option
22:51 diakopter oh hm; I hadn't thought of that.
22:51 soh_cah_toa perl6: role Foo { ... }; class Bar { also does Foo }; say 'foobar'
22:51 p6eval niecza v10-18-g5be99bf: OUTPUT«[31m===[0mSORRY![31m===[0m��Action method trait_mod:does not yet implemented at /tmp/vp_E38xRLI line 1:�------> [32m Foo { ... }; class Bar { also does Foo [33m�[31m}; say 'foobar'[0m���Unhandled Exception: Cannot use hash access on an object of ty…
22:51 p6eval ..rakudo ebd4d8: OUTPUT«===SORRY!===␤also not yet implemented at line 1, near "}; say 'fo"␤»
22:51 p6eval ..pugs:  ( no output )
22:52 diakopter an .exe would be needed in the source checkout that could supply wget/unzip functionality
22:53 sorear perl 5.8 contains Net::FTP
22:55 [Coke] (.net stuff) no, because why support 2 completely different toolchains?
22:55 diakopter [Coke]: we meant CLR stuff.
22:56 [Coke] for use in the build process?
22:56 diakopter yeah, as another option instead of Perl
22:56 [Coke] eh. if someone wants to figure that out, fine.
22:57 [Coke] Any takers?
22:58 * [Coke] tables his work in anticipation.
22:58 diakopter :) not I... I guess requiring perl/wget/unzip is better than requiring cygwin/perl/wget/unzip or perl/LWP/Compress
23:00 [Coke] well, you've talked me out of doing anything about it. I'll play with rakudo tonight instead.
23:01 whiteknight joined #perl6
23:02 * sorear is not fond of build systems
23:02 [Coke] in that "you don't want one", or "you don't want to have to create/maintain one" ?
23:03 sorear the latter :)
23:04 [Coke] k.
23:05 jlaire .u ə̂
23:05 phenny U+0259 LATIN SMALL LETTER SCHWA (ə)
23:05 phenny U+0302 COMBINING CIRCUMFLEX ACCENT (◌̂)
23:06 jlaire tyvm
23:09 * diakopter wonders where jnthn is tonight
23:09 sorear .u ab
23:09 phenny U+C555 HANGUL SYLLABLE AB (압)
23:10 [Coke] phenny, tell jnthn: I need some guidance on RT67364 - it refers to a 2 year old irc log, says there are examples, I don't see any. You are namedropped.
23:10 phenny [Coke]: I'll pass that on when jnthn is around.
23:11 [Coke] perl6: Inf.int.say
23:11 p6eval niecza v10-18-g5be99bf: OUTPUT«␤Unhandled Exception: Unable to resolve method int in class Num␤  at /tmp/rW0b7USgcY line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2115 (CORE C1022_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2116 (CORE module-COR…
23:11 p6eval ..pugs: OUTPUT«1797693134862315907729305190789024733617​97697894230657273430081157732675805500963132708​47732240753602112011387987139335765878976881441​66224928474306394741243777678934248654852763022​19601246094119453082952085005768838150682342462​8814739131105408272371633505106845862982399472…
23:11 p6eval ..rakudo ebd4d8: OUTPUT«Method 'int' not found for invocant of class 'Num'␤  in block <anon> at /tmp/1I2vGY217g:1␤  in <anon> at /tmp/1I2vGY217g:1␤␤»
23:11 diakopter heh
23:12 [Coke] perl6: say 34.Int;
23:12 p6eval rakudo ebd4d8, niecza v10-18-g5be99bf: OUTPUT«34␤»
23:12 p6eval ..pugs: OUTPUT«*** No such method in class Int: "&Int"␤    at /tmp/kdja7H6IYe line 1, column 5-11␤»
23:12 jlaire pugs: Inf.int.chars.say
23:12 p6eval pugs: OUTPUT«309␤»
23:12 [Coke] perl6: say Inf.Int;
23:12 p6eval niecza v10-18-g5be99bf: OUTPUT«1797693134862315907729305190789024733​61797697894230657273430081157732675805500963​13270847732240753602112011387987139335765878​97688144166224928474306394741243777678934248​65485276302219601246094119453082952085005768​8381506823424628814739131105408272371633505…
23:12 p6eval ..pugs: OUTPUT«*** No such method in class Num: "&Int"␤    at /tmp/MueMO4TytJ line 1, column 5-12␤»
23:12 p6eval ..rakudo ebd4d8: OUTPUT«-9223372036854775808␤»
23:13 diakopter rakudo wow
23:13 jlaire pugs and niecza almost agree
23:13 [Coke] rakudo: say NaN.int
23:13 p6eval rakudo ebd4d8: OUTPUT«Method 'int' not found for invocant of class 'Num'␤  in block <anon> at /tmp/JyxSMR_pcS:1␤  in <anon> at /tmp/JyxSMR_pcS:1␤␤»
23:13 [Coke] rakudo: say NaN.Int
23:13 p6eval rakudo ebd4d8: OUTPUT«-9223372036854775808␤»
23:15 dalek book: 3c32c3d | soh_cah_toa++ | src/roles.pod:
23:15 dalek book: Fixed example on roles that did not use the 'also' declaractor. Also added an example of using the 'also' declarator with an anonymous class.
23:15 dalek book: review: https://github.com/perl6/book/commit/3c32c3d607
23:24 Exodist joined #perl6
23:26 _jaldhar joined #perl6
23:27 [Coke] rakudoVolken: do we have a policy on bug reports from non-standard platforms from 2+ years ago when the OP doesn't respond?
23:28 [Coke] (my thought: reject the ticket as can't reproduce, ask the user to get back to us if it still happens.)
23:28 diakopter what platform? (curious!)
23:29 dual_ joined #perl6
23:29 [Coke] openbsd.
23:29 [Coke] There are no smokes for rakudo from that platform.
23:31 soh_cah_toa defining a DESTROY submethod for an object creates a "destructor" which means that it will be called when the object seizes to exist, right? which at the very least, is at program termination
23:31 [Coke] "ceases"
23:31 soh_cah_toa lol, yes
23:31 [Coke] though I like the cut of your malaprop.
23:32 soh_cah_toa :)
23:32 sorear soh_cah_toa: whether finalizers are run on exit is implementation defined.
23:32 soh_cah_toa what?! lame...
23:33 tadzik :)
23:33 [Coke] diakopter: you have cygwin; have you done rakudo on cygwin lately?
23:33 soh_cah_toa what would something like that be implementation-specific? isn't that standard practice?
23:33 diakopter no, but I'd be glad to if you like
23:33 soh_cah_toa s/what/why/
23:34 [Coke] If you can take RT#64032, I'd appreciate it.
23:34 diakopter hm, I don't even know how to get to RT
23:36 soh_cah_toa is there anyway i can get that kind of behavior atleast? i want a method that is guaranteed to be called at least at program termination
23:36 soh_cah_toa b/c defining a DESTROY submethod doesn't seem to work on 2011.07
23:36 tadzik . o O ( Native::atexit )
23:37 tadzik night.good
23:37 * diakopter finds https://rt.perl.org/rt3/Publ​ic/Bug/Display.html?id=64032
23:38 [Coke] Yes, that one. Thanks in advance.
23:39 * diakopter clones git://github.com/rakudo/rakudo.git
23:39 huf joined #perl6
23:39 diakopter I've cloned it. now what.
23:40 tokuhiro_ joined #perl6
23:42 * diakopter installs from cygwin: libicu-devel, libicu38, libicu45, libicu48
23:42 [Coke] perl Configure.pl --gen-parrot will pull in dependencies and configure rakudo.
23:42 [Coke] then "make"
23:43 diakopter I can try from strawberry/mingw too, or is that what you use?
23:43 [Coke] RT question: search on "updated < '2011-05-01' does not actually restrict the results to tickets updated before then. Any pointers?
23:44 [Coke] the OP specifically had issues with cygwin. I use strawberry every few months, seems ok.
23:44 dalek niecza/serialize: 0a6c198 | sorear++ | lib/ (3 files):
23:44 dalek niecza/serialize: Implement runtime MRO generation
23:44 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/0a6c198ab7
23:44 soh_cah_toa joined #perl6
23:45 sorear soh_cah_toa: standard practice is actually the opposite - finalizers are NOT run on program termination.  Why do you want this?
23:45 * diakopter installs git for cygwin (was using TortoiseGit)
23:45 soh_cah_toa i'm building a Test::Builder module. i want the final report to be displaying at the end but don't want the user to have to do $tb.final_report
23:45 sorear soh_cah_toa: typical usage of a finalizer is to free an OS resource like a file descriptor, and if the program is going to exit anyway, closing file descriptors is wasted effort
23:46 sorear soh_cah_toa: that's a job for an END block
23:46 sorear rakudo: END { say 5 } # I wonder
23:46 p6eval rakudo ebd4d8: OUTPUT«5␤»
23:46 sorear on exit, END blocks in all modules are run.
23:46 soh_cah_toa it's object-oriented though so where would i put that in the class?
23:47 sorear you put that in the module.  somewhere.
23:47 soh_cah_toa but then it's not possible to refer to specific instance
23:47 sorear sure it is, keep specific instances in variables
23:47 [Coke] cognominal: ping.
23:48 [Coke] phenny: ask cognominal to update RT#75850 with the expected output.
23:48 phenny [Coke]: I'll pass that on when cognominal is around.
23:48 sorear niecza/serialize can now compile my class Mu { 0 }; my class Any is Mu { 1 }; my class Cool { 2 } correctly
23:49 diakopter parrot clone is 90 MiB; wow.
23:49 flussence `du` on rakudo/parrot here is 203MB :(
23:51 soh_cah_toa sorear: http://nopaste.snit.ch/83340
23:51 diakopter size on disk of C:\Program Files (x86)\Mono-2.10.3 is 405 MB
23:51 soh_cah_toa sorear: how would i modify that to use and END block, then?
23:52 [Coke] diakopter: it's 10 years of version control: CVS -> svn -> git
23:54 diakopter [Coke]: parrot failed to build
23:54 soh_cah_toa sorear: on the Foo::Bar module side, that is
23:55 benabik [Coke]: I bet the history is a small part of it.  Git uses delta compression and zlib, it makes repos amazingly small.  :-D
23:55 diakopter [Coke]: https://gist.github.com/1255365
23:56 [Coke] diakopter: Guess it's not a rakudo issue, then. I'd appreciate it if you could open a ticket at http://trac.parrot.org/ for that, with the build error and a pointer back to the RT.
23:56 sorear soh_cah_toa: my @testers; submethod BUILD { push @testers, self }; END { .end for @testers }
23:56 soh_cah_toa interesting
23:56 [Coke] nom: my @range_a = 1..*;
23:57 p6eval nom ebd4d8:  ( no output )
23:57 [Coke] nom: my @range_a = 1..*; say "alive";
23:57 p6eval nom ebd4d8: OUTPUT«alive␤»
23:57 [Coke] nom: my @range_a = 1..*; say "alive"; say @range_a
23:57 p6eval nom ebd4d8: OUTPUT«alive␤...␤»
23:57 soh_cah_toa i'd actually like the Test::Builder module to be a singleton but don't know how to do that in p6
23:57 flussence fun anecdote: at work I have a 3GB SVN repo. Using git to clone it, including the entire 5 year history which itself contained several compressed files, came out *smaller*.
23:57 [Coke] nom: my @range_a = 1..*; say "alive"; print @range_a
23:57 p6eval nom ebd4d8: OUTPUT«(timeout)alive␤123456789101112131415161​7181920212223242526272829303132333435363738394​0414243444546474849505152535455565758596061626​3646566676869707172737475767778798081828384858​6878889909192939495969798991001011021031041051​061071081091101111121131141151161171181191201…
23:57 flussence s/SVN repo/SVN checkout/
23:58 [Coke] nom: my @range_a = 1..*; say "alive"; print @range_a[2344];
23:58 p6eval nom ebd4d8: OUTPUT«alive␤2345»
23:58 benabik flussence: That's because SVN stores a pristine copy of every file, wholly uncompressed, in a checkout.
23:58 flussence unfortunately I can't use git for any of the existing projects at $dayjob because they're dumb :(
23:58 sorear soh_cah_toa: just do it the same way the p5 version does.  my $Test; method new { $Test //= callsame }
23:59 diakopter [Coke]: it is very unapparent from trac.parrot.org how to submit a bug report
23:59 soh_cah_toa oh, neat
23:59 benabik Wow.  my parrot/.git is 98MB...
23:59 [Coke] I think you can cheat and send an email to tickets@parrot.org
23:59 [Coke] flussence: I use git-svn at work.

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

Perl 6 | Reference Documentation | Rakudo