»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:01 soh_cah_toa_ joined 00:02 soh_cah_toa left
jnthn ah, almost there with basic only analysis :) 00:06
tadzik :)
jnthn Made a bunch more spectests fail :) 00:07
For the right reason.
Or at least, the ones I looked at do.
diakopter jnthn: do the native operators detect overflow?
jnthn diakopter: No, and iirc they're spec'd as not needing to.
diakopter oh good
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.
diakopter jnthn: are the native operations performed by parrot through pir? or are you creating C functions you're binding from nqp or 6model?
jnthn subs - worth doing but do it carefully.
diakopter: We compile down to the Parrot add opcode
for + 00:10
for example
diakopter oh
jnthn If this was the CLR we'd use it's add op too
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
parrot still has no JIT, right? 00:12
jnthn Right :(
soh_cah_toa_ :( indeed
jnthn The optimizer does little, if anything, Parrot specific though.
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. :)
diakopter (mostly kidding)
jnthn I'm not sure my copious free time currently extends to working on a VM too, sadly. 00:14
It would be kinda fun.
I find most things in the compilers/runtime space fun, though. :)
00:15 stepnem_ is now known as stepnem, tokuhiro_ left
dalek kudo/optimizer: b2d15fa | jnthn++ | src/binder/bind.c:
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
kudo/optimizer: 7d65d53 | jnthn++ | src/Perl6/Actions.pm:
Fix to inline spec generator.
kudo/optimizer: bcb7c05 | jnthn++ | src/binder/bind.c:
First crack at trial binding type analysis. Seems to do the right kind of thing.
kudo/optimizer: 2e5a594 | jnthn++ | src/Perl6/Optimizer.pm:
Small fix to inline handling, plus better error reporting if it hits an internal error.
jnthn > sub foo() { }; foo('lol') 00:17
CHECK FAILED:
Dispatch to 'foo' could never work with the arguments of types (str)
\o/
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:18
diakopter impressive 00:20
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:23
00:24 replore joined
jnthn
.oO( Inlining: best implemented between the hours of midnight and 3am... )
00:24
night o/
diakopter o/
00:25 shinobicl_ joined
tadzik jnthn: this is awesome, jnthn++ 00:25
00:42 whiteknight left 01:09 thou joined 01:18 itz joined
[Coke] jnthn++ 01:30
looks like recent regex work has reclaimed a few more spectests.
[Coke] will push updated list shortly. 01:31
01:32 replore left 01:34 replore joined 01:39 f00li5h joined
dalek ast: 40a7cbb | Coke++ | S (5 files):
rakudo nom fudging
01:41
kudo/nom: 008201f | Coke++ | t/spectest.data:
track failures, run fudged tests.
01:42
01:44 wolfman2000 joined 01:46 araujo joined 02:15 plobsing joined
[Coke] perl6: say Failure() 02:17
p6eval pugs: OUTPUT«*** No such subroutine: "&Failure"␤ at /tmp/M1yOvUQQIz line 1, column 5 - line 2, column 1␤»
..niecza v10-17-g8fdba33: OUTPUT«===SORRY!===␤␤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) ␤…
..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
[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␤»
..niecza v10-17-g8fdba33: OUTPUT«===SORRY!===␤␤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) ␤…
..rakudo 008201: OUTPUT«Bool::False␤»
02:18 frhodes left 02:19 cotto joined 02:22 frhodes joined 02:23 packetknife joined, cotto left
dalek ast: bd0cef4 | Coke++ | S02- (3 files):
niecza fudging.
02:23
ecza: 5be99bf | Coke++ | t/spectest.data:
run a fudged test
02:24
soh_cah_toa_ p6eval: sub foo(Str $a?, Int $b?) { say 'foobar' }; foo("abc"); foo(42)
perl: sub foo(Str $a?, Int $b?) { say 'foobar' }; foo("abc"); foo(42)
agh...
nom: sub foo(Str $a?, Int $b?) { say 'foobar' }; foo("abc"); foo(42)
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␤␤»
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:␤------> sub foo(Str ⏏$a?, Int $b?) { say 'foobar' }; foo("abc␤ $b is declared but not used at /tmp/2oWY1F2iss line 1:␤------> sub foo(Str $a?, Int [3…
benabik soh_cah_toa_: Were you looking for perl6: ?
soh_cah_toa_ ah
perl6: sub foo(Str $a?, Int $b?) { say 'foobar' }; foo("abc"); foo(42)
p6eval pugs: OUTPUT«foobar␤foobar␤»
..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␤␤»
..niecza v10-17-g8fdba33: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/iOWoEUkvua line 1:␤------> sub foo(Str ⏏$a?, Int $b?) { say 'foobar' }; foo("abc␤ $b is declared but not used at /tmp/iOWoEUkvua line 1:␤------> sub foo(Str $a?, Int [3…
soh_cah_toa_ wow, pugs got it right
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
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:27
foo(42) and foo('bar') both try to set $a 02:28
soh_cah_toa_ hm, that's right 02:29
it doesn't re-dispatch though?
i wonder if it's in the spec of pugs just does it by accident 02:30
s/of/or/
colomon I'm pretty sure benabik's correct, and pugs is just confused. 02:33
benabik I think pugs is ignoring the type constraint.
pugs: sub foo(Str $a) { say $a }; foo('bar'); foo(42)
p6eval pugs: OUTPUT«bar␤42␤»
soh_cah_toa_ i guess i can just use a multi method instead w/ a bit more hackery
benabik pugs: sub foo(Int $a) { say $a }; foo('bar'); foo(42) 02:34
p6eval pugs: OUTPUT«bar␤42␤»
02:34 frhodes left
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")␤»
benabik Yeah. 42 might be the string "42", but "bar" is never the int bar.
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␤␤»
colomon pugs: sub foo(Str $a?, Int $b?) { say 'foobar'; say "a: $a"; say "b: $b" }; foo("abc"); foo(42)
p6eval pugs: OUTPUT«foobar␤a: abc␤b: ␤foobar␤a: 42␤b: ␤»
02:36 woosley joined
colomon benabik's got it sussed out correctly. :) 02:40
02:41 uasi joined 02:42 HarryS joined 02:45 cotto joined
soh_cah_toa_ perl6: fail 'foobar' 02:47
p6eval niecza v10-18-g5be99bf: OUTPUT«===SORRY!===␤␤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) ␤…
..rakudo 008201: ( no output )
..pugs: OUTPUT«*** Cannot use this control structure outside a 'routine' structure␤ at /tmp/5TcTFqplsT line 1, column 1 - line 2, column 1␤»
soh_cah_toa_ nom: fail 'foobar' 02:48
p6eval nom 008201: ( no output )
soh_cah_toa_ i knew it wasn't just me
diakopter nom:say fail fail 44 02:49
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 03:02 HarryS left 03:12 packetknife left 03:16 envi joined 03:20 cotto left 03:22 alester left 03:29 cotto joined 03:32 packetknife joined, bluescreen10 left 03:37 xinming joined 03:42 HarryS joined 03:45 soh_cah_toa_ left 03:46 ingy joined 03:53 kaleem joined 03:57 f00li5h left
sorear good * #perl6 03:58
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:08 ingy left, envi left, wolfman2000 left, diakopter left, ggoebel left, benabik left, espadrine left, LoRe left, eiro left, nsh- left, mls_ left, mux left, szbalint left, baest left, awwaiid left, Lorn left, fhelmberger_ left, pmichaud left, kaleem left, lumi_ left, Helios left, cosimo left, pochi left, colomon left, [Coke] left, moritz left, Yappoko___ left, hillu left 04:11 satyavvd joined, kaleem joined, envi joined, colomon joined, wolfman2000 joined, benabik joined, [Coke] joined, espadrine joined, szbalint joined, diakopter joined, sivoais joined, ruoso joined, risou joined, localhost joined, preflex joined, sftp joined, cognominal_ joined, Grimnir_ joined, mikemol joined, jlaire joined, skangas joined, DarthGandalf joined, m6locks joined, szabgab joined, orafu joined, kst` joined, slavik1 joined, Patterner joined, PZt joined, robinsmidsrod joined, ponbiki joined, Sarten-X joined, aloha joined, ashleydev joined, jerome_ joined, japhb joined, pyrimidine joined, imarcusthis joined, zenog joined, BLZbubba joined, bbkr_ joined, lateau_ joined, arnsholt joined, jesk joined, Gothmog_ joined, jrockway joined, domidumont joined, p6eval joined, carlin joined, Maddingue joined, snarkyboojum joined, wooden joined, senobmeht joined, ggoebel joined, baest joined, lumi_ joined, awwaiid joined, Helios joined, cosimo joined, Lorn joined, pmichaud joined, fhelmberger_ joined, pochi joined, mux joined, mls_ joined, nsh- joined, eiro joined, LoRe joined, hillu joined, Yappoko___ joined, moritz joined, renormalist joined, arthur-_ joined, breinbaas joined, apejens joined, yath joined, Grrrr joined, hubbard.freenode.net sets mode: +v p6eval, ingy joined 04:12 thou left 04:13 jaldhar joined 04:14 kaleem left 04:15 satyavvd left, kaleem joined 04:18 lestrrat joined 04:19 jaldhar left, jaldhar joined, satyavvd joined 04:22 sunnavy joined 04:23 frhodes joined 04:32 frhodes left 04:36 frhodes joined 04:38 HarryS left 04:41 uasi left
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␤␤»
benabik nom: fail 42
p6eval nom 008201: ( no output )
benabik Fails only fail when something tries to use them as a value, right?
04:43 _jaldhar joined 04:44 jaldhar left 04:46 uasi joined 04:47 frhodes left 05:05 shinobicl_ left 05:06 shinobicl_ joined, shinobicl_ left 05:14 daniel-s joined, risou is now known as risou_awy, mberends joined, mikemol left, mikemol joined, TiMBuS|Away joined 05:15 TiMBuS|Away is now known as TiMBuS
moritz good morning 05:39
nom: $^n
p6eval nom 008201: ( no output )
moritz nom: $^n; say 'alive' 05:40
p6eval nom 008201: OUTPUT«alive␤»
moritz nom: say lines("a\nb\n").perl 05:41
p6eval nom 008201: OUTPUT«("a", "b").list␤»
05:42 f00li5h joined
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
sorear rakudo: my $a; say $a.WHO 05:44
p6eval rakudo 008201: OUTPUT«().hash␤»
sorear rakudo: my $a; say ~$a.WHO
p6eval rakudo 008201: OUTPUT«␤»
sorear moritz: what were you expecting that to do? 05:45
moritz: and good mornign
moritz sorear: not Null PMC Access'ing :-)
sorear: I have no idea, actually 05:46
std: $^n
p6eval std 8b331d2: OUTPUT«===SORRY!===␤Placeholder variable $^n may not be used outside of a block at /tmp/QJ6c2B3TGl line 1:␤------> <BOL>⏏$^n␤Check failed␤FAILED 00:01 119m␤»
moritz hm, makes sense
dalek ast: b3f8106 | moritz++ | S03-operators/assign.t:
expand tests for RT #93972
05:47
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:57 cotto left
sorear moritz: was it NPAing earlier? 05:59
06:06 mj41 joined
moritz b: $^n 06:06
p6eval b 1b7dd1: ( no output )
moritz sorear: yes, at least a ticket claimed so 06:07
06:09 mberends left
dalek ecza/serialize: 5be99bf | Coke++ | t/spectest.data:
run a fudged test
06:15
ecza/serialize: 94e9968 | sorear++ | / (25 files):
Merge remote branch 'origin/master' into serialize
06:18 packetknife left
sorear wonders why 5be99f was reported separately 06:19
moritz rakudo: my @a = (1); @a ||= (); say @a.perl 06:22
p6eval rakudo 008201: OUTPUT«(timeout)maximum recursion depth exceeded␤»
benabik bwa? 06:23
moritz rt.perl.org/rt3/Ticket/Display.html?id=90158
sorear niecza: my @a = (1); @a ||= (); say @a.perl 06:25
moritz nom: say 10 % i
p6eval niecza v10-18-g5be99bf: OUTPUT«[1].list␤»
nom 008201: OUTPUT«Could not find sub &i␤ in block <anon> at /tmp/l2pLEEweGT:1␤ in <anon> at /tmp/l2pLEEweGT:1␤␤»
moritz nom: say 10 % 1i
p6eval nom 008201: OUTPUT«(timeout)maximum recursion depth exceeded␤»
benabik I wonder what @a is that it's recursing so much. 06:26
I wonder if "maximum recursion depth exceeded" is actually "multi go boom" somehow.
I wonder if I shouldn't have been asleep several hours ago.
benabik wonders.
sorear Hellllo benabik
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.
But I finished my homework. 06:28
sorear pst
benabik sorear: Bah, PST. It's not even midnight out there. 06:29
sorear benabik: Morning classes. 06:31
06:32 aloha left
benabik sorear: My class wasn't until 2, but the assistantship requires me to be there by 7:30. It's exciting. 06:33
06:33 aloha joined 06:34 Grimnir_ left 06:36 koban joined 06:42 uasi left 06:48 alim joined
sorear seleep 06:50
06:53 mj41 left 06:56 cotto joined 07:09 dragonhawk joined
dragonhawk Hi 07:09
moritz hi dragonhawk
dragonhawk How's it
07:09 cotto left 07:10 mj41 joined
dragonhawk This my first time here 07:10
moritz then welcome to the wonderful world of Perl 6 programming 07:11
dragonhawk Do u guys just talk programing
moritz also language design, testing and many related subjects 07:13
dragonhawk R there any just plain chat rooms
moritz I don't know 07:14
mauke #defocus
#haskell-blah
dragonhawk Hay thanks 07:15
That worked
07:16 cotto joined
dalek kudo/nom: 66d0a4a | moritz++ | src/core/ (2 files):
infix % and %% only make sense on Real, not Numeric
07:18
07:20 cotto left 07:24 Trashlord joined 07:39 cotto joined 07:50 alim left 07:57 ram___ joined
moritz arxiv.org/PS_cache/arxiv/pdf/1109/1...6160v1.pdf # another update the the v > c neutrinos 08:00
08:00 daxim joined 08:01 wamba joined, ram___ left
moritz std: class A { method b() { } }; &A::b = sub { } 08:10
p6eval std 8b331d2: OUTPUT«ok 00:01 126m␤»
moritz perl6: class A { method b() { } }; &A::b = sub { }
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…
..rakudo 66d0a4, niecza v10-18-g5be99bf: ( no output )
08:12 dragonhawk left 08:22 rhr left, tty234 left, plobsing left 08:23 flussence joined, s1n1 joined, araujo left, itz left, sorear left 08:27 simcop2387 joined 08:28 koban left, HarryS left, mikemol left, envi left, kst` left, orafu left, szabgab left, DarthGandalf left, skangas left, jlaire left, m6locks left, wamba left, wolfman2000 left, diakopter left, risou_awy left, slavik1 left, zenog left, domidumont left, snarkyboojum left, wooden left, senobmeht left, ggoebel left, daxim left, benabik left, espadrine left, Patterner left, Sarten-X left, ashleydev left, bbkr_ left, jrockway left, LoRe left, eiro left, nsh- left, mls_ left, mux left, szbalint left, sivoais left, sftp left, preflex left, Gothmog_ left 08:29 BLZbubba left, baest left, awwaiid left, Lorn left, fhelmberger_ left, sunnavy left, localhost left, cognominal_ left, robinsmidsrod left, jerome_ left, pyrimidine left, lateau_ left, p6eval left, Maddingue left, pmichaud left, imarcusthis left, arnsholt left, jesk left, carlin left, lumi_ left, Helios left, cosimo left, pochi left, colomon left, [Coke] left, ruoso left, PZt left, ponbiki left, japhb left, Grrrr left, yath left, apejens left, breinbaas left, arthur-_ left, renormalist left, moritz left, Yappoko___ left, hillu left, mj41 left, ranguard left, Tene left, Exodist left, kaleem left, replore left, dukeleto left, cxreg left, Khisanth left, miso2217 left, BinGOs left, cotto left, Trashlord left, TiMBuS left, daniel-s left, buubot_backup left, pothos left, geekosaur left, aloha left, _jaldhar left, lestrrat left, y3llow left, takesako left, Reaganomicon left, Util left, dalek left 08:38 jql joined 08:40 jdhore joined, sftp joined, shachaf joined, alim joined, pnu joined, itz__ joined, huf_ joined, krakan_ joined, tty234_ joined, z-b joined, spacebat_ joined, ribasushi_ joined, ascent__ joined, plobsing_ joined, pjcj_ joined, zostay_ joined, wamba joined, daxim joined, mj41 joined, koban joined, HarryS joined, mikemol joined, sunnavy joined, kaleem joined, saaki joined, jfried joined, ruz joined, TimToady joined, JodaZ_ joined, sbp joined, nsh joined, _sri joined, betterworld joined, Vlavv` joined, ranguard joined, Tene joined, Exodist joined, replore joined, envi joined, colomon joined, wolfman2000 joined, benabik joined, [Coke] joined, espadrine joined, szbalint joined, diakopter joined, sivoais joined, ruoso joined, risou_awy joined, localhost joined, preflex joined, cognominal_ joined, jlaire joined, skangas joined, DarthGandalf joined, m6locks joined, szabgab joined, orafu joined, kst` joined, slavik1 joined, Patterner joined, PZt joined, robinsmidsrod joined, ponbiki joined, Sarten-X joined, ashleydev joined, jerome_ joined, japhb joined, pyrimidine joined, imarcusthis joined, zenog joined, BLZbubba joined, bbkr_ joined, lateau_ joined, arnsholt joined, jesk joined, Gothmog_ joined, jrockway joined, domidumont joined, p6eval joined, carlin joined, Maddingue joined, snarkyboojum joined, wooden joined, senobmeht joined, ggoebel joined, baest joined, lumi_ joined, awwaiid joined, Helios joined, cosimo joined, Lorn joined, pmichaud joined, fhelmberger_ joined, hubbard.freenode.net sets mode: +v p6eval, pochi joined, mux joined, mls_ joined, nsh- joined, eiro joined, LoRe joined, hillu joined, Yappoko___ joined, moritz joined, renormalist joined, arthur-_ joined, breinbaas joined, apejens joined, yath joined, Grrrr joined, jdhore left, jdhore joined
mls_ niecza: { CATCH { default { say "caught"} } ; LEAVE { say "leave" ; die } } 08:40
p6eval niecza v10-18-g5be99bf: OUTPUT«leave␤caught␤»
08:40 sjn joined, tomaw joined, nebuchadnezzar joined, dukeleto joined, cxreg joined, Khisanth joined, miso2217 joined, BinGOs joined, mattp_ joined, phenny joined, daemon joined, BooK joined, bloonix joined, jevin joined, felipe joined, broquaint joined, revdiablo joined, mdxi_ joined, Bucciarati joined, yahooooo joined, literal joined, meraxes joined, rhr_ joined, mauke joined, aloha joined, _jaldhar joined, lestrrat joined, y3llow joined, alvis joined, [particle]1 joined, mtk joined, bacek_at_work joined, aindilis joined, djanatyn joined, yves_ joined, hugme joined, PacoLinux_ joined, Woodi joined, takesako joined, Reaganomicon joined, Util joined, dalek joined, hubbard.freenode.net sets mode: +vv hugme dalek, felher joined, araujo joined, sorear joined, cotto joined, Trashlord joined, TiMBuS joined, daniel-s joined, buubot_backup joined, pothos joined, shinobicl joined, dual joined, geekosaur joined, silug joined, _ilbot joined 08:41 y3llow left
mls_ niecza: { die ; CATCH { default { say "caught"} } ; LEAVE { say "leave" ; die } } 08:41
p6eval niecza v10-18-g5be99bf: OUTPUT«caught␤leave␤caught␤»
08:41 mauke is now known as Guest24058, y3llow joined, araujo left 08:42 araujo joined, araujo left, araujo joined
mls_ niecza++ 08:42
08:42 arthur-_ left
mls_ niecza: { die ; CATCH { die; } ; LEAVE { say "leave" ; die } } 08:42
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
08:43 araujo left
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 felher is now known as Guest73321
jnthn morning, #perl6 08:43
mls_ morning jnthn! 08:44
08:44 woosley left, araujo joined
frettled_ Good moaning! 08:45
08:52 Guest24058 left, mauke_ joined, mauke_ is now known as mauke 08:54 replore left 09:14 mj41 left 09:19 pnu left 09:30 orafu left 09:33 hanekomu joined
hanekomu <- p6 n00b 09:33
just cloned rakudo nom, perl Configure.pl --gen-parrot, make, make test, make spectest and got
t/spec/S05-modifier/ignorecase.rakudo, t/spec/S06-signature/slurpy-params.rakudo, t/spec/S19-command-line/dash-e.rakudo failed
all others ok 09:34
is that expected?
09:34 mj41 joined 09:35 Khisanth left 09:36 orafu joined, Khisanth joined
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:36
09:38 ab5tract joined
hanekomu hm 09:41
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
looking forward to talking to you in Vienna
moritz hanekomu: which operating system are you using? 09:43
hanekomu os x 10.6.8
09:44 ab5tract left
moritz hanekomu: if you run ./perl6 t/spec/S19-command-line/dash-e.rakudo what do you get as output? 09:44
hanekomu hm 09:45
no ICU lib loaded
ah
i thought it would complain if there was no icu
moritz well know, we allow to build rakudo without icu
though I'm not sure if that's a great idea 09:46
s/know/no/
dalek kudo/nom: 6060607 | moritz++ | t/spectest.data:
dash-e depends on ICU
09:47
jnthn moritz: Getting ICU sorted out here on Windows is a real nuisance. 09:48
When Parrot bundled ICU I did a bunch of stuff to get it to reliably build on Windows.
Then they unbundled it. :/ 09:49
moritz :(
jnthn And I'm not going to fix it again.
hanekomu: Yes, looking forward to Twin city Perl workshop :)
meeting & 09:51
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␤»
mls_ hmm, dunno if the leave blocks should really be run in reverse order...
dalek ast: e2cbb6d | moritz++ | S12-methods/private.t:
test that private methods cannot be called from outside
09:57
ast: 398be5a | moritz++ | S06-signature/optional.t:
required params need to come before optional ones (RT #71110)
10:00
hanekomu i've installed icu now; what do i have to recompile? 10:03
tadzik Parrot I suppose 10:04
moritz all of it
rm -rf install/
perl Configure.pl --gen-parrot
hanekomu ok :)
dalek ast: a493f00 | moritz++ | S06-traits/is-rw.t:
test that "is rw" requires a variable for writing (RT #74820)
10:08
10:16 Trashlord left 10:20 grondilu joined
moritz niecza: say Int.WHO 10:20
p6eval niecza v10-18-g5be99bf: OUTPUT«Stash.new(...)␤»
grondilu rakudo is a bit slow to startup. It's gonna get better in the future, right?
flussence takes less than a second to get to the REPL on my netbook... what version are you using? 10:21
grondilu This is Rakudo Perl 6, version 2011.07 built on parrot 3.6.0 0 10:22
4.41 seconds for 'perl6 -e 0'
flussence oh, then yes it'll get better in the future
i.e. later today when 2011.09 is released
10:23 Mowah_ joined
grondilu ok cool 10:23
I also read that perl6 might be as fast as C, thanks to strong typing. That would be great. 10:24
mauke einstein's theory implies perl6 cannot be faster than c 10:25
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:26
moritz grondilu: 0.8s on my machine in the last development branch, to be released today 10:27
grondilu mauke: it's in "perl5to6" (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
moritz hanekomu: no; there is a similar document, but it's outdated. I need to update it
grondilu Does the current branch do arbitrary precision arithmetics? Mine doesn't. 10:29
moritz no 10:30
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
tadzik C isn't fast in the same terms as English isn't fast
grondilu englist is fast, imho.
dalek ast: 7228246 | moritz++ | S10-packages/basic.t:
test that .WHO returns a Stash
mauke does no one here know einstein?
grondilu mauke: ?
tadzik I was invited to a party that he attended, but I got ill and didn't go 10:32
mauke grondilu: you and tadzik replied to what I said in a way that baffles me 10:33
nine I think most people did not notice the difference between c and C :) 10:36
grondilu understands the joke now.
moritz nom: say (1, , 3).perl 10:37
p6eval nom 606060: OUTPUT«(1, 3)␤»
moritz nom: return
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␤␤»
moritz closes 2 of the 5 oldest tickets in the perl6 queue 10:41
10:42 grondilu left
hanekomu t/spec/S05-modifier/ignorecase.rakudo passes as well now that icu4c is installed 10:42
10:46 pnu joined 10:58 ron__ joined
ron__ moritz: ping 11:00
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.
ron__ rakudo: say 1.WHO; say 1.WHO.keys.Str 11:04
p6eval rakudo 606060: OUTPUT«().hash␤␤»
11:05 ron__ left 11:19 hanekomu left 11:23 lestrrat left 11:24 lestrrat joined 11:36 Psyche^ joined, Patterner left, Psyche^ is now known as Patterner
[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:37
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
[Coke] moritz: Like me, right now. ;)
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
moritz nom: my @a := 1 11:44
p6eval nom 606060: ( no output )
moritz nom: say 1|2 === 1 11:45
p6eval nom 606060: OUTPUT«Bool::False␤»
dalek ast: 8e96ed1 | moritz++ | S03-operators/value_equivalence.t:
=== does not autothread (RT #61692)
11:48
11:48 ab5tract joined 11:54 alim_ joined
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())␤»
flussence rakudo: my $count = 3; my $str = 'aaaaa'; say ($str ~~ /^^ (\N ** {0..$count})/).perl
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...
11:55 ab5tract left 11:58 alim left, alim_ is now known as alim 12:01 Mowah_ left 12:10 satyavvd left
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:13
12:13 bluescreen10 left 12:14 hanekomu joined
hanekomu dumb questions coming up... 12:15
nom is the compiler using 6model, right? 12:16
moritz right
hanekomu what's the relationship between rakudo and nqp?
moritz rakudo uses nqp
for compiling some of rakudo's source files
hanekomu so, just for bootstrapping? 12:17
flussence nqp is glue between the VM and perl6
moritz hanekomu: 6model also lives in the nqp repository
hanekomu: so bootstrapping and a bit more :-)
hanekomu i should make a note of these things and create a roadmap for n00bs 12:18
moritz that would be greatly appreciated
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
hanekomu so it's deprecated?
moritz hanekomu: and maybe it will be used for a .NET implementation of 6model
hanekomu ok
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 %%%?
TimToady: <a> %%% <b> matches optional b on either side of a
TimToady: I need it constantly :) 12:22
12:26 bluescreen10 joined
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␤␤»
moritz teh fun!
moritz closes another 2 year old rakudobug 12:29
12:34 SHODAN joined
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)>␤»
flussence niecza++ :D
moritz rakudo: class A { class B {}; B.new } 12:37
p6eval rakudo 606060: ( no output )
moritz rakudo: enum A <a>; say a; eval 'sub a { "O HI" }'; say a
p6eval rakudo 606060: OUTPUT«A::a␤A::a␤»
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> } }"␤»
moritz std: grammar { token a-a { a }; token TOP { <a-a> } }
p6eval std 8b331d2: OUTPUT«ok 00:01 121m␤»
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…
moritz rakudo: sub foo { say "bar" }; my $x = 'foo'; &::($x)() 12:43
p6eval rakudo 606060: OUTPUT«bar␤»
moritz rakudo: say %("foo" ~~ /foo/).exists("foo") 12:44
p6eval rakudo 606060: OUTPUT«Bool::False␤»
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"␤»
moritz rakudo: subset FooStr of Str where /^foo/; multi trim(FooStr $self:) { return "OH HAI" }; say "foo".trim
p6eval rakudo 606060: OUTPUT«foo␤»
12:51 Guest73321 is now known as felher 12:55 cognominal_ left, cognominal joined 12:58 alim left
dalek ast: 6fba902 | moritz++ | S0 (2 files):
add a test for RT #65308; fudge capturing-contexts.t for rakudo
12:59
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"␤»
moritz nom: use MONKEY_TYPING; augment class Match { method keys() { %(self).keys } }
p6eval nom 606060: ( no output )
jnthn back from keeting 13:04
er, meeting 13:05
flussence niecza: say [max] 1, 3, 5
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…
flussence aw, that still doesn't work :(
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-…
flussence niecza: say [1, 3, 5].max
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…
flussence perl6: say max(1,3,5)
p6eval niecza v10-18-g5be99bf: OUTPUT«===SORRY!===␤␤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) ␤ …
..pugs, rakudo 606060: OUTPUT«5␤»
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. :)
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
Or questions that lead to such. :)
I like the idea of a "what is what" kinda doc. I plan to write one for the Rakudo repository at some point.
moritz I plan to do an update to perlgeek.de/blog-en/perl-6/rakudo-overview.html 13:09
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␤␤»
jnthn moritz: ah, nice :) 13:11
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.
moritz: Just a heads up in case you go fixing spectests.
Will try and fix later today. 13:12
moritz rakudo: say [X] [<a b c>] xx 3
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…
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"␤»
jnthn ugh
b: class class {}; say class.new.perl
p6eval b 1b7dd1: OUTPUT«===SORRY!===␤Malformed package declaration at line 22, near ".new.perl"␤»
jnthn hm
std: class class {}; say class.new.perl
p6eval std 8b331d2: OUTPUT«ok 00:01 120m␤»
jnthn Not sure what's going on there. 13:15
Maybe have a look at package_def rule.
13:17 hanekomu left
moritz wonders why he hasn't got a huge wave of mails from RT yet 13:18
13:23 sayu joined 13:24 bbkr1 joined 13:25 bbkr left 13:27 bbkr joined, bbkr1 left 13:31 packetknife joined 13:32 bbkr left, bbkr1 joined
mls_ good news: I've got ENTER/LEAVE phasers working a bit 13:34
exceptions in LEAVE loop currently 13:35
13:37 bbkr joined, bbkr1 left
jnthn mls_: nice :) 13:38
(nice progress, not nice that they look in LEAVE... ;)) 13:39
*loop
...yeah, I can't type at all any more. Time for a weekend. :)
13:41 SHODAN left 13:42 Trashlord joined 13:44 koban left 13:47 bbkr left, bbkr joined
moritz in .de, the Monday is free too \o/ 13:51
13:53 bbkr left 13:54 bbkr joined 13:57 abercrombie joined
jnthn moritz: ooh, nice 13:59
14:00 bluescreen10 left 14:01 daxim left, bluescreen10 joined 14:02 bbkr1 joined, bbkr left
moritz make 14:03
ww
14:08 bbkr1 left 14:11 bbkr joined
dalek kudo/nom: 5feefbe | moritz++ | t/spectest.data:
run capturing-contexts.t
14:13
kudo/nom: f2cc823 | moritz++ | src/core/IO.pm:
IO.seek and .tell
14:20 bbkr left 14:26 Trashlord left 14:27 Trashlord joined 14:28 bbkr joined 14:30 molaf__ joined 14:31 bbkr left 14:32 bbkr joined, molaf_ left 14:36 cognominal left, cognominal joined 14:37 mj41 left 14:43 bbkr left 14:47 cosimo left 14:49 thou joined 14:53 kaleem left 14:54 MayDaniel joined 14:55 MayDaniel left, MayDaniel joined, frew joined 14:56 frew left, frew joined
sorear good * #perl6 14:59
14:59 frew left 15:00 hanekomu joined
flussence heh, I've finally got my $dayjob to stop complaining about me "wasting time" on TDD. 22 fails, 1722518 passes :) 15:01
hanekomu should multi sub foo(Int $n where { $n == "Foo" }) { say "what?" } complain about "Foo" not being an Int? 15:02
sorear no 15:03
at least not at compile time
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.
rakudo: my $n = 1; $n == 'Foo' 15:04
p6eval rakudo f2cc82: ( no output )
flussence no errors, because it's technically valid code
hanekomu sure, but here I say "Int $n" - so it might behave the same as my Int $foo = "Foo"
but ok
sorear hanekomu: == and = are not the same at all
flussence rakudo: say "Foo".Int 15:05
p6eval rakudo f2cc82: OUTPUT«0␤»
jnthn $n == "Foo" will be true whenever $n contains 0.
flussence rakudo: say "Foo".Int == "Foo"
p6eval rakudo f2cc82: OUTPUT«Bool::True␤»
jnthn Anyway, you don't need to write the block
hanekomu ah indeed.
jnthn multi sub foo(Int $n where "foo") { } is just as good. 15:06
er
Well, it's still crazy :)
multi sub foo(Int $n where 42) { } # works
But then you coulda just written
multi sub foo(42) { } # works
15:06 mkramer1 joined
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:07
jnthn ah, no 15:09
it's more like $n eq "Foo"
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
jnthn Well, it *is* ambiguous.
hanekomu might it not list ":(0)", since it has more precise information?
jnthn Yes, it can...I even did the refactor the other day to enable us to do that.
hanekomu ah :)
jnthn Just didn't get around to it yet.
15:13 hanekomu_ joined 15:16 hanekomu left
jnthn Time to head out for beer and dinner. Back later :) 15:19
15:21 cosimo joined 15:37 am0c joined 15:49 bbkr joined 15:53 MayDaniel left, bbkr left 15:55 Reaganomicon left
dalek ecza/serialize: 174e334 | sorear++ | / (3 files):
Implement compiler support for is-traits
16:00
[Coke] (mails from RT) did you remember to check the "cc list" box? 16:03
if so, sometimes those emails need to be whitelisted, IIRC.
16:04 hanekomu_ left 16:05 packetknife left 16:07 bbkr joined
[Coke] thinks all the LHF on niecza running spec tests is nearly done. 16:07
mls_ hah! it doesn't loop anymore! \o/ 16:14
16:20 zenog left 16:21 arthur-_ joined 16:23 risou_awy is now known as risou
mls_ perl6: eval(q{ { } }) 16:23
p6eval pugs, niecza v10-18-g5be99bf: ( no output )
..rakudo f2cc82: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1␤»
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␤»
dalek ast: 39684f0 | moritz++ | S06-multi/value-based.t:
dispatch test involving literals and optional parameters (RT #88562)
16:36
16:36 mberends joined
moritz tadzik: how is the release coming along? 16:37
16:37 _jaldhar left
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 cotto left
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
16:41 cotto joined
sorear o/ mberends 16:42
Coke++ # testing!
moritz rakudo: "foo".{ say $^a }
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␤␤»
mberends o/ sorear
moritz rakudo: say min(3,6) 16:43
p6eval rakudo f2cc82: OUTPUT«3␤»
moritz rakudo: +sub {} 16:44
mberends sorear: how are you doing with the serialize branch?
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
sorear mberends: I'm feeling pretty decent about it. Very high chance it will run Hello World at least by next #phasers 16:46
ETA 2 weeks
mberends sorear++: excellent :) 16:47
16:47 cotto left
mberends will try Mono's System.Drawing instead of Gtk for a bit 16:48
16:48 cooper joined 16:50 cotto joined
sorear mberends: how do you get a window to use with System.Drawing? 16:52
(winforms?) 16:54
16:55 makkksimal joined
mberends sorear: yes, and gacutil -l says System.Windows.Forms is not installed :-( That API might be patented. 16:56
sorear: that's probably the biggest hurdle, to create an object for the drawing area. 16:58
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
felher moritz: Okay, but it should work some far day? :) 17:00
17:00 daniel-s left
moritz felher: I hope so 17:01
felher moritz: nice :)
17:02 am0c left
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:03
17:04 jevin left 17:05 kaleem joined 17:07 MayDaniel joined, mkramer1 left
sorear mberends: I hear mono supports WinForms. 17:07
17:07 hanekomu joined 17:08 localhost left 17:09 localhost joined 17:10 jevin joined
felher +? 17:10
mberends sorear: yes, there are examples online that suggest that. I'm porting a simple C# one: zetcode.com/tutorials/monowinformst...roduction/ 17:11
[Coke] sorear, mberends: glad to help.
sorear mberends: if you're having too much trouble, ask #mono
(irc.gimp.net)
er, irc.gnome.org 17:12
17:12 sayu left
mberends sorear: thanks, good idea for later, but not from a moving train 17:12
felher std: class A { has $.x = 0; has $.clossure = { say self.x; } }; # :( 17:14
p6eval std 8b331d2: OUTPUT«===SORRY!===␤'self' used where no object is available at /tmp/WMnKXeOifB line 1:␤------> has $.x = 0; has $.clossure = { say self⏏.x; } }; # :(␤Check failed␤FAILED 00:01 123m␤»
17:14 espadrine left
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:14
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"␤»
shinobicl nom: ('' ~~ '')?1:0
p6eval nom f2cc82: OUTPUT«===SORRY!===␤Unsupported use of ?: for the conditional operator; in Perl 6 please use ??!! at line 1, near "1:0"␤»
shinobicl nom: ('' ~~ '')??1!!0
p6eval nom f2cc82: ( no output )
sorear TimToady: what's wrong with the status quo?
perl6: say '' ~~ '' 17:16
p6eval rakudo f2cc82, niecza v10-18-g5be99bf: OUTPUT«Bool::True␤»
..pugs: OUTPUT«1␤»
TimToady sorear: people were hating on the status quo yesterday
[Coke] sorear: there was much gnashing of teeth yesterday about say not being "print plus newline".
TimToady so I'm suggesting that say is "show plus newline" 17:17
show basically being a say without the newline
[Coke] TimToady: that
TimToady with vague allusions to "show your hand"
[Coke] (allusions aside) that's not a bad compromise.
TimToady indicate something before commiting to it
and also works because 'show' is how many command APIs dump out settable values 17:18
mberends I would prefer to rollback a few weeks and not make .gist the default stringifier for say. 17:19
tadzik oooh 17:21
moritz: thanks for reminding :0
I'm on it
are we fine with non-clean spectest? 17:22
sorear prefers the status quo to all proposals, but will accept TimToady's decision
TimToady there were good reasons for gisting the output of say, since it's primarily used for human output, not computer input 17:23
or however you say that
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?
*distinction
That's my primary source of disconnect with the change. 17:25
TimToady maybe you're not a human?
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
print/println, say/saynl ;) 17:29
printnl
tadzik sayln, nice
or saysay 17:30
mls_ currently print/say are in the "opposite" corners
which makes it hard to define the other two
TimToady and I think they should stay there
flussence bah, I fix a bunch of T-T-W for nom and it causes niecza to barf...
TimToady I'm suggesting show for one corner
tadzik got distracted by $lugtalk and is now working on the release
TimToady (prompt being implemented in terms of show, probably) 17:31
as for printnl, that's not really much better than print @args, nl; # assuming constant nl = "\n"
mls_ yes, but having three different names that have nothing in common is confusing for beginners
[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 ;) )
TimToady human languages are most irregular at the most used spots
and this is a heavily used spot
PerlJam greetings 17:33
[Coke] yes, but they are that way not because they were designed that way.
mls_ TimToady: That's certainly true, from a usage perspective print/say are exactly right IMHO
17:33 espadrine joined
TimToady [Coke]: you should read The Search for the Perfect Language by Umberto Eco 17:35
the heavily used bits of a language are precisely where you do *not* want orthogonality
PerlJam ingy: <b>? ~ <b>? <a> # There's your %%% :-)
mls_ I just think that 'show' is confusing, how about printgist? 17:36
(assuming it's not used often)
TimToady printline, printgist, and printgistline AKA say :) 17:37
17:37 mberends left, donri joined
TimToady prin, prig, and pring :) 17:37
mls_ maybe too much huffman ;) 17:38
17:38 lateau_1 joined
[Coke] printgist ain't much shorter than print ....gist 17:38
TimToady too much Perfect Language
PerlJam TimToady: so ... what's the short-hand for print + newline ?
TimToady indeed, and printline is no shorter than print ,nl 17:39
17:39 makkksimal left
TimToady how about a built-in nl constant? 17:39
or NL
mls_ but it looks easier and it's easier to append stuff at the end
TimToady saves all of two characters
PerlJam Just like C++ (there, does that kill it? :)
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
tadzik I liked the old behaviour of print/say
flussence gives up trying to make Text::Wrap work in niecza
moritz tadzik: which part of the spectest is non-clean?
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.
[Coke] felher: (untouched) from today, not from a week ago or whenever that was.
tadzik maybe they got fudged when I wasn't looking
[Coke] sorear: and I happen to really not. ;)
17:42 donri left 17:43 donri joined, donri left
mls_ ok, I have to head home, enjoy the further discussion... -> afk 17:43
17:43 Chillance joined
PerlJam sorear: what if show were today's say and say was just print + newline ? 17:43
17:43 donri joined
moritz would be fine with that 17:43
felher [Coke]: Yeah. What was the old behaviour? say = print + nl?
[Coke] felher: yes.
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 risou is now known as risou_awy
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.
flussence: can you explain what continue{} does? 17:49
flussence: do you mean NEXT{}?
flussence ...I'm doing something idiotic that only coincidentally works in rakudo again, aren't I? :)
well, I get a NYI message now, so I suppose I'm asking for NEXT :) 17:50
felher std: class A { has $.x = 0; has $.closure = { say self.x; } }; # TimToady: Should that be possible? 17:51
p6eval std 8b331d2: OUTPUT«===SORRY!===␤'self' used where no object is available at /tmp/uL9E2UNDTP line 1:␤------> has $.x = 0; has $.closure = { say self⏏.x; } }; # TimToady: Should that be poss␤Check failed␤FAILED 00:01 123m␤»
17:51 kaare_ joined
PerlJam felher: perhaps if it were a method, otherwise it's not clear what "self" means. 17:51
TimToady which is precisly what the error message says already 17:52
17:52 espadrine left
sorear flussence: S04:359 "There is no longer a C<continue> block." 17:52
17:53 wamba left
felher I thought maybe self is in the lexical scope of a class. :/ 17:53
TimToady but what would it *mean*?
sorear niecza doesn't do NEXT (yet) though.
tadzik moritz: okay, it's a PASS, it's just some TODOs passed 17:54
t/spec/S06-signature/slurpy-params.rakudo and t/spec/S19-command-line/dash-e.rakudo
moritz tadzik: slurpy-params.t can be unfudged, I think 17:55
tadzik: and I'd just comment out dash-e.t for now
tadzik okay, but that's a roastthing
moritz: from spectest.data?
flussence blames perl6.vim for having misleading highlighting on "continue"
moritz tadzik: aye
TimToady flussence: that's a fossil, it's "proceed" now 17:56
17:56 espadrine joined
PerlJam flussence: it's probably a hold over since I belive perl6.vim started life as perl5.vim 17:56
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 mberends joined
moritz felher: well, it can only work if the sub is within a method 17:57
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…
flussence huh, why did that work in my code...
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
rakudo: for 1, 2 { say 'a'; NEXT { say 'b' } }
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…
flussence erm.
rakudo: my $x = 3; while $x-- { say 'a'; NEXT { say 'b' } }
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␤␤»
felher As well as a class is a definition of an object. Thats not right, hm, isn't it? :)
TimToady b: for 1, 2 { say 'a'; NEXT { say 'b' } }
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␤»
flussence rakudo: my $x = 3; while $x-- { say 'a'; next; say 'c'; NEXT { say 'b' } }
p6eval rakudo f2cc82: OUTPUT«a␤a␤a␤»
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
dalek kudo/nom: f2e57ca | tadzik++ | VERSION:
[release] bump VERSION
18:00
kudo/nom: 1403177 | tadzik++ | t/spectest.data:
Temporarily comment out dash-e.t
TimToady rakudo: for 1, 2 { say 'a'; LEAVE { say 'b' } }
p6eval rakudo f2cc82: OUTPUT«===SORRY!===␤LEAVE phaser not yet implemented at line 1, near " }"␤»
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 " }"␤»
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
18:02 mberends left
TimToady NEXT is really just a LEAVE that doesn't fire when unwound by a 'last' 18:02
sorear TimToady: so NEXT runs twice in your example? 18:03
sorear thought there had to be an actual last element
TimToady yes, it runs right before the loop condition is tested again, as continue does in P5
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...
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
that's how P5 implements continue
18:05 felher left
TimToady biab & 18:05
dalek ast: 97c23e5 | moritz++ | S12-attributes/instance.t:
refudge and correct S12-attributes/instance.t; add tests for attribute list assignment
moritz tadzik: I just fudged another test file -- can I add it to spectest.data before the release?
tadzik moritz: go on 18:06
moritz: I assume it doesn't break anything? :) 18:09
I'll just retag everything and ship it, I just checked the tarball for workingness
moritz tadzik: no need to retagging
tadzik really?
but I already have a tarball and everything
moritz tadzik: it's fine to add it after the release; I just didn't want to mess with your prcoess
tadzik no worries, nothing can stop me now 18:10
moritz nom: say 10.ln
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␤␤»
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 '"␤»
flussence niecza: say 'a'; goto 'end'; say 'b'; end: say 'c'; 18:12
p6eval niecza v10-18-g5be99bf: OUTPUT«a␤c␤» 18:13
tadzik okay, release complete 18:14
moritz tadzik++
tadzik if I didn't forget anything
flussence \o/
tadzik sorry for the delay
dalek ast: 8c73ebb | moritz++ | integration/99problems-51-to-60.t:
use Any instead of Mu where appropriate
18:15
18:16 felher joined
ingy PerlJam: huh? that doesn't work 18:16
I want class: <method> %%% <comment>* 18:17
in the real world
er
class: <method>+ %%% <comment>*
TimToady druther do something different, like %? and ?% 18:18
dalek kudo/nom: cf85f33 | moritz++ | t/spectest.data:
run instance attribute tests
kudo/nom: 091bee7 | moritz++ | src/core/ (2 files):
fail() in Complex.Real
ingy TimToady: I thought about that but it's not really needed 18:19
if you are trying to say optional front, but no optional rear
just reverse a and b
felher PerlJam, moritz: I finally understood it. Thnx for your help :) 18:20
18:20 Arrgh joined
ingy TimToady: so ?%? too? 18:21
Arrgh!!!!
(that felt so good)
flussence
.oO( I can't write code to spec that works in anything. this is giving me web-dev flashbacks... )
ingy Arrgh++
moritz nom: class A { method x() { sub { self } } }; my $x = A.new; say $x === $x.x.()
TimToady I don't think reversing it will work
p6eval nom f2cc82: OUTPUT«Bool::True␤»
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
moritz Arrgh: quite nicely, actually
ingy no?
18:22 mberends joined
ingy TimToady: failing example please 18:23
moritz Arrgh: in rakudo, we are now at a point where we can implement nice optimizations
ingy Arrgh: I can translate p6 modules to Scala!
Arrgh: cdent.org/examples/hello-world/
:D 18:24
not very many modules yet ;)
moritz can translate "Hello, World" into a whole lot of programming languages
18:25 packetkn_ joined
felher moritz: yeah, i see :) 18:25
ingy TimToady: let me know if you drop %% and add ?%? or whatever
dinner&
18:27 gfldex joined 18:28 packetknife left
diakopter . 18:29
sorear hello diakopter
18:29 envi left
diakopter hi 18:29
mberends Niecza can make an empty System.Windows.Forms.Form with Mono :) 18:30
diakopter gist?
mberends soon, this mobile interweb is flaky 18:31
diakopter TimToady: show +1
PerlJam diakopter: ah, but which version of show? :) 18:32
diakopter irclog.perlgeek.de/perl6/2011-09-30#i_4504618 18:33
PerlJam diakopter: what about irclog.perlgeek.de/perl6/2011-09-30#i_4504833 ? 18:34
diakopter hm yeah +1 to that too 18:35
less trouble for p5 migration
well sorta
flussence perl6: sub foo($a, $b, $c) { say "$a $b $c" }; my &wrapped = &foo.assuming('a', 'b'); &wrapped('c'); 18:36
p6eval rakudo f2cc82, niecza v10-18-g5be99bf: OUTPUT«a b c␤» 18:37
..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…
flussence perl6: sub foo($a, $b, *@_) { say "$a $b @_" }; my &wrapped = &foo.assuming('a', 'b'); &wrapped('c');
p6eval rakudo f2cc82, niecza v10-18-g5be99bf: OUTPUT«a b @_␤»
..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…
flussence perl6: sub foo($a, $b, *@_) { say "$a $b " ~ @_.join }; my &wrapped = &foo.assuming('a', 'b'); &wrapped('c');
p6eval rakudo f2cc82, niecza v10-18-g5be99bf: OUTPUT«a b c␤»
..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…
PerlJam flussence: @_[] or {@_} would have interpolated
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:38
moritz felher: should be possible 18:39
felher: hm, no 18:41
types cannot have dependencies on multiple objects in a sane fashion
felher moritz: Hm, what a pitty. Well, thnx nevertheless. # moritz++ for his incredible patience :) 18:42
18:44 Arrgh left 18:46 Exodist left
PerlJam felher: you could put the where clause each method ... method sum(Vector $v where { $.dimension == $v.dimension }) { ... } 18:47
felher: if we had macros it wouldn't even be that onerus to do it to multiple methods.
(if we had macros)
18:50 mberends left
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␤␤»
felher PerlJam: yeah :) if we had macros. :) 18:51
felher -> afk, studying 18:54
18:56 MayDaniel left
moritz there's an even better way 18:58
make it a generic role
Vector[$Dimension]
PerlJam oh, good point
Woodi b: sub a { my $b=1; $b != 2 ?? { say "p1$b"; return False} !! { say "p2$b" } }; say a();
p6eval b 1b7dd1: OUTPUT«_block1080␤»
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();
p6eval rakudo 091bee: OUTPUT«_block1015␤»
Woodi rakudo: sub a { my $b=1; $b != 2 ?? &{ say "p1$b"; return False} !! &{ say "p2$b" } }; say a();
p6eval rakudo 091bee: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 1, near "&{ say \"p1"␤»
moritz Woodi: try to invoke the result
rakudo: sub a { my $b=1; $b != 2 ?? { say "p1$b"; return False} !! { say "p2$b" } }; say a()()
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␤␤»
Woodi have no idea what invoke is :) 19:00
moritz call
19:02 jlaire left
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"␤»
Woodi rakudo: sub a { my $b=1; $b != 2 ?? { say "p1$b"; return False} !! { say "p2$b" }; say "more" }; say a()()
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␤␤»
moritz Woodi: just use if/else :-) 19:03
Woodi right :)
moritz you can also use do { ... }
but that's *really* bad style
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"
Woodi is do {} have good performance ?
err
PerlJam Woodi: that's not true
Woodi do do {} have good performance ? 19:05
moritz Woodi: in rakudo, every { } block is an invocation, and that's relatively slow
PerlJam Woodi: but aside from that ... if you need something more complicated, that's what if/else is for.
moritz doesn't matter if the block belongs to a 'do', an 'if' or whatever
Woodi i want something not so complicated :) just assign to walue and return.. 19:06
tadzik did my p6c email get there?
Woodi k, rewrite to if
moritz tadzik: I haven't got it yet
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
seems p6c has a hiccup 19:08
19:08 jlaire joined 19:09 GlitchMr joined
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
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/…
GlitchMr rakudo: ... 19:10
p6eval rakudo 091bee: ( no output )
GlitchMr no output...
rakudo: '$'..'@' 19:12
p6eval rakudo 091bee: ( no output )
GlitchMr rakudo: say chr $_ for 36..64 19:13
p6eval rakudo 091bee: OUTPUT«$␤%␤&␤'␤(␤)␤*␤+␤,␤-␤.␤/␤0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤:␤;␤<␤=␤>␤?␤@␤»
GlitchMr For me both of those forms looks identical...
Oh I see...
I forgot print
lol
rakudo: print '$'..'@'
p6eval rakudo 091bee: OUTPUT«(timeout)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$… 19:14
GlitchMr whatever, it was wrong
rakudo: say $_ for '$'..'@'
dalek kudo/nom: ebd4d87 | moritz++ | src/core/Failure.pm:
throw an exception when calling an exception of Failure

Probably not spec, but much better than the message that the method could not be found
p6eval rakudo 091bee: OUTPUT«(timeout)»
19:15 kaare_ left, masak joined
masak guten heute, #perl6 19:15
GlitchMr rakudo: `clear`;
p6eval rakudo 091bee: OUTPUT«===SORRY!===␤Confused at line 1, near "`clear`;"␤»
masak GlitchMr: qx 19:16
GlitchMr rakudo: qx(clear);
masak rakudo: qx[clear]
p6eval rakudo 091bee: OUTPUT«Could not find sub &clear␤ in block <anon> at /tmp/_TDl4Z9DiS:1␤ in <anon> at /tmp/_TDl4Z9DiS:1␤␤»
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␤␤»
GlitchMr safe mode...
O_o
masak GlitchMr: parentheses always mean sub call
GlitchMr: safe mode is on in #perl6.
GlitchMr What is safe mode?
masak it's turning off some potentially damaging function in Rakudo. 19:17
jnthn evenin'
GlitchMr I guess it's similar to safe_mode in PHP... but... that doesn't say much...
masak jnthn: o/
19:17 sivoais left
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?
flussence well for one, rakudo's safe mode actually does something :)
tadzik oh hai mr masak
GlitchMr Makes sense...
masak GlitchMr: it's just a way to prevent obvious abuses of the p6eval bot.
tadzik: mr tadzik, czesc!
GlitchMr niecza: qx[clear] 19:18
dalek ast: 9842081 | moritz++ | S06-signature/slurpy-params.t:
unfudge now-passing "is default" test for rakudo
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…
GlitchMr ...
moritz tadzik++ # best rakudo release ever
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 ;) )
masak oh, we've had a release? neat!
moritz rakudo: class A { method foo { my $a = 42; method bar { say $a
p6eval rakudo 091bee: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 1␤»
moritz rakudo: class A { method foo { my $a = 42; method bar { say $a } } }; given A.new { .foo; .bar }
p6eval rakudo 091bee: OUTPUT«42␤» 19:20
masak moritz: congrats on closing RT #52242 -- was that our oldest open one?
moritz: wow, methods in methods -- that's *evil*! who makes up this stuff? :P
moritz masak: I just know who submitted the ticket :-) 19:21
jnthn masak: you? :P
Did it not work out at one time?
masak glances around innocently
jnthn: I think it NPMCAs in ng.
or something.
moritz yep 19:22
rt.perl.org/rt3/Ticket/Display.html?id=83902
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!
masak so... evil...
GlitchMr rakudo: class nope { method nope { print 'nope' }} class yope is nope {} my $yope = yope.new(); $yope.nope
p6eval rakudo 091bee: OUTPUT«===SORRY!===␤Confused at line 1, near "class nope"␤»
GlitchMr ... 19:23
masak GlitchMr: semicolon after closing brace.
if you mean to write more on that line.
GlitchMr rakudo: class Nope { method nope { print 'nope' }}; class Yope is nope {}; my $yope = Yope.new(); $yope.nope
masak which you usually do in one-liners :)
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…
jnthn masak: daaligt.
Glad it's fixed.
GlitchMr O_o
masak GlitchMr: "Nope", not "nope"
jnthn GlitchMr: Case sensitive.
GlitchMr rakudo: class Nope { method nope { print 'nope' }}; class Yope is Nope {}; my $yope = Yope.new(); $yope.nope
p6eval rakudo 091bee: OUTPUT«nope»
masak jnthn: once again, it shows that lexpads rule everything. 19:24
GlitchMr :)
jnthn I wonder if we can add a default trait_mod:<is> that's a tad more informative...
masak GlitchMr: also, Barbara Liskov frowns at you :P
GlitchMr class Nope { function nope() { print 'nope'; }} class Yope extends Nope {} $yope = new Yope(); $yope->nope();
It reminds me PHP for some reason... 19:25
masak perhaps because that's where you learned OO? :)
GlitchMr Maybe...
That's very posible...
dalek ast: a72deaf | moritz++ | S12-methods/instance.t:
test for inner methods, RT #83902
GlitchMr possible...
jnthn It kinda reminds me of Java and C# and C++ too... ;)
masak GlitchMr: be sure to check out roles. they're much better than anything OO-based in PHP.
GlitchMr class ClassName; 19:26
sjohnson ( `ー´)
GlitchMr ... this in PHP would make empty class...
jnthn GlitchMr: In Perl 6 it means that rest of the file makes up the body of that class.
GlitchMr Makes sense... 19:27
masak sjohnson: hello, cute doggie face!
sjohnson heheh
moritz nom: class Class { }; say Class.new
p6eval nom 091bee: OUTPUT«Class<95918824>␤»
GlitchMr Oh wait... class ClassName; makes syntax error in PHP...
I find it weird... it other block instructions, it makes empty instruction...
moritz std: Class 19:28
p6eval std 8b331d2: OUTPUT«ok 00:01 118m␤»
GlitchMr Whatever...
moritz so, Class exists?
GlitchMr niecza: class Class { }; say Class.new
moritz or not?
p6eval niecza v10-18-g5be99bf: OUTPUT«Class.new(...)␤»
sorear hello, GlitchMr.
GlitchMr sorear, hi
sorear moritz: fossil I'm sure
jnthn moritz: It doesn't.
19:29 sivoais joined
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:␤------> Whatever,⏏ ...␤ok 00:01 121m␤»
sorear moritz: from way back when class A { } defines A (~~ Class) and A.new ~~ A
GlitchMr std: print print print print print 2;
p6eval std 8b331d2: OUTPUT«ok 00:01 119m␤»
GlitchMr niecza: print print print print print 2; 19:30
p6eval niecza v10-18-g5be99bf: OUTPUT«2Bool::TrueBool::TrueBool::TrueBool::True»
GlitchMr Makes sense...
dalek ast: 7dd7383 | moritz++ | S02-names-vars/names.t:
test that class Class is OK
GlitchMr print "\x07" while Bool::True
niecza: print "\x07" while Bool::True 19:31
p6eval niecza v10-18-g5be99bf: OUTPUT«(timeout)…
sorear GlitchMr: what exactly are you trying to do?
GlitchMr niecza: print "\x07" for 1..100
p6eval niecza v10-18-g5be99bf: OUTPUT«»
GlitchMr Weird... it caused beep in my IRC client.
That probably means my IRC client fails...
mikemol Yeah, caused a beep in mine, too.
flussence p6eval should probably filter out control chars. 19:32
rakudo: print "\x14AAAAA!"
p6eval rakudo 091bee: OUTPUT«===SORRY!===␤Invalid character for UTF-8 encoding␤␤»
moritz nom: say NaN == NaN
p6eval nom 091bee: OUTPUT«Bool::False␤»
flussence niecza: print "\x14AAAAA!"
moritz nom: say NaN === NaN
p6eval nom 091bee: OUTPUT«Bool::False␤»
niecza v10-18-g5be99bf: OUTPUT«ꪪ!»
GlitchMr <moritz> nom: say NaN == NaN
<p6eval> nom 091bee: OUTPUT«Bool::False␤»
flussence whoops
rakudo: print "\x[14]AAAAA!"
GlitchMr It reminds me JavaScript for some reason...
p6eval rakudo 091bee: OUTPUT«AAAAA!»
moritz nom: s[]
p6eval nom 091bee: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter (must be quoted to match literally) at line 1, near ""␤»
sorear why are you (ab)using p6eval for this?
19:33 sivoais left
GlitchMr On my PC running that infinite beep loop code causes cmd.exe to freeze... 19:33
moritz nom: say (1, 2) >>[+]<< (10, 10) 19:34
GlitchMr That's probably bug in Micosoft code...
p6eval nom 091bee: OUTPUT«11 12␤»
flussence ah, the good old DOS DOS...
GlitchMr nom: ('h', 'e', 'l', 'l', 'o' Z=> 'w', 'o', 'r', 'l', 'd').perl
p6eval nom 091bee: ( no output )
GlitchMr nom: print ('h', 'e', 'l', 'l', 'o' Z=> 'w', 'o', 'r', 'l', 'd').perl
p6eval nom 091bee: OUTPUT«("h" => "w", "e" => "o", "l" => "r", "l" => "l", "o" => "d").list»
GlitchMr Right...
sorear wonders if ey should set an /ignore on GlitchMr and p6eval 19:35
GlitchMr nom: #!/usr/bin/perl
p6eval nom 091bee: ( no output )
19:35 soh_cah_toa joined
sorear hello soh_cah_toa 19:36
soh_cah_toa sorear: hey
dalek ast: 5e3afdd | moritz++ | S03-metaops/hyper.t:
test for >>[+]<<, RT #83510
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
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:38 GlitchMr left, baest left 19:39 pmurias joined
sorear flussence: I guess something like charnames::viacode(9004) 19:39
o/ pmurias
moritz nom: *.&say 19:40
p6eval nom 091bee: ( no output )
moritz nom: say *.&say.WHAT
p6eval nom 091bee: OUTPUT«WhateverCode()␤»
[Coke] tadzik++ 19:42
dalek ast: 924663b | moritz++ | S02-types/whatever.t:
*.&foo currying, RT #81448
19:43
pmurias sorear: hi 19:45
sorear: how well does niecza support .net on windows? 19:46
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 ;)
sorear Maybe, if you know how to do .net GUI stuff and don't mind installing .net on client machines 19:48
pmurias isn't .net bundle with windows nowdays? 19:49
19:49 molaf__ left
pmurias * bundled 19:49
sorear pmurias: No clue. 19:50
I haven't actually developed on Windows since Win98
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?
sorear sjohnson: yes 19:52
19:52 dual left
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␤␤»
sjohnson sorear: please do :)
moritz rakudo: my @a = <a b c>; @a[0 ..^ *-1] >>~=>> "\n"; say @a.perl
masak nom: class A { method foo { my $a = 42; class B { method bar { say $a } } } }; A.new.foo; A::B.new.bar
p6eval rakudo 091bee: OUTPUT«Array.new("a\n", "b\n", "c")␤»
nom 091bee: OUTPUT«42␤»
masak \o/
nom: class A { method foo { my $a = 42; class B { method bar { say $a } } } }; A::B.new.bar
p6eval nom 091bee: OUTPUT«Any()␤»
masak \o/
sorear sjohnson: 1. diakopter used it in sprixel, which was where niecza was born 2. I've decided I really like the language
sjohnson thanks 19:54
so it's not a failed attempt by MS to do something good?
masak in which sense was niecza born at sprixel?
sjohnson (the language)
flussence imo it's more like a failed attempt by them to do something evil :)
arnsholt sjohnson: I usually describe C# as Java, just better 19:55
sorear sjohnson: don't forget, GHC is primarily funded by Microsoft
arnsholt It has lambdas, for crying out loud =D
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?
yath glasgow haskell compiler
sjohnson interesting
19:56 dual joined
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?
sorear yes 19:57
sjohnson interesting
i had no idea
sorear there are a handful of non-Microsoft C# compilers
sjohnson maybe i should give it a shot
masak sjohnson: you most definitely should.
sjohnson: a lot of nice things are happening around C# right now.
and the CLR.
sjohnson i just assumed it was some crap language like MS Visual Basic 19:58
i'm glad i asked
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
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
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
in other words I bet C# influenced the first *release* of the CIL spec 20:02
masak sounds probably.
probable*
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
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:04
20:04 lateau_1 left
diakopter forking/bundling mono could solve that, but would create lots of other problems :) 20:05
sorear IME Mono's fixed overhead, while significant, is much less than the Sun JVM's 20:06
pmurias fixed overhead = ?
sorear a Mono hello world can start from a cold cache on my 8 year old computer in less than a second
moritz and how long does Perl 5 need? :-) 20:07
diakopter :)
it'd be hard to get a computer in a state where Perl hasn't been run
well, maybe not
moritz diakopter: you can have multiple perls 20:08
20:08 kaleem left
diakopter oh yeah 20:08
benabik diakopter: You can force the Linux kernel to drop its caches.
dalek ast: 104edee | moritz++ | S02-types/array.t:
test array indexing with 0..^*-1, RT RT #79270
sorear there's another problem that shows up with very large applications
niecza has about 5MB of assemblies (I want to find ways to reduce the source/binary expansion factor here) 20:09
the time required to parse the metadata for STD.dll et al accounts for a substantial fraction of niecza's startup slowness
moritz rakudo: my $pair = "OH HAI" => 42; say $pair.Capture.perl 20:10
p6eval rakudo ebd4d8: OUTPUT«key OH HAI value 42␤»
diakopter sorear: have you experimented with the JIT flags? in perlesque I saw a dramatic speedup by telling mono not to optimize certain things
sorear diakopter: I try to measure niecza after AOTing. 20:11
diakopter oh 20:13
pmurias sorear: would having a persistent niecza compiler help things? 20:14
sorear: it still will hurt development there 20:15
s/there//
sorear That is unacceptable. 20:19
diakopter what's unacceptable?
sorear diakopter: a single persistant niecza daemon 20:20
ingy p6 has demons! 20:32
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.
*scalac, not scalar
dalek kudo/optimizer: 56be5f9 | jnthn++ | src/binder/bind.c:
Fix a couple of oversights in compile-time bind analysis.
20:35
[Coke] Anyone here near Albany, NY?
benabik [Coke]: same state, which is closer than some. ;-) 20:36
[Coke] offers a beer to anyone who makes it out this way.
benabik makes a note to get free beer next time he visits his brother-in-law. ;-)
20:37 vlixes joined
flussence I think mod_perl/mod_php have prior art over scala there :) 20:37
sorear same country, which is closer than some. :-) 20:38
jnthn Same hemisphere... :) 20:39
20:39 bbkr left 20:40 bbkr joined
[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
[Coke] will try to make it down to NYC the next time something happens there.
sorear almost all (in the Lebesgue sense) pairs of points on Earth share a hemisphere.
and I don't think we have any Perl hackers in space yet. 20:42
sjohnson @karma
pmurias sorear: why does print eval("4",:lang<perl5>); attempt to call gist? 20:46
sorear pmurias: it's calling gist on the return value of print 20:48
actual answer: a bug
print ~eval for now
mberends one-liner: mono run/Niecza.exe -e 'CLR::("System.Windows.Forms.MessageBox,System.Windows.Forms,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089").Show("Oh Hai!")' 20:50
diakopter niecza: CLR::("System.Windows.Forms.MessageBox,System.Windows.Forms,Version=2.0.0.0,Culture=neutral,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…
diakopter nice
20:58 thou left
diakopter hunh; I disagree with the explanation of the example at en.wikipedia.org/wiki/Common_knowle...28logic%29 21:09
hanekomu rakudo: say $_ for 1..3
p6eval rakudo ebd4d8: OUTPUT«1␤2␤3␤»
hanekomu rakudo: say for 1..3
p6eval rakudo ebd4d8: OUTPUT«␤␤␤»
hanekomu hm 21:10
diakopter rakudo: .say for 1..3
p6eval rakudo ebd4d8: OUTPUT«1␤2␤3␤»
hanekomu ah :)
21:11 mberends left
diakopter specifically, for k >= 3, I'll insist that the blue-eyed fact *is* common knowledge 21:11
(before the outsider announces it) 21:12
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
but maybe that isn't your complaint.
hanekomu: bare 'say' should be disallowed in Rakudo. it's a known bug that it isn't. 21:15
std: say for 1..3
p6eval std 8b331d2: OUTPUT«===SORRY!===␤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/q_m2tAemSc line 1:␤------> say⏏ for 1..3␤Check failed␤FAILED 00:01 121m␤»
hanekomu what's std? yet another compiler?
masak hanekomu: it's a reference parser. 21:16
it mainly gives informative error messages. doesn't run code.
hanekomu ah
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
TimToady insists on it though, mainly by not saying anything back ;)
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:18
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:19 sivoais left
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
masak one would think infinitely old beings would be more tolerant towards blue-eyes. 21:22
diakopter the xkcd edition xkcd.com/blue_eyes.html implies they're infinitely old beings; heh 21:24
21:33 bluescreen10 left 21:41 shinobicl left
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:42
21:44 erb joined, erb is now known as Fuad
masak hi Fuad! 21:44
21:45 Fuad left, Fuad joined
Fuad masak: hello bro! 21:45
21:45 espadrine left
cognominal Jean Yves Girard, the guy who designed System F have very harsh words about all these junk logics. 21:46
*has 21:47
masak 'night, #perl6
21:48 masak left 21:49 supernovus joined
cognominal the double negation "not knowing no shit" is tastier when talking about logic. 21:50
21:53 Fuad left
colomon mberends++ # one-liner 21:57
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:58
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 21:59
... and it must not actually give numbers for how many people have blue eyes. 22:02
22:11 huf_ is now known as huf
[Coke] tries to run niecza on windows 7. 22:14
(apparently no one does this using the makefile. woof.) 22:16
diakopter well, it requires cygwin 22:17
diakopter does it
requires cygwin to build
dalek osystem: d1c546e | (Timothy Totten)++ | META.list:
Added HTTP::Status and HTTP::Client to the list.
[Coke] diakopter: I don't think there's anything in here that /should/ require cygwin. 22:19
pmurias diakopter: what is cygwin required for?
diakopter rm -rf 22:20
[Coke] gmake.
diakopter touch
[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
[Coke] will head down that path, at least for my own enjoyment.
diakopter wget is also needed, but there are of course non-cygwin builds of that
diakopter tries a .Net build from cygwin 22:22
failed 22:23
sorear [Coke]: I only consider the binaries (which don't have a Makefile at all) supported on Windows
diakopter github.com/sorear/niecza/issues/61 22:24
oh
[Coke] sorear: I can't get at the binaries without the makefile.
diakopter that's a good point
[Coke] I mean, I /can/, sure, but I'd have to poke around. I'd like to just type "nmake" 22:25
sorear: and I'll be happy to get things working on windows and provide support on that part.
diakopter too
[Coke] (working sans cygwin)
tadzik supernovus++ # nice modules 22:26
diakopter [Coke]: see the url I pasted above, for the .Net build
[Coke] k. 22:27
sorear diakopter: that is a weird fail.
[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:28
[Coke] sorear: starting with a win32 specific version. 22:30
Then we can figure out if/how to combine them (or just generate the right choices at a (not yet extant) config time)
oh, look, I have a c# compiler. whee!
pmurias [Coke]: you'll replace the Makefile with C#? 22:31
sorear [Coke]: do you have the .net devtools in PATH by default? 22:33
[Coke] sorear: yes. 22:40
pmurias: no
but If I have a C# compiler, I can try the build.
22:40 bbkr left
[Coke] makefile line 62: can you translate that rule to english for me? I am not familiar with patsubst. 22:41
22:41 bbkr joined
diakopter [Coke]: all you have to do is change RUN_CLR to blank and CSC to csc 22:41
Makefile line 62 is empty 22:42
[Coke] diakopter: except that the makefile DOES NOT WORK, yes. ;)
whoops, line 27
diakopter no, I mean to build using .Net in cygwin
sorear diakopter: [Coke] appears to be using nmake
[Coke] I have said this already, but:
I am not using cygwin.
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
[Coke] diakopter: ok, now I have, and we can move on. ;)
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 ?
diakopter: sure, if you don't mind install modules.
*installing 22:45
sorear [Coke]: yes
flussence well if you've got cpan, you have most of those modules already :)
diakopter I thought LWP and the compression ones were bundled with perl for many years
sorear [Coke]: but see also the list of cross-dependencies at the end
diakopter: install Module::CoreList
[Coke] sorear: hurm. Then I think instead of creating a Makefile.win32, I'll autogen one. Danke.
flussence (I don't think it has a zip module though, probably only bz/gz) 22:46
sorear IO::Compress::Gzip was cored in 5.9.4 22:47
LWP::Simple is not in core
flussence also I dunno if anyone's mentioned it yet, but the test turned on in niecza 5be99bf is really broken for me
sorear diakopter: perl 5 sounds like "let's trade one big dependency for a different one" 22:48
flussence or some other one...
hm, works when I run it manually...
[Coke] flussence: define "really broken"
diakopter sorear: I agree
flussence infinite loop, printing out fail lines
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.
soh_cah_toa perl6: class Foo { ... }; class Bar { also is Foo }; say 'foobar'
[Coke] sorear: you mean, trade cygwin for perl5?
p6eval rakudo ebd4d8: OUTPUT«===SORRY!===␤also not yet implemented at line 1, near "}; say 'fo"␤»
..pugs: ( no output )
..niecza v10-18-g5be99bf: OUTPUT«foobar␤»
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...
[Coke] flussence: are you sure your spec dir is up to date?
flussence oh. probably not :)
[Coke] because I fudged the test that goes into an infinite loop.
soh_cah_toa perl6: class Foo { ... }; class Bar { is Foo }; say 'foobar'
p6eval niecza v10-18-g5be99bf: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'is' used at line 1␤␤Package was stubbed but not defined at /tmp/7jdVh9MaGM line 1:␤------> class Foo { ... }⏏; class Bar { is Foo }; say 'foobar'␤␤␤Unhandled Exception: Check failed␤␤…
..rakudo ebd4d8: OUTPUT«===SORRY!===␤The following packages were stubbed but not defined:␤ Foo␤␤»
..pugs: ( no output )
pmurias replacing cygwin with perl5 for windows seems sensible
22:50 hanekomu left
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
pmurias replacing cygwin by .net stuff seems the best option 22:51
diakopter oh hm; I hadn't thought of that.
soh_cah_toa perl6: role Foo { ... }; class Bar { also does Foo }; say 'foobar'
p6eval niecza v10-18-g5be99bf: OUTPUT«===SORRY!===␤␤Action method trait_mod:does not yet implemented at /tmp/vp_E38xRLI line 1:␤------> Foo { ... }; class Bar { also does Foo ⏏}; say 'foobar'␤␤␤Unhandled Exception: Cannot use hash access on an object of ty…
..rakudo ebd4d8: OUTPUT«===SORRY!===␤also not yet implemented at line 1, near "}; say 'fo"␤»
..pugs: ( no output )
diakopter an .exe would be needed in the source checkout that could supply wget/unzip functionality 22:52
sorear perl 5.8 contains Net::FTP 22:53
22:54 pmurias left
[Coke] (.net stuff) no, because why support 2 completely different toolchains? 22:55
22:55 supernovus left
diakopter [Coke]: we meant CLR stuff. 22:55
[Coke] for use in the build process? 22:56
diakopter yeah, as another option instead of Perl
[Coke] eh. if someone wants to figure that out, fine.
Any takers? 22:57
[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
[Coke] well, you've talked me out of doing anything about it. I'll play with rakudo tonight instead. 23:00
23:01 whiteknight joined
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" ?
sorear the latter :) 23:03
[Coke] k. 23:04
jlaire .u ə̂ 23:05
phenny U+0259 LATIN SMALL LETTER SCHWA (ə)
U+0302 COMBINING CIRCUMFLEX ACCENT (◌̂)
jlaire tyvm 23:06
diakopter wonders where jnthn is tonight 23:09
sorear .u ab
phenny U+C555 HANGUL SYLLABLE AB (압)
[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.
[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…
..pugs: OUTPUT«1797693134862315907729305190789024733617976978942306572734300811577326758055009631327084773224075360211201138798713933576587897688144166224928474306394741243777678934248654852763022196012460941194530829520850057688381506823424628814739131105408272371633505106845862982399472…
..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␤␤»
diakopter heh
[Coke] perl6: say 34.Int; 23:12
p6eval rakudo ebd4d8, niecza v10-18-g5be99bf: OUTPUT«34␤»
..pugs: OUTPUT«*** No such method in class Int: "&Int"␤ at /tmp/kdja7H6IYe line 1, column 5-11␤»
jlaire pugs: Inf.int.chars.say
p6eval pugs: OUTPUT«309␤»
[Coke] perl6: say Inf.Int;
p6eval niecza v10-18-g5be99bf: OUTPUT«1797693134862315907729305190789024733617976978942306572734300811577326758055009631327084773224075360211201138798713933576587897688144166224928474306394741243777678934248654852763022196012460941194530829520850057688381506823424628814739131105408272371633505…
..pugs: OUTPUT«*** No such method in class Num: "&Int"␤ at /tmp/MueMO4TytJ line 1, column 5-12␤»
..rakudo ebd4d8: OUTPUT«-9223372036854775808␤»
diakopter rakudo wow 23:13
jlaire pugs and niecza almost agree
[Coke] rakudo: say NaN.int
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␤␤»
[Coke] rakudo: say NaN.Int
p6eval rakudo ebd4d8: OUTPUT«-9223372036854775808␤»
dalek ok: 3c32c3d | soh_cah_toa++ | src/roles.pod:
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
23:24 Exodist joined 23:26 _jaldhar joined
[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:27
(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
[Coke] openbsd. 23:29
There are no smokes for rakudo from that platform.
23:31 dual left
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
23:31 dual_ is now known as dual
[Coke] "ceases" 23:31
soh_cah_toa lol, yes
[Coke] though I like the cut of your malaprop.
soh_cah_toa :) 23:32
sorear soh_cah_toa: whether finalizers are run on exit is implementation defined.
soh_cah_toa what?! lame...
tadzik :) 23:33
[Coke] diakopter: you have cygwin; have you done rakudo on cygwin lately?
soh_cah_toa what would something like that be implementation-specific? isn't that standard practice?
diakopter no, but I'd be glad to if you like
soh_cah_toa s/what/why/
[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
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
b/c defining a DESTROY submethod doesn't seem to work on 2011.07
tadzik . o O ( Native::atexit )
night.good 23:37
diakopter finds rt.perl.org/rt3/Public/Bug/Display...l?id=64032
23:38 huf left
[Coke] Yes, that one. Thanks in advance. 23:38
diakopter clones git://github.com/rakudo/rakudo.git 23:39
23:39 huf joined
diakopter I've cloned it. now what. 23:39
23:40 tokuhiro_ joined
diakopter installs from cygwin: libicu-devel, libicu38, libicu45, libicu48 23:42
[Coke] perl Configure.pl --gen-parrot will pull in dependencies and configure rakudo.
then "make"
23:43 soh_cah_toa left
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?
the OP specifically had issues with cygwin. I use strawberry every few months, seems ok. 23:44
dalek ecza/serialize: 0a6c198 | sorear++ | lib/ (3 files):
Implement runtime MRO generation
23:44 soh_cah_toa joined
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)
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
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
soh_cah_toa: that's a job for an END block 23:46
rakudo: END { say 5 } # I wonder
p6eval rakudo ebd4d8: OUTPUT«5␤»
sorear on exit, END blocks in all modules are run.
soh_cah_toa it's object-oriented though so where would i put that in the class?
sorear you put that in the module. somewhere. 23:47
soh_cah_toa but then it's not possible to refer to specific instance
sorear sure it is, keep specific instances in variables
[Coke] cognominal: ping.
phenny: ask cognominal to update RT#75850 with the expected output. 23:48
phenny [Coke]: I'll pass that on when cognominal is around.
sorear niecza/serialize can now compile my class Mu { 0 }; my class Any is Mu { 1 }; my class Cool { 2 } correctly
diakopter parrot clone is 90 MiB; wow. 23:49
flussence `du` on rakudo/parrot here is 203MB :(
soh_cah_toa sorear: nopaste.snit.ch/83340 23:51
diakopter size on disk of C:\Program Files (x86)\Mono-2.10.3 is 405 MB
soh_cah_toa sorear: how would i modify that to use and END block, then?
[Coke] diakopter: it's 10 years of version control: CVS -> svn -> git 23:52
diakopter [Coke]: parrot failed to build 23:54
soh_cah_toa sorear: on the Foo::Bar module side, that is
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]: gist.github.com/1255365
[Coke] diakopter: Guess it's not a rakudo issue, then. I'd appreciate it if you could open a ticket at 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 }
soh_cah_toa interesting
[Coke] nom: my @range_a = 1..*;
p6eval nom ebd4d8: ( no output ) 23:57
[Coke] nom: my @range_a = 1..*; say "alive";
p6eval nom ebd4d8: OUTPUT«alive␤»
[Coke] nom: my @range_a = 1..*; say "alive"; say @range_a
p6eval nom ebd4d8: OUTPUT«alive␤...␤»
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
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*.
[Coke] nom: my @range_a = 1..*; say "alive"; print @range_a
p6eval nom ebd4d8: OUTPUT«(timeout)alive␤1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201…
flussence s/SVN repo/SVN checkout/
[Coke] nom: my @range_a = 1..*; say "alive"; print @range_a[2344]; 23:58
p6eval nom ebd4d8: OUTPUT«alive␤2345»
benabik flussence: That's because SVN stores a pristine copy of every file, wholly uncompressed, in a checkout.
flussence unfortunately I can't use git for any of the existing projects at $dayjob because they're dumb :(
sorear soh_cah_toa: just do it the same way the p5 version does. my $Test; method new { $Test //= callsame }
diakopter [Coke]: it is very unapparent from trac.parrot.org how to submit a bug report 23:59
soh_cah_toa oh, neat
benabik Wow. my parrot/.git is 98MB...
[Coke] I think you can cheat and send an email to [email@hidden.address]
flussence: I use git-svn at work.