»ö« 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:18 benabik_ joined 00:22 benabik left, benabik_ left 00:27 unobe left, unobe joined 00:53 scott__ joined
sorear good * #perl6 01:02
01:12 tokuhirom left 01:15 cooper joined, IRCMonkey_ left 01:25 kmwallio joined 01:37 am0c left 01:41 woosley joined
colomon o/ 01:42
01:45 awwaiid left 01:51 awwaiid joined 01:57 woosley left, cosimo left, Khisanth left, domidumont left
colomon ://colomon@melissa/home/colomon/SolsSVN/HWLibs/branches/HWLibs_1_5_stable HWLibssvn co svn+ssh 01:58
01:59 cosimo joined, Khisanth joined, domidumont joined
colomon wow, windowing is really messed up on my mac -- that typed in two windows, the one I wanted to type in and this one too. 01:59
time to reboot, I guess
02:05 colomon left 02:07 broquaint left, lumi___ left, wooden left, PZt left, phenny left, jerome_ left, jnthn left, timotimo left, kfo left, clkao left, charsbar___ left, felher left, huf left, Timbus left, araujo left, hillu left, HarryS left 02:08 HarryS joined, broquaint joined, lumi___ joined, wooden joined, PZt joined, araujo joined, phenny joined, jerome_ joined, jnthn joined, timotimo joined, kfo joined, clkao joined, hillu joined, charsbar___ joined, felher joined, huf joined, Timbus joined 02:09 colomon joined 02:12 pothos left, dju left, LoRe left, silug_ left, [Coke] left, jasonmay left, integral left, colomon left, skids left, whiteknight left, Patterner left, bonsaikitten left, jaldhar left, diakopter left, daemon left, masak left, Grrrr left, p6eval left, rsimoes1 left, bacek_at_work left, odoacre left, Tene left, tadzik left, cosimo left, Khisanth left, domidumont left, broquaint left, lumi___ left, wooden left, PZt left, phenny left, jerome_ left, jnthn left, timotimo left, kfo left, clkao left, charsbar___ left, felher left, huf left, Timbus left, araujo left, hillu left, Su-Shee left, betterworld left, sftp_ left, PerlJam left, avar left, flussence left, abercrombie left, DarthGandalf left, `10 left, jtpalmer left, pnu left, kst left, chra left, Juerd left, pochi left, nebuchadnezzar left, x3nU left, mikemol left, Lorn left, yeltzooo7 left, zamolxes left, Bucciarati left, dukeleto left, tomaw left, sunnavy left, Maddingue left, jrockway left, rafl left, cj left, yves left, aloha left, lestrrat left, Util left, literal left, pyrimidine left, _sri left, moritz left, takesako left, s1n left, shachaf left, doy left, wolverian left, mattp_ left, szbalint left, bbkr left, perimosocordiae left, `patch` left, kmwallio left, y3llow left, eiro left, HarryS left, jlaire left, Woodi left, orafu left, BinGOs left, awwaiid left, pernatiy left, preflex left, baest left, sjn left, felipe left, imarcusthis left, SHODAN left, overrosy left, Vlavv` left, cognominal_ left, mls_ left, ashleydev left, etneg left, kshannon left, Gothmog_ left, TimToady left, Yappoko___ left, scott__ left, sudokode left, _ilbot left, slavik left, aindilis left, c1sung left, djanatyn left, eviltwin_b left, simcop2387 left, jevin left, leontopod left, apejens left, [particle] left, drbean left, BooK_ left, prammer left, japhb left, sirhc left, frettled left, buubot_backup left, ranguard left, krunen left, cooper left, bacek left, nsh left, arnsholt left, renormalist left, rhr left, pmichaud left, ocharles left, athomason left, jfried left, szabgab left, unobe left, jferrero left, Trashlord left, ruoso left, cxreg left, kcwu left, sivoais left, dalek left, revdiablo left, colomon joined, Timbus joined, huf joined, felher joined, charsbar___ joined, hillu joined, clkao joined, kfo joined, timotimo joined, jnthn joined, jerome_ joined, phenny joined, araujo joined, PZt joined, wooden joined, lumi___ joined, broquaint joined, HarryS joined, domidumont joined, Khisanth joined, cosimo joined, awwaiid joined, kmwallio joined, cooper joined, scott__ joined, unobe joined, skids joined, whiteknight joined, jferrero joined, sudokode joined, y3llow joined, pothos joined, pernatiy joined, preflex joined, DarthGandalf joined, Patterner joined, Woodi joined, Trashlord joined, baest joined, simcop2387 joined, sftp_ joined, bonsaikitten joined, ruoso joined, Su-Shee joined, orafu joined, jaldhar joined, jevin joined, overrosy joined, eiro joined, leontopod joined, nebuchadnezzar joined, Vlavv` joined, BinGOs joined, sjn joined, felipe joined, x3nU joined, dju joined, `10 joined, _ilbot joined, jtpalmer joined, mikemol joined, apejens joined, betterworld joined, cognominal_ joined, PerlJam joined, [particle] joined, pnu joined, drbean joined, yves joined, kst joined, aloha joined, chra joined, BooK_ joined, imarcusthis joined, Lorn joined, yeltzooo7 joined, LoRe joined, avar joined, mls_ joined, silug_ joined, perimosocordiae joined, Juerd joined, lestrrat joined, ashleydev joined, pochi joined, slavik joined, prammer joined, flussence joined, etneg joined, zamolxes joined, SHODAN joined, bacek joined, abercrombie joined, kshannon joined, Util joined, Bucciarati joined, dukeleto joined, literal joined, pyrimidine joined, Gothmog_ joined, _sri joined, moritz joined, takesako joined, s1n joined, shachaf joined, nsh joined, tomaw joined, diakopter joined, daemon joined, japhb joined, frettled joined, sunnavy joined, masak joined, arnsholt joined, sirhc joined, cj joined, TimToady joined, buubot_backup joined, Grrrr joined, Maddingue joined, aindilis joined, p6eval joined, rsimoes1 joined, Yappoko___ joined, c1sung joined, cxreg joined, kcwu joined, doy joined, bacek_at_work joined, [Coke] joined, krunen joined, ranguard joined, odoacre joined, sivoais joined, jrockway joined, djanatyn joined, wolverian joined, dalek joined, revdiablo joined, rafl joined, eviltwin_b joined, wolfe.freenode.net sets mode: +vv p6eval dalek, renormalist joined, mattp_ joined, rhr joined, pmichaud joined, szbalint joined, ocharles joined, jasonmay joined, Tene joined, tadzik joined, bbkr joined, integral joined, athomason joined, `patch` joined, sorear joined, szabgab joined, jfried joined, tty234 joined, scottp joined, snarkyboojum joined, cotto joined, Helios joined, risou joined, ingy joined, twinshadow joined, krakan joined 02:13 jlaire joined 02:16 colomon left, skids left, whiteknight left, Patterner left, bonsaikitten left, jaldhar left, diakopter left, daemon left, masak left, Grrrr left, p6eval left, rsimoes1 left, bacek_at_work left, odoacre left, Tene left, tadzik left, krakan left, twinshadow left, risou left, colomon joined, skids joined, whiteknight joined, Patterner joined, bonsaikitten joined, jaldhar joined, diakopter joined, daemon joined, masak joined, Grrrr joined, p6eval joined, rsimoes1 joined, bacek_at_work joined, odoacre joined, Tene joined, tadzik joined, krakan joined, twinshadow joined, risou joined, wolfe.freenode.net sets mode: +v p6eval 02:17 pothos left, dju left, LoRe left, silug_ left, [Coke] left, jasonmay left, integral left, ingy left, snarkyboojum left, cotto left, Helios left 02:18 pothos joined, dju joined, LoRe joined, silug_ joined, [Coke] joined, jasonmay joined, integral joined, ingy joined, snarkyboojum joined, cotto joined, Helios joined, Chillance joined 02:21 pothos left 02:22 pothos joined 02:30 woosley joined 02:34 lutok joined 02:48 lutok left 02:52 scott__ left 02:54 scott__ joined 03:00 whiteknight left 03:03 wolfman2000 joined, benabik joined 03:06 uno_be joined 03:07 unobe left 03:11 kmwallio left 03:29 lutok joined 03:34 lutok left 03:40 gfldex joined 03:49 orafu left, orafu joined 04:05 alvis left 04:27 Su-Shee left 04:28 Su-Shee joined 04:50 odoacre left 04:54 birdwindupbird joined 05:05 revdiablo left 05:13 pothos left, pothos_ joined 05:14 pothos_ is now known as pothos 05:16 odoacre joined 05:17 kaleem joined 05:19 orafu left, jlaire left, HarryS left, Woodi left, BinGOs left, BinGOs joined, Woodi joined 05:20 orafu joined 05:21 HarryS joined 05:23 cooper left
moritz \o 05:25
sorear o|
araujo o/
sorear araujo \o/ 05:26
05:26 jlaire joined
araujo sorear, \o/ 05:27
05:29 jlaire left
[Coke] perl6: .say for Bool; 05:29
p6eval rakudo 0711f9, niecza v14-23-g0699296: OUTPUT«Bool()␤»
..pugs b927740: OUTPUT«Bool␤»
05:32 Khisanth left, khisanth_ joined 05:33 cosimo left, cosimo joined 05:34 revdiablo joined 05:37 JimmyZ joined 05:39 kaleem left, jlaire joined, kaleem joined 05:40 kst` joined 05:41 xinming left 05:42 jtpalmer_ joined 05:43 chra_ joined, xinming joined, Patterner left 05:44 pnu_ joined 05:45 Juerd_ joined, pochi_ joined 05:46 nebuchadnezzar left, yeltzooo7 left, nebuchad` joined, jtpalmer left, kst left, chra left, `10 left, pnu left, pochi left, DarthGandalf left, Juerd left, Juerd_ is now known as Juerd 05:47 yeltzooo joined, DarthGandalf joined
[Coke] niecza: say True.key 05:53
p6eval niecza v14-23-g0699296: OUTPUT«True␤»
[Coke] niecza: say True.value
p6eval niecza v14-23-g0699296: OUTPUT«1␤»
[Coke] niecza: enum cat <mao meow ruff>; say mao.value 05:56
p6eval niecza v14-23-g0699296: OUTPUT«0␤»
[Coke] niecza: enum cat <1 2 ruff>; my $a = cat::1; say $a.value 05:57
p6eval niecza v14-23-g0699296: OUTPUT«===SORRY!===␤␤Two terms in a row at /tmp/xI8Ml46dAV line 1:␤------> enum cat <1 2 ruff>; my $a = cat::⏏1; say $a.value␤␤Parse failed␤␤»
[Coke] niecza: enum cat <1 2 ruff>; my $a = cat::ruff; say $a.value
p6eval niecza v14-23-g0699296: OUTPUT«2␤»
05:58 JimmyZ left 06:01 khisanth_ is now known as Khisanth, birdwind1pbird joined
TimToady niecza: enum cat <1 2 ruff>; my $a = cat::<1>; say $a.value 06:02
p6eval niecza v14-23-g0699296: OUTPUT«0␤»
TimToady tada
06:02 Psyche^ joined 06:03 Psyche^ is now known as Patterner
TimToady niecza: enum cat <mraa term:<⑆> hsss>; say ⑆.value 06:08
p6eval niecza v14-23-g0699296: OUTPUT«1␤»
moritz std: sub a() { }; multi a() { } 06:09
p6eval std 48335fc: OUTPUT«===SORRY!===␤Illegal redeclaration of routine 'a' (see line 1) at /tmp/kspDNPqJ5E line 1:␤------> sub a() { }; multi a⏏() { }␤Check failed␤FAILED 00:01 109m␤» 06:10
TimToady nom: enum cat <mraa term:<⑆> hsss>; say ⑆.value
p6eval nom 0711f9: OUTPUT«===SORRY!===␤Confused␤at /tmp/s0HcGV8N3h:1␤»
[Coke] masak: gist.github.com/404035 - this at least gets the original code running on niecza. 06:11
(now with real enums and some other cleanups)
niecza: gist.github.com/404035 06:12
p6eval niecza v14-23-g0699296: OUTPUT«Hand 1: ␤ ace of spades ␤ three of clubs ␤ king of spades ␤ jack of diamonds ␤ jack of clubs␤Hand 2: ␤ ten of spades ␤ four of diamonds ␤ five of clubs ␤ ten of diamonds ␤ king of hearts␤The first hand is a 'one pair' and the
..second one a 'one pair', so th…
[Coke] must sleep now. 06:13
moritz [Coke]: sleep well. Dream of perfectly scored poker hands.
std: has sub f() { } 06:14
p6eval std 48335fc: OUTPUT«Potential difficulties:␤ 'has' declaration outside of class at /tmp/WEUfe9TdY8 line 1:␤------> has⏏ sub f() { }␤ok 00:01 109m␤»
moritz std: state sub f() { }
p6eval std 48335fc: OUTPUT«ok 00:01 109m␤»
[Coke] rakudo: gist.github.com/404035 06:15
p6eval rakudo 0711f9: OUTPUT«Type check failed in assignment to '$!suit'; expected 'Suit' but got 'Pair'␤ in method BUILDALL at src/gen/CORE.setting:583␤ in method bless at src/gen/CORE.setting:573␤ in method new at src/gen/CORE.setting:558␤ in block <anon> at /tmp/jbfHuXRrTD:80␤ in metho…
[Coke] never tried it on rakudo. ;)
danke. see you today.
moritz niecza: my $x = 3; enum Foo (x => $x); 06:16
p6eval niecza v14-23-g0699296: OUTPUT«===SORRY!===␤␤Enum values must be Int or Str, but got Any␤ at /home/p6eval/niecza/lib/CORE.setting line 1586 (List.gist @ 4) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/Gqsjit3Ote line 0 (ANON @ 2) ␤ at <unknown> line 0 (ExitRun…
TimToady niecza: BEGIN my $x = 3; enum Foo (x => $x); 06:18
p6eval niecza v14-23-g0699296: ( no output )
moritz niecza: enum Foo (x => get()); 06:19
p6eval niecza v14-23-g0699296: OUTPUT«===SORRY!===␤␤Unable to resolve method get in class Any␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/im7EzMyaqf line 1 (ANON @ 2) ␤ at <unknown> line 0 (ExitRunloop @ 0) at /tmp/im7EzMyaqf line 1:␤------> enum Foo (x => get()…
TimToady the value must be known at compile time
moritz method?
TimToady: I know, I just try to explore niecza's error messages 06:20
TimToady an 'is export' maybe
moritz ah, probably method because it re-dispatches get to $*ARGFILES.get
and that is Any
06:24 Patterner left 06:26 Psyche^ joined, Psyche^ is now known as Patterner
TimToady we might be missing a list infix op, M, which merges lazy lists lazily 06:44
it might, in fact, be a metaop
06:47 koban joined, koban left 06:48 takesako left 06:54 takesako joined
TimToady constant @hamming = 1, dedup (@hamming X* 2) M (@hamming X* 3) M (@hamming X* 5); 06:58
06:58 lestrrat left
TimToady your mission is to define infix:<M> so that it works right 06:58
06:59 lestrrat joined, wtw joined
moritz you want Mmin, don't you? 06:59
06:59 lestrrat left
TimToady well, we might define it elsewise 06:59
07:00 birdwind1pbird left
TimToady I'm thinking M<= would include ups, and M< wouldnt 07:00
*dups
or something like that
07:00 lestrrat joined
TimToady then we can get rid of the dedup 07:01
the next trick after that is to make it so that calculating @hamming[1_000_000] doesn't have to keep all the previous values around 07:02
07:03 Chillance left
dalek kudo/nom: 6ed624d | moritz++ | src/Perl6/Actions.pm:
Throw one more typed exception
07:03
TimToady c.f. rosettacode.org/wiki/Hamming_numbers
Python brags a lot in the associated Wikipedia articles about their built-in merge 07:05
I think we could show 'em what a *real* built-in merge looks like :) 07:07
if M defaults to before semantics, and we want the equals case, then it really defaults to M[!after] I guess 07:11
which seems a bit odd
maybe we need a beforesame operator 07:12
moritz urks
dalek ast: 171ad0a | moritz++ | S32-exceptions/misc.t:
test X::Undeclared
ast: 63626c2 | moritz++ | S32-exceptions/misc.t:
another redeclaration test
TimToady I guess we could name it with either 2-way or 3-way comparisons, then it's just Mcmp to get the 'leave dups in case' 07:14
er, 'leave dups in' case 07:15
I suppose it's not really a very good higher-order function if it has to introspect the operator to see if it supports equality, and make it mean dedup if it doesn't 07:17
moritz well 07:18
we can distinguish True/False from Order::{Same,Increase,Decrease}
TimToady that doesn't exactly help
moritz right 07:19
TimToady well, unless we require the Order form for equality
and restrict the other to non-equalities
well, something to sleep on, I think, and maybe try to prototype, which I don't doubt will stress our iterator implementations :) 07:23
at least, it did last time I tried to write a list merge routine...
masak morning, #perl6. 07:27
moritz \o masak 07:28
masak #phasers in 661?
07:28 lestrrat left
moritz 601 I think 07:29
$ date --utc
Wed Feb 8 07:28:48 UTC 2012
and #phasers is 1730 UTC
07:30 lestrrat joined
sorear hello, masak 07:31
masak oh, 17:30! 07:32
that's why I keep missing it ;)
gist.github.com/404035 -- first time I've seen 'where sub' in a subtype declaration. 07:33
possible but doesn't seem necessary here, AFAICS.
anyway, [Coke]++
07:34 nebuchad` is now known as nebuchadnezzar 07:35 abercrombie left
jnthn Morning. It is it. 07:37
Last day of class. Tomorrow: Perl 6 tuits :)
moritz niecza: my $i = 1; m:$i/s/ 07:39
p6eval niecza v14-23-g0699296: OUTPUT«===SORRY!===␤␤Colons may not be used to delimit quoting constructs at /tmp/H9518wDAgQ line 1:␤------> my $i = 1; m⏏:$i/s/␤␤Parse failed␤␤»
moritz niecza: my $i = 1; m:i($i)/s/
p6eval niecza v14-23-g0699296: OUTPUT«Unhandled exception: Unable to resolve method match in class Any␤ at /tmp/WHsMasZ0_I line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3744 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3745 (module-CORE @ 65) ␤ at /home/…
moritz niecza: my $i = 1; say 'S' ~~ m:i($i)/s/ 07:40
p6eval niecza v14-23-g0699296: OUTPUT«#<match from(0) to(1) text(S) pos([].list) named({}.hash)>␤»
moritz niecza: my $i = 0; say 'S' ~~ m:i($i)/s/
p6eval niecza v14-23-g0699296: OUTPUT«#<match from(0) to(1) text(S) pos([].list) named({}.hash)>␤»
sorear what?
:i() shouldn't be parsing at all
moritz why not?
:i(1) sounds perfectly fine 07:41
also it parses the same way as :c($start_from_here), which is also legitim
sorear because that code long predates niecza's constant expression support.
masak oh no not another metaop :) 07:42
though this one sounds cool, I'll admit.
07:45 `10 joined
dalek kudo/nom: a2792b9 | moritz++ | src/ (2 files):
typed exceptions for things that must be known at compile time
07:55
ast: 59f3f35 | moritz++ | S32-exceptions/misc.t:
test exception type for stuff that must be known at compile time
07:56
masak rosettacode.org/wiki/Hamming_numbers#Perl_6 -- "Rakudo Perl 6 (2010.12) does not as of yet have support for for arbitrarily large integer calculations." -- I think that's old info now, no? 08:03
jnthn yeah
masak edits
jnthn We've had big integer support for ages
moritz given ages === months :-) 08:06
jnthn ;) 08:07
Su-Shee good morning everyone. 08:09
sorear Su-Shee! 08:10
good morning!
masak Su-Shee! \o/ 08:14
08:25 woosley left 08:30 sftp_ left
tadzik good morning :) 08:31
08:31 ab5tract joined
masak tadzik! \o/ 08:36
08:39 chra_ is now known as chra 08:45 mj41 joined 08:48 orafu left
moritz niecza: my ($x, $y) = (2**30, 1); printf "%32b\n", +^$x +& $y; 08:48
p6eval niecza v14-23-g0699296: OUTPUT« 1␤» 08:49
08:50 orafu joined
sorear sleep 08:51
moritz perl6: my ($x, $y) = (2**30, 1); say +^$x +& $y; 08:54
p6eval pugs b927740, niecza v14-23-g0699296: OUTPUT«1␤» 08:55
..rakudo a2792b: OUTPUT«-1152921504606846975␤»
masak Rakudo does like negative numbers... 08:56
moritz I think I have a fix for it
and it's so stupid that I wonder nobody has caught it before :/ 08:58
masak sounds like most fixes... :) 09:06
so, is it a fix in Rakudo, not libtommath?
moritz nqp 09:08
masak heh. I like this. in Perl 6, I have to write 'say ""' because just 'say' is an error (except not right now in Rakudo) to prevent Perl 5 thinkos with implicit $_. in Perl 5 I have to write 'say ""' instead of 'say' because I'm making the *reverse* thinko and not even considering that 'say' defaults to $_. :) 09:09
life in the day of a Perl 6 hacker trying to use Perl 5.
moritz oh, but the fix breaks something else 09:11
hm
09:18 mj41 left 09:19 mj41 joined
moritz it seems that my detection of when then result of a binary bitop is negative is wrong 09:28
masak is it possible that the flaw in you in your detection of when the result of a binary bitop is negative is fixable? :) 09:31
g'ah, s/in you /
language. it nests well.
moritz it is possible, yes
jlaire "life in the day" ... sounds interesting 09:32
masak jlaire: I was all "hey, this is Perl 5, I can do `say;` and not `say "";` like I have to in Perl 6!"
undefined $_ warnings were my reward.
moritz I just hope that the the C compiler constant-folds the heck out of my code :-) 09:33
masak C compilers are usually good at such things.
moritz I know
jlaire yep, but "day in the life" is the usual saying
wondered if it's a thinko or some deep pun 09:34
moritz note to self: - is not allowed in C identifiers. _ is.
masak I recently learned that the prime 31 is popular in hash-code algorithms, because various compilers take '$x * 31' and turn it into '$x <+ 5 - $x', a bit-shift and a subtraction, which is cheaper than a multiplication.
jlaire: oh, argh. pre-coffee thinko. 09:35
jlaire at some point, gcc was over enthusiastic about replacing multiplication with shifts and additions/subtractions
moritz ... except when it isn't cheaper
jlaire it was a pessimization on some AMD processors
iirc
masak right. pipelining and stuff changes the game a bit.
no pun intended.
moritz non taken. 09:36
09:36 dakkar joined
tadzik 'right', 'bit' ;) 09:39
09:41 orafu left, orafu joined 09:42 pernatiy left
dalek p: 19f1639 | moritz++ | / (2 files):
[bigint] fix detection of negative numbers from binary ops

This should fix RT #109740
09:43
09:44 daxim joined
moritz it's better to just consider a single bit than the whole digit :-) 09:45
and the parens were wrong before anyway 09:46
09:46 ab5tract left 09:49 Patterner left 09:52 tarch joined
masak moritz++ 09:54
moritz executive summary: we need many more tests for bitops
09:55 tarch left, kst` is now known as kst, tarch joined
masak today's autopun: Interviewer: "What do you say, Mr. Kinnock, to all those people who accuse you of blatant electioneering?" -- Neil Kinnock: "Vote for me!" 10:01
10:02 sftp joined 10:06 Psyche^ joined, Psyche^ is now known as Patterner, ab5tract joined
moritz gist.github.com/1767768 10:09
masak :) 10:13
trying to make the research for my lightning talk easier? :)
moritz akshually I started collecting before we discussed the talk the first time 10:14
masak oh ye of much self-reference. get thee to an auto-punnery. 10:16
10:19 Patterner left 10:22 Psyche^ joined, Psyche^ is now known as Patterner
dalek kudo/nom: 0a3ee96 | moritz++ | tools/build/NQP_REVISION:
bump NQP revision to get RT #109740 fix
10:35
10:35 xinming left
dalek ast: 45d427d | moritz++ | S03-operators/bit.t:
RT #109740, big-ish binary bit ops
10:35
10:37 Patterner left
masak moritz: I don't think the Banach-Tarski one is an autopun. either it isn't, or I'm missing something about the Banach-Tarski theorem. 10:38
10:38 xinming joined
masak defender of the purity of the definition of "autopun" 10:38
moritz masak: well, it's more of a meta joke than an autopun 10:39
jlaire what's the definition
10:40 mj41 left
masak jlaire: "pulling up" mentioning a phenomenon into use of the phenomenon. 10:41
jlaire mmkay
masak jlaire: example: "I got these pills to give me strength, but it was no good. I can't get the bottle open. :-/" 10:42
jlaire aha, I get it now
thanks :)
masak yes, the example works better than the explanation :)
10:43 scott__ left 10:45 Psyche^ joined, Psyche^ is now known as Patterner 10:46 lutok joined
masak another one: "What's the difference between ignorance and apathy?" -- "I don't know, and I don't care." 10:46
jlaire hehe 10:47
10:48 scott__ joined
masak the other day, I saw the tweet "Does the twittersphere understand the concept of rethorical questions?" 10:49
I was on the verge of replying "Guess not!", but it felt too obvious. :) 10:50
moritz there's a nice one that only works in German, unfortunately 10:54
"Wiseen ist Macht" -- "Ich weiss nichts" -- "Macht nichts!"
masak moritz: your gist is the top Google result for "autopun".
moritz masak: woah.
jlaire hehe
needs an urbandictionary entry
10:54 mj41 joined
masak moritz: "Knowldege is power" -- "I don't know [about that]" -- "That doesn't work!" 10:55
moritz: did I get that right?
moritz masak: no
masak dang :)
I'm trying to learn German by passive absorbtion. it's a slow process.
moritz masak: "macht nichts" means "doesn't matter" (but of course also puns "Macht" eq "power")
masak ah! that was the missing piece :) 10:56
that's a pun; don't know about it being an autopun :)
verging on one, certainly. if you consider the first line to be the mention, and the rest to be the use. 10:57
moritz well, it's an edge case
masak right.
ah, so de:"macht nichts" is sv:"det gör inget" 10:58
phenny: "macht nichts!"?
phenny masak: "does not matter!" (de to en, translate.google.com)
masak phenny: "det gör inget!"?
phenny masak: "it does not matter !" (sv to en, translate.google.com)
10:58 scott__ left
moritz phenny: "gör"? 10:59
phenny moritz: "doing" (sv to en, translate.google.com)
moritz "Unable to remove the selected object\n[Error: null]" # I /love/ such error messages 11:00
masak "Dissecting a joke is like dissecting a frog: you'll only make a mess, and the frog dislikes it."
moritz that's from a commerical optics simulation program
masak moritz: did I tell you about the worst user error I've ever seen?
moritz masak: no 11:01
masak "Child killed. Cause: could not connect to FTP server." 11:02
user was allegedly very distraught.
worse than being unintentionally uninformative is probably to unintentionally horrify people. 11:04
...was it something I said...? :) 11:20
moritz maybe it was something you didn't say :-) 11:22
std: sub f() 11:24
p6eval std 48335fc: OUTPUT«===SORRY!===␤Malformed block at /tmp/D5lQ2mXfkT line 1 (EOF):␤------> sub f()⏏<EOL>␤Parse failed␤FAILED 00:01 108m␤»
11:28 lutok left 11:39 benabik left 11:54 am0c joined 12:06 fasad joined 12:10 Trashlord left 12:18 tarch left 12:39 gfldex left 12:42 benabik joined 12:45 orafu left, orafu joined, pernatiy joined, mtk joined 12:47 gfldex joined, am0c left 12:48 am0c joined 12:54 skids left 12:56 Tedd1 joined 12:57 bluescreen10 joined 13:01 WAZ joined
WAZ Wesh! 13:01
13:02 WAZ left
masak .oO( drive-by weshing ) 13:05
dictionary.reference.com has "wesh" as an archaic variant of "washed", used by Chaucer. 13:06
13:21 kaleem left
moritz perl6: class A { method m() { say 'A.m' } }; class B is A { has $.m = 'foo' }; say B.new.m 13:24
p6eval pugs b927740, rakudo 0a3ee9, niecza v14-23-g0699296: OUTPUT«foo␤»
13:24 kaleem joined 13:25 gfldex left
masak makes sense, methinks. 13:25
you asked for a method, you gots one. :)
moritz +1
benabik has $.m == has $!m; method m() { $!m } # ?? 13:26
masak to a first approximation, yes.
tadzik ywis
moritz benabik: not quite, in case there's already a method m present
13:26 gfldex joined
moritz which is why I felt the need to check 13:26
masak ...present in the same class declaration.
moritz nom: class A { has $.x; method x() { 'foo' } }; say A.new.x
p6eval nom 0a3ee9: OUTPUT«foo␤»
moritz perl6: class A { has $.x; method x() { 'foo' } }; say A.new.x 13:27
p6eval niecza v14-23-g0699296: OUTPUT«===SORRY!===␤␤Two definitions of method x (see line 1) at /tmp/Cqn6SNUFsU line 1:␤------> class A { has $.x; method x⏏() { 'foo' } }; say A.new.x␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/COR…
..pugs b927740, rakudo 0a3ee9: OUTPUT«foo␤»
benabik I would vaguely expect that has $.m with a method m would cause an error.
13:27 abercrombie joined
masak benabik: there was an RT ticket recently discussing similar issues. 13:29
benabik masak: Well, then, I guess I'm just catching up.
masak I'd say so :) 13:30
13:31 am0c left, am0c joined
moritz I'm now trying to merge Exception and X::Base 13:32
which is totally not going to work as I hope it does :/
masak :/ 13:36
moritz is still not used to the fact that if you have 24 CPUs, a CPU usage of < 5% can still mean that one core is working non-stop 13:37
benabik That's a lot of CPUs.
jnthn Must be awesome for parallel testing though :)
moritz sadly I don't have a proper dev environment on that machine
jnthn
.oO( core blimey! )
moritz I should change that soon
benabik load can be a better indicator there, since a load of 1 means that 1 process wants the CPU at all times. 13:38
moritz oh, and they are only 12 "real" cores, plus hyperthreading
benabik: I don't think windows reports load average
benabik moritz: :-(
masak benabik: ah, found the ticket: rt.perl.org:443/rt3/Ticket/Display...?id=108670 13:40
moritz anyway, that box also has 90G of memory, so it should be enough to run 24 spectests in parallel too
masak 90GB! that's, like, sixty-four thousand 1.44 MB diskettes! 13:41
benabik moritz: Gah! 13:42
moritz masak: the case of that machine isn't small, but I don't think that many diskettes fit in there :-)
13:43 colomon left
masak so... storage must've gotten smaller in the past decades. 13:44
this is amazing! 13:45
;)
moritz :-)
13:45 colomon joined
moritz jnthn: which perl are you using for building parrot and rakudo? 13:47
jnthn moritz: ActivePerl 64-bit build
cognominal_ ya une sociale ce soir?
jnthn cognominal_: oui oui, une sociale avec bier!
masak cognominal_: tout les soirs!
touts* 13:48
cognominal_ oops
masak hugs cognominal_, good French user :)
jnthn moritz: If the autosizes branch ain't merged in Parrot yet, it'll want a --parrot-option=--intval="long long"
masak .oO( pardon his French ) 13:49
jnthn: aussi, je pense que devrait être "bière" 13:51
s/que/que ce/
cognominal_ indeed
jnthn Je suis une merdique en francais :P
masak .oO( merdiquocracy ) 13:52
cognominal_ merdique is the adjective.
masak kinda proving his point :P
jnthn How...self-fulfilling :P
moritz autopun! 13:53
jnthn
.oO( is it an auto-pun? :) )
masak yes :)
so is "I speak the English a poor."
[Coke] masak: that where sub is YOURS. :P
masak [Coke]: dang! :P
cognominal_ "merder" is the verb and "merde" the noun. Useful word like "shit" in English.
jnthn Great, my first successful autopun and it's in a language I don't even really speak :P
[Coke] masak: (it's old code. probably a fossil. I'll try to sixify it more as I make it work better. 13:54
masak \o/
maybe there's a special sub-category of autopun where mention coincides with use.
jnthn
.oO( sub-optimal )
PerlJam cognominal_: so if I hear a french-speaking person talking about "murder", maybe they're really talking about "merder"? :) 13:55
though the french tend to drop trailing consonants, so I guess I wouldn't hear the trailing "r" in "merder" 13:56
masak the first 'e' in 'merde' sounds quite different to the 'u' in 'murder' to my ear. 13:57
arnsholt That's because it's a different vowel, probably ^_^
PerlJam masak: aye, but americans aren't that sensitive to subtle differences ;)
masak troo
masak loves subtle differences <3
jnthn lоvеs thеm alsо :) 14:01
PerlJam jnthn: how do you pronounce that?
;)
jnthn Palletedly 14:02
14:02 Trashlord joined
PerlJam gets out his paint brushes 14:02
14:07 orafu left, orafu joined
[Coke] perl6: enum S <a b>;enum R <c d>;class C {has S $.s;has R $.r;}my $a=C.new(a,c); 14:07
p6eval niecza v14-23-g0699296: OUTPUT«===SORRY!===␤␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/DdowlGKPY5 line 1:␤------> m R <c d>;class C {has S $.s;has R $.r;}⏏my $a=C.new(a,c);␤␤Parse failed␤␤»
..rakudo 0a3ee9: OUTPUT«===SORRY!===␤Confused␤at /tmp/vVUBJln964:1␤»
..pugs b927740: OUTPUT«*** No such subroutine: "&enum"␤ at /tmp/rCSnf6CUs7 line 1, column 1-13␤»
[Coke] perl6: enum S <a b>;enum R <c d>;class C {has S $.s;has R $.r;};my $a=C.new(a,c); 14:08
14:08 skids joined
p6eval pugs b927740: OUTPUT«*** No such subroutine: "&enum"␤ at /tmp/7infOyHZDS line 1, column 1-13␤» 14:08
..niecza v14-23-g0699296: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/MhSx5mUfo7 line 1:␤------> <c d>;class C {has S $.s;has R $.r;};my ⏏$a=C.new(a,c);␤␤Unhandled exception: Excess arguments to Mu.new, used 1 of 3 positionals␤ at /home/p6eval/…
..rakudo 0a3ee9: OUTPUT«Default constructor only takes named arguments␤ in method new at src/gen/CORE.setting:561␤ in block <anon> at /tmp/nBN5JaD17i:1␤ in <anon> at /tmp/nBN5JaD17i:1␤»
masak was gonna say 14:09
it'd be .new(:s(a), :r(c))
[Coke] perl6: enum S <a b>;enum R <c d>;class C {has S $.s;has R $.r;};my $a=C.new(:s<a>,:r<c>);
p6eval rakudo 0a3ee9: OUTPUT«Type check failed in assignment to '$!s'; expected 'S' but got 'Str'␤ in method BUILDALL at src/gen/CORE.setting:583␤ in method bless at src/gen/CORE.setting:573␤ in method new at src/gen/CORE.setting:558␤ in block <anon> at /tmp/7628q7AmMX:1␤ in <anon> at /tm…
..niecza v14-23-g0699296: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/nQ4uL8sRzr line 1:␤------> <c d>;class C {has S $.s;has R $.r;};my ⏏$a=C.new(:s<a>,:r<c>);␤␤»
..pugs b927740: OUTPUT«*** No such subroutine: "&enum"␤ at /tmp/WTaeRiBziJ line 1, column 1-13␤»
masak not <a>, a
[Coke] right, because <> leaves strings, not literals.
Danke.
masak right.
14:13 orafu left, orafu joined 14:15 colomon left
dalek kudo/nom: 15dc125 | moritz++ | src/core/Exception (2 files):
eliminate X::Base

It is replaced by Exception as a base class, and by X::AdHoc for die with non-Exception arguments
14:15
masak \o/ 14:16
14:21 orafu left, orafu joined
dalek ecs: 008dddb | moritz++ | S32-setting-library/Exception.pod:
[S32::Exception] update to current state of the art

in particular, X::Base is now called Exception, and some unneeded stuff has been removed
14:25
masak I like the commit overall, but I disagree that backtraces are very ".gist"-y. 14:30
that's the probalem with the current backtraces. they're mostly just screenfuls of noise.
not printing them at program exit would be less annoying that printing them.
than* 14:31
moritz I disagree. They often help me to locate errors. 14:33
14:33 PacoAir joined
moritz masak: would you be happier if X::AdHoc surpressed backtraces in .gist? 14:34
14:39 am0c left
masak marginally; that still wouldn't help against all the usual exceptions, IIUC. 14:40
I'm not annoyed mostly by the backtraces non-standard errors that I throw deliberately.
I'm annoyed by backtraces. 14:41
14:41 am0c joined
masak they're twice as long or more than they should be, they contain a lot of internal routines that I don't care about because they don't add any useful information, and they scroll away the actual error message, which is what I care about. 14:42
14:42 zb joined 14:43 au joined
moritz so if backtraces contained less noise and came before the message, would you stop disliking them? 14:43
14:43 orafu left, orafu joined
masak those two things would make them more useful. I don't know if I would like them, but I would at least consider liking them again. 14:44
[Coke] not reporting on internal bits would be nice. (though I can see the need to enable them if you're trying to debug core.) 14:45
masak compare Perl 5, which doesn't do backtraces (except Moose). I have no trouble using the information I *do* get from Perl 5 to find my errors.
moritz well, debugging core is not a problem; you can use a custom exception handler (or --ll-exception) for that 14:46
[Coke] I prefer backtraces to a single error.
masak backtraces have a tendency to make me sad just by appearing. and the ones that Rakudo give me are near-useless.
moritz the backtrace information is available in the Exception object anyway
masak I usually have a pretty good idea of which path my execution has taken.
moritz masak: I have the opposite experience: in rakudo often enough single line numbers are unreliable, so it helps to have several line numbers available, one of which usually leads in the right direction 14:47
masak line numbers are unreliable? 14:52
that sounds like the core problem, not something to be worked around by looking at the backtrace.
[Coke] For larger codebases with multiple ways to execute the same code, the backtraces can be very helpful. 14:58
masak conceded. 14:59
here -- let me show you: gist.github.com/1770312 15:01
moritz masak: yes, we know that for-loops generate horrible backtraces in rakudo
masak: that must be fixed
masak I count 1 line with the error message, and then 18 useless lines mixed up with two useful lines. 15:02
moritz but I don't see that as a general problem with the design of backtraces
masak the for loops help exemplify the issue, but even random anonymous blocks are pretty useless.
benabik Isn't there already a way to hide subs from the backtrace? Should eager, gimme, and reify use it? 15:03
masak more behind-the-scenes fiddling of the kind that Carp performs to make things look very natural and effortless, is needed.
maybe we could even take a leaf from Carp. 15:04
moritz I've experimented with showing only routines
and also with filtering out any backtrace lines from CORE.setting 15:05
the problem with that is that it makes errors thrown from lazy lists nearly impossible to track down
consider sub generate { 1, 2, &generator ... * }; ... ; for generate() { } 15:07
now if &generator dies, sub generate doesn't appear in the call chain at all
and that can easily go through several levels 15:08
[Coke] I had a similar issue today with niecza, a comparator threw an error, and all I got was this useless backtrace.
moritz and if &generator is a block not a routine, and you filter out all blocks, you have no idea where the error came from 15:09
[Coke] (but, to crib from masak, let's fix the backtraces, not hide them ;)
flussence
.oO( perl6 really needs Carp )
[Coke] moritz: what about hiding all the intermediate blocks?
(but not the root cause) 15:10
moritz [Coke]: that might be worth trying 15:11
15:11 snearch joined, spine_ joined
moritz nom: sub f() { die "foo" }; sub g() { f}; try g; say $!.backtrace.concise 15:12
p6eval nom 15dc12: OUTPUT« in sub f at /tmp/WAhGQx188q:1␤ in sub g at /tmp/WAhGQx188q:1␤␤»
moritz nom: sub f() { for 1..10 { die "foo" } }; sub g() {for 1..10 { f }}; try g; say $!.backtrace.concise
p6eval nom 15dc12: OUTPUT« in sub f at /tmp/zOlZtxO1zz:1␤ in sub g at /tmp/zOlZtxO1zz:1␤␤»
[Coke] anyone else having trouble with github? 15:18
15:18 am0c left
[Coke] twitter says yes. 15:19
moritz too
and I just shut down my VPN because I thought it was to blame :-)
[Coke] back, it seems. 15:20
15:20 not_gerd joined
not_gerd hello, #perl6 15:20
not_gerd broke github just now :(
moritz how?
flussence status.github.com/ 15:21
not_gerd connection times out, and then even the webpage no longer worked...
flussence: thanks... 15:22
moritz not_gerd: I kinda doubt it was your fault :-)
not_gerd well, the timeming did correspond pretty closely to my push ;)
^timing 15:23
moritz correlation != causation
frettled moritz: that's the third time I've seen that used, or used that, today :D 15:24
masak "Observation bias is very common -- I keep seeing it everywhere." 15:25
not_gerd moritz: the egocentric in me disagrees - OF COURSE itwas me who broke it!
15:25 wtw left
moritz not_gerd: conratulations, you are human :-) 15:25
masak I knew it! 15:26
15:27 gfldex left, kaare_ joined, au is now known as au|to|pun, au|to|pun is now known as au
[Coke] masak: www.smbc-comics.com/?id=2444 15:28
masak :)
[Coke] github++ (just used the report/fork/pull for great justice.) 15:29
not_gerd jnthn: where would I get a class_handle from for use with attr_funcs->hint_for? 15:31
jnthn: alternatively, is there another way to identify attributes by numeric id?
bbkr can roles be composed into self (not class but object instance)? if I do "self does $some_role" then methods from role are not visible as self.name_of_method_from_role 15:34
this was legal syntax in pre-NOM era 15:35
15:36 tokuhirom joined 15:38 kaleem left
bbkr rakudo: class A {}; my $a = A.new; $a.^does( role { method foo { say "OK"; } } ); $a.foo # this one also doesn't work 15:40
p6eval rakudo 15dc12: OUTPUT«Method 'foo' not found for invocant of class 'A'␤ in block <anon> at /tmp/UH9icljptM:1␤ in <anon> at /tmp/UH9icljptM:1␤»
[Coke] b: class A {}; my $a = A.new; $a.^does( role { method foo { say "OK"; } } ); $a.foo # this one also doesn't work 15:41
p6eval b 1b7dd1: OUTPUT«Method 'foo' not found for invocant of class 'A'␤ in main program body at line 22:/tmp/Olb85F3CJ_␤»
not_gerd nom: say (5 but role { method foo { 42 } }).foo
p6eval nom 15dc12: OUTPUT«42␤»
bbkr pre-NOM rakudo required ^compose on role, but I see that it's not longer needed 15:42
masak no, .^compose is for classes, AFAIK. 15:43
jnthn not_gerd: class_handle is just the type object of the class that defined the attribute
No, that's the way you get the hints.
15:43 Psyche^ joined
jnthn .^does is *asking* if a type does a role, not composing it :) 15:44
bbkr maybe i will rephrase my question: how can I add method to object instance (not whole class)?
15:44 kaleem joined
jnthn nom: class A { method foo() { self does role { method lol { 42 } } } }; my $x = A.new; $x.foo; $x.lol; 15:45
p6eval nom 15dc12: ( no output )
jnthn nom: class A { method foo() { self does role { method lol { 42 } } } }; my $x = A.new; $x.foo; say $x.lol;
p6eval nom 15dc12: OUTPUT«42␤»
[Coke] nom: class A { method foo() { self does role { method lol { 42 } } } }; my $x = A.new; $x.foo; say $x.lol; my $y = A.new; say $y.lol; 15:46
p6eval nom 15dc12: OUTPUT«42␤Method 'lol' not found for invocant of class 'A'␤ in block <anon> at /tmp/HioWPX7Kdt:1␤ in <anon> at /tmp/HioWPX7Kdt:1␤»
[Coke] (just to check the negative)
jnthn *nod* :)
15:46 Patterner left, Psyche^ is now known as Patterner
dalek kudo/nom: ef61a32 | moritz++ | src/core/Exception.pm:
experiment a bit with backtrace printing

inpsired by a discussion with masak++, [Coke]++ and a few others
15:47
tadzik 'evening
moritz \o tadzik 15:48
masak by my count, TimToady++ has sent 2499 individual emails to p6l since it was created. 15:49
tadzik for a short while, I've actually considered reading the repo :) 15:50
bbkr rakudo: class A { method foo() { my $r = role { }; $r.^add_method( "lol", method { 42 }); self does $r; }; }; my $x = A.new; $x.foo; $x.lol;
p6eval rakudo 15dc12: OUTPUT«Method 'lol' not found for invocant of class 'A+{<anon>}'␤ in block <anon> at /tmp/y98T95Zpal:1␤ in <anon> at /tmp/y98T95Zpal:1␤»
masak tadzik: I plan to read through those emails. I wasn't paying attention in the early days, and I want to learn more about that time.
bbkr why above one does not work? is it illegal to add_method to roles? 15:51
moritz bbkr: you never composed $r
masak decommutes
skids nom: my subset foo of Int where { $^n % 2 }; my foo $i; my $j = 1; $i := $j; $i.say; $j = 2; $i.say; # and the spec says?
p6eval nom 15dc12: OUTPUT«1␤2␤»
bbkr rakudo: class A { method foo() { my $r = role { }; $r.^add_method( "lol", method { 42 }); $r.^compose; self does $r; }; }; my $x = A.new; $x.foo; $x.lol; 15:52
p6eval rakudo 15dc12: OUTPUT«Method 'lol' not found for invocant of class 'A+{<anon>}'␤ in block <anon> at /tmp/fjJspmkBfw:1␤ in <anon> at /tmp/fjJspmkBfw:1␤»
not_gerd will be back later with more questions about 6model...
15:52 not_gerd left
moritz bbkr: also I'm not sure you're allowed to modify 'self' that way without marking it as 'rw' 15:53
rakudo: class A { method foo($self is rw:) { my $r = role { }; $r.^add_method( "lol", method { 42 }); $r.^compose; $self does $r } }; my $x = A.new; $x.foo; $x.lol 15:54
TimToady or 'copy'
p6eval rakudo 15dc12: OUTPUT«Method 'lol' not found for invocant of class 'A+{<anon>}'␤ in block <anon> at /tmp/Ah0wrJNfwy:1␤ in <anon> at /tmp/Ah0wrJNfwy:1␤»
moritz hm
15:54 uno_be left
jnthn It's because of a bug in how .^ is implemented, which is causing premature punning 15:54
If you write $r.HOW.add_method($r, ...) then it probably works out. 15:55
TimToady well, roles *are* supposed to be considered immutable, and the compiler is allowed to assume that immutable things don't change
15:55 unobe joined
moritz rakudo: class A { method foo($self is rw:) { my $r = role { }; $r.add_method($r, "lol", method { 42 }); $r.compose($r); $self does $r } }; my $x = A.new; $x.foo; $x.lol 15:55
p6eval rakudo 15dc12: OUTPUT«Method 'add_method' not found for invocant of class '<anon>'␤ in <anon> at src/gen/Metamodel.pm:1160␤ in method foo at /tmp/OSkUKjKlSw:1␤ in block <anon> at /tmp/OSkUKjKlSw:1␤ in <anon> at /tmp/OSkUKjKlSw:1␤» 15:56
15:56 rsimoes joined
jnthn .HOW 15:56
moritz rakudo: class A { method foo($self is rw:) { my $r = role { }; $r.HOW.add_method($r, "lol", method { 42 }); $r.HOW.compose($r); $self does $r } }; my $x = A.new; $x.foo; $x.lol
p6eval rakudo 15dc12: ( no output )
moritz rakudo: class A { method foo($self is rw:) { my $r = role { }; $r.HOW.add_method($r, "lol", method { 42 }); $r.HOW.compose($r); $self does $r } }; my $x = A.new; $x.foo; say $x.lol
p6eval rakudo 15dc12: OUTPUT«42␤»
moritz the anser! 15:57
*answer
bbkr thanks everyone and goes back to work on new shiny JSON::RPC for nom :) 15:58
jnthn TimToady: And probably does. I guess meta-programming is kinda an escape hatch. Though the MOP could still forbid modification after composition time.
Which just means you gotta use the BEGIN escape hatch too :) 15:59
TimToady One life in the day of Ivan Denisovich was not worth very much, unless your name happened to be Josef... 16:01
bbkr this role example by moritz works without compose too, i'm not sure what's the difference. 16:03
skids
.oO(perhaps a useful behavior for scenario I pasted above would be for subsets to validate constraints when they get, and so become lazily generated Failures if something has pulled the rug out from under them)
jnthn bbkr: Not very much in this particular case.
moritz the difference is that we generally require new type obejcts to be composed before you can use them reliably 16:04
16:04 colomon joined
jnthn But you should call compose after changes generally 16:04
16:04 colomon left
jnthn Because it's part of the protocol to do so :) 16:04
16:04 colomon joined
jnthn my work here is done 16:07
decommute \o/ &
colomon o/ 16:09
TimToady Physicist: After the Big Rip, nothing will be left but the dark energy. Civilian: No matter! 16:21
araujo :) 16:22
16:22 tokuhirom left 16:23 birdwindupbird left
bbkr how can I distinguish if I'm dealing with class definition or class instance? for example: my $x = Int; my $y = 33; - both returns Int() as .WHAT 16:27
colomon niecza: my $x = Int; say $x.defined; my $y = 33; say $y.defined 16:28
p6eval niecza v14-23-g0699296: OUTPUT«False␤True␤»
PerlJam bbkr: why do you need to? 16:29
16:34 kaleem left, kaleem joined
bbkr PerlJam: I've noticed that "self" behaves in BUILD as class definition and in regular method as class instance. I just want to confirm my observations 16:34
PerlJam ah
16:35 kaleem left 16:36 kaleem joined
TimToady moritz, masak: I still think backtraces should go to a temporary disk file by default, with a link in the error message 16:41
PerlJam It's too bad there isn't stdin, stdout, stderr, and stdbacktrace 16:42
[Coke] -1 on leaving files lying about. (You may not even be able to)
TimToady in the old days, they saved your backtrace on disk--it was called "core" :)
+1 on automatically cleaning up old ones 16:43
or just overwriting the last one
if the specified location is not writable, then of course you can put it somewhere else, up to and including on stderr 16:44
if you write out enough info, you can start up Tardis on it :)
PerlJam perl6 --launch-debugger-on-error 16:45
TimToady --checkpoint-on-error
run the debugger later
--hang-and-wait-for-network-connection-to-debugger :) 16:47
moritz perl6 --autodebug-for-me
PerlJam --ask-#perl6-for-help
benabik perl6 --dwim # you don't even have to pass the script name ;-)
TimToady putting the backtrack into a linkable location will make it easier to paste into a bug tracker, maybe 16:48
and you can automatically put all the other info that you wish you had about the configuration but people never think to add 16:49
PerlJam --create-nopaste-on-error
that would make an interesting and useful module I think
TimToady SORRY, you divided by 0 there at line 42; backtrace on at http:gist.github.com/1234567 16:50
bbkr I found very weird bug when role methods are leaking to other object instances if composed in BUILD: 16:51
rakudo: class A { submethod BUILD (:$name){ my $r = role { }; $r.HOW.add_method( $r, $name, method { 42 }); self does $r; }; }; my $x = A.new(name=>"foo").foo; A.new(name=>"bar").foo;
p6eval rakudo ef61a3: ( no output )
16:51 wolfman2000 left
TimToady s/on at/at/ 16:51
bbkr the second A instance should hot have foo method
s/hot/not/ 16:52
PerlJam bbkr: bbkr: why not? 16:54
16:54 gfldex joined
TimToady [Coke]: in any case, in the Land of Perl, "it might not work" is considered a poor excuse for not trying 16:55
bbkr PerlJam: compare with Coke's isolation example: 16:57
rakudo: class A { method foo() { self does role { method lol { 42 } } } }; my $x = A.new; $x.foo; say $x.lol; my $y = A.new; say $y.lol;
p6eval rakudo ef61a3: OUTPUT«42␤Method 'lol' not found for invocant of class 'A'␤␤»
TimToady punishing the innocent with the guilty is more a hallmark of the Turing Tarpit languages... 16:58
colomon: I note that Unicode has special glyphs for Bag ops 17:00
bbkr PerlJam: in my example both object instances of A class have different roles applied, one object instance should not see methods from role composed into other instance
TimToady .u ⊍⊎
phenny U+228D MULTISET MULTIPLICATION (⊍)
U+228E MULTISET UNION (⊎)
colomon TimToady: oh my....
TimToady $set1 ⊎ $set2 makes some sense 17:01
17:01 pernatiy left
TimToady since ordinary union would remove dups and return a set instead 17:01
also, you get <a b b c> ⊎ <c a b> for free 17:02
.u ⊌
phenny U+228C MULTISET (⊌)
TimToady not sure howyou're supposed to use that one... 17:03
moritz fsvo free
TimToady well, fits in with the coercing operator heritage quite nicely
Google: Your search - ⊌ - did not match any documents. 17:04
PerlJam In my font that character kind of looks like the Transformers icon
moritz it's only used in undocuments 17:05
TimToady I guess that's supposed to be a left arrow inside, so maybe it's an assignop
17:08 MayDaniel joined
sorear good * #perl6 17:13
17:14 not_gerd joined
moritz }o{ 17:16
not_gerd moritz: I spot two guys using their noses to balance a ball between their faces 17:19
17:19 not_gerd left 17:20 not_gerd joined
moritz not_gerd: my ears are just over-sized and curly :-) 17:21
cognominal_ ...better than to balance a face between their balls. 17:23
tadzik ohh
cognominal_ sorry I could not resist 17:24
tadzik :)
leontopod how many operators does Perl 6 have now?
benabik All of them.
leontopod hundreds?
tadzik more like dozens, I guess
perlcabal.org/syn/S03.html may help you counting
leontopod There is a Perl 6 Periodic Table of Operators 17:25
I should google image search that
cognominal_ ho, I did not even read last Larry Wall posts, but reading its unicode strings, there is some Jungian synchronicity with my joke. 17:29
moritz $ ack -ho '(in|pre|post)(circum)?fix:<[^>]+>' src/core/ |sort -u|wc -l 17:33
89
of course that's just a rough estimate 17:34
so O(100)
sorear #phasers in -6 !!! 17:36
leontopod: Infinitely many, since we have productive families of operators. :) 17:37
although there's not a lot of point to RRRRRRRRRRR+
17:50 spine_ left 17:51 kaleem left 17:53 zby_home joined 17:54 mj41 left
skids leontopod: www.perlfoundation.org/perl6/index.cgi?witch 17:58
18:03 bluescreen10 left 18:04 leprevost joined 18:05 dakkar left
dalek ecs: 815b7bf | larry++ | S32-setting-library/Exception.pod:
Fossil found by JimmyZ++
18:11
[Coke] TimToady: (no excuse) fair enough. Also, I program in cold fusion for a living, you probably want to avoid taking clues from my preferences. ;) 18:15
18:18 bluescreen10 joined
sorear heh. I forgot that I gave masak a commit bit. 18:20
18:23 daxim left
[Coke] reads a presentation with the text: 30-second snapshots in IPv4 Hilbert-curve space 18:27
sorear mmm Hilbert curves. 18:28
[Coke] www.nanog.org/meetings/nanog54/pres.../Cowie.pdf for sorear. 18:29
sorear "7 November 2012" on p.3 18:30
18:33 fasad left 18:35 Patterner left, abercrombie left, benabik left
PerlJam presentations from the future have got to be useful for something. 18:35
sorear fascinating 18:41
dalek kudo/usage-prints-WHY: 0683298 | moritz++ | src/ (2 files):
more typed exceptions
rakudo/usage-prints-WHY: 5fcfed5 | moritz++ | src/Perl6/Actions.pm:
rakudo/usage-prints-WHY: fix thinko
18:41 dalek left, dalek joined
dalek kudo/nom: 2251cbb | tadzik++ | src/core/Main.pm:
Make default USAGE print .WHY for the documented candidates
18:41
18:41 ChanServ sets mode: +v dalek 18:42 mj41 joined, benabik joined 18:43 Patterner joined, abercrombie joined 18:50 Khisanth left 18:55 ajox joined
leontopod so the goal of Perl 6 has now to become the ultimate computer language that ever was? 18:55
so the goal of Perl 6 has now to become the most ultimate computer language that ever was? 18:56
colomon what do you mean, "has now to become"? That was the goal from day one...
leontopod I should say
PerlJam leontopod: "ever will be"
leontopod ok! =D
skids Anything better won't be a "language" :-)
leontopod hey, question, can you compile perl 6 code into a standalone executable?
PerlJam leontopod: yesish
moritz noish :-) 18:57
leontopod baw
PerlJam leontopod: you can see we're conflicted about it ;)
leontopod I guess by the time there is a definitive Version 1 of Perl 6 18:58
computers will be so fast it won't matter
masak I don't think that's so.
PerlJam leontopod: We're already at the "it doesn't matter" point if you ask me.
masak we'd still be too slow if we didn't do anything about it if you ask me.
moritz rakudo supported creating "fakexecutables" some time ago, but it wasn't exactly "standalone"
masak as you can see, we're conflicted about the speed, too ;) 18:59
Su-Shee I suggest changing the motto "there's more than one way to do it" into "there's a different perl 6 for everyone in it" ;) 19:00
PerlJam We're always "too slow" (if we thought otherwise, we'd stop making improvments and Perl would be dead :)
masak early in Java's life, it was criticised for being too slow. early in Ruby's like, *it* was criticised for being too slow.
both have gotten big improvements over the years.
19:01 birdwindupbird joined
masak but you've got to "make it run" and "make it right" before you "make it fast" :) 19:01
PerlJam yeah, "get it right, then make i .... blah!
What masak said :)
(no one is conflicted about that) 19:02
19:03 ab5tract left
masak leontopod: speaking from my own experience, Perl 6 is already a power tool in many regards. there are missing pieces, bugs, and places where it just doesn't perform well yet. it's a matter of getting to know and work with the things we have already. 19:04
if you can do that, Perl 6 is a really cool language to use, already today.
PerlJam Indeed. 19:05
masak if you're more bothered by the deficiencies than with the features, then maybe in a year we'll serve your needs :)
or two years. we're working on it constantly.
or five years.
Perl 6 was ready for me four years ago.
PerlJam I was playing with it yesterday and though the startup time was still a little slow, I was marveling at how quick execution time was and how expressive the code was. 19:06
it == Rakudo
and Niecza is even faster than Rakudo for most (all?) things
masak yeah, I get that feeling of awe all the time nowadays.
it's like, "wow, I'm actually writing this in Perl 6, and when I try to run it, it actually runs!" :D
19:07 spine joined 19:08 Khisanth joined
masak today I showed a colleage 'sub postfix:<!>($N) { [*] 2..$N }; say 5!'. and I explained that that introduces an operator into the local language. 19:08
when he grokked it, he was impressed.
PerlJam moreover, it's "I'm writing this in Perl 6 and it's not even a smallish subset because of a crippled compiler"
masak his next reaction was "won't that screw it up for everybody?" and I said "well no, we've thought of ways to isolate it" 19:09
PerlJam I'm mildly surprised that no one has written a "Math::Ops" module or something that gives us all of the standard notations that aren't built into Perl 6, but are used by mathematicians. 19:10
(I would have expected colomon or so to have done that already :)
19:10 trey__ joined
benabik sub infix:<±>( $n, $e ) { ($n-e)..($n+e) } 19:11
That's a _lot_ of ground to cover, really...
19:11 trey__ is now known as yertalert
benabik And different branches of math use different notation... 19:11
colomon It is indeed somewhat surprising that the colomon of 2009 didn't try doing exactly late....
benabik But I expect the Math::* modules to have a lot of use.
PerlJam I'm not saying it would have been perfect or complete, just that I'm surprised it doesn't exist yeet :) 19:12
s/yeet/yet/
colomon s/late/that/
timotimo i'm pretty sure you want to treat ± on a symbolic level
19:12 leprevost left
PerlJam timotimo: what does that mean? 19:13
not_gerd +/- is more of a junction-ish thing
you don't want the range, but both values...
timotimo well, can you multiply ranges with one another? 19:14
colomon no
PerlJam not yet! :)
timotimo (1 ± 5) * (1 ± 5) what's that?
[Coke] niecza: sub infix:<±>( $n, $e ) { ($n-e)..($n+e) } ; say 100±10 ~~ 95
p6eval niecza v14-23-g0699296: OUTPUT«===SORRY!===␤␤Variable $n-e is not predeclared at /tmp/NXXLfkTcaz line 1:␤------> sub infix:<±>( $n, $e ) { (⏏$n-e)..($n+e) } ; say 100±10 ~~ 95␤␤Potential difficulties:␤ $e is declared but not used at /tmp/NXXLfkTcaz …
PerlJam but, as long as you're writing the ± op, you can add those other semantics too
[Coke] niecza: sub infix:<±>( $n, $e ) { ($n-$e)..($n+$e) } ; say 100±10 ~~ 95
timotimo yeah, missing two $
p6eval niecza v14-23-g0699296: OUTPUT«False␤»
tadzik nom: (any(-2, 2) * any(-3, 3)).perl.say
p6eval nom 2251cb: OUTPUT«any(any(6, -6), any(-6, 6))␤»
[Coke] niecza: sub infix:<±>( $n, $e ) { ($n-e)..($n+e) } ; say 95 ~~ 100±10 19:15
p6eval niecza v14-23-g0699296: OUTPUT«===SORRY!===␤␤Variable $n-e is not predeclared at /tmp/FZVk_FGMNL line 1:␤------> sub infix:<±>( $n, $e ) { (⏏$n-e)..($n+e) } ; say 95 ~~ 100±10␤␤Potential difficulties:␤ $e is declared but not used at /tmp/FZVk_FGMNL …
[Coke] niecza: sub infix:<±>( $n, $e ) { ($n-$e)..($n+$e) } ; say 95 ~~ 100±10 #argh, copied wrong one. ;)
p6eval niecza v14-23-g0699296: OUTPUT«True␤»
benabik not_gerd: It can either be a junction or a range depending on where you see it. I'd probably make infix be a range (for error) and prefix be a junction. 19:16
masak leontopod: now I backlogged over your "how many operators?" question. 19:17
PerlJam timotimo: I don't think I know what that means in math-land, let alone perl 6.
masak leontopod: do you have the feeling that Perl 6 is perhaps a little overambitious sometimes?
benabik still thinks the answer is "all of them". :-D
leontopod Yes, I have that feeling.
masak leontopod: I do, sometimes. there's a fine line between "ambitious" and "overambitious". 19:18
leontopod: I'd like for Perl 6 to be the former but not the latter.
leontopod Well, I think someone needs to put a foot down and say "let's get out a Version 1 for god's sake"
masak leontopod: many changes I made to the spec in 2011 were removals of things I considered to be overambitious.
PerlJam "overambitious" can only be determined after the fact really
not_gerd benabik: you have an example for the range use (not that I doubt you, I just can't think of one myself right now...)
masak leontopod: I agree -- we want to get something out. no-one is disputing that. 19:19
benabik not_gerd: Error. 2 ± 0.5 generally means (1.5 .. 2.5), not any(1.5,2.5)
masak leontopod: there's nothing that will take us to such a point, though, except hard work on implementations, apps, tests, and spec.
colomon benabik: actually, I'd say both interpretations are common, in different settings. 19:20
mathematical notion is very flexible...
tadzik so it's really prefix vs infix
benabik colomon: Fair enough.
leontopod Perl 6 should include postfix
PerlJam colomon: really? I *always* use ± in the sense of a range
masak leontopod: some people got tired of "waiting for Perl 6" in 2002. some gave up in 2004. some lost hope in 2008. you see here the rest of us, working towards the goal still.
colomon PerlJam: think of the standard way of writing the quadratic equation... 19:21
[Coke] leontopod: it does.
PerlJam colomon: oh. good point.
masak leontopod: do you mean it should include postfix:<!> ?
leontopod yikes!
benabik We could assign range to ± and junction to ∓ just to confuse people.
PerlJam colomon: though I *never* use it that way in practice.
masak nom: sub postfix:<!>($N) { [*] 1..$N }; say 5!
p6eval nom 2251cb: OUTPUT«120␤»
masak nom: say 5!
p6eval nom 2251cb: OUTPUT«===SORRY!===␤Confused␤at /tmp/WKm0A8PqfU:1␤»
masak leontopod: see? :)
leontopod wow!
[Coke] niecza: sub postfix:<!> { say "$_, and I MEAN IT!" }; "eek"!
not_gerd benabik: thanks 19:22
p6eval niecza v14-23-g0699296: OUTPUT«eek, and I MEAN IT!␤»
masak leontopod: I'm telling you! :)
leontopod Perl 6 is going to do EVERYTHING!
masak only in a Turing-complete sense.
tadzik for the predefined value of Everything
benabik Of course, it's turi- Oh
PerlJam leontopod: is it going to solve the halting problem?
leontopod: is it going to make my breakfast?
masak PerlJam: I don't think you heard the man. EVERYTHING.
leontopod this is Perl 6:
1.bp.blogspot.com/_VY9lef3Ripw/RvFR...yKnife.jpg
masak no, that's Perl 5. :P 19:23
benabik (re: making breakfast) I don't think any perl6 is going to be small enough to fit in an Arduino any time soon.
PerlJam leontopod: the perl 6 version of that utilizes 4 dimensional space so that it can still fit in your pocket
masak PerlJam: you just made it one of my life goals to have Perl 6 make me breakfast.
gfldex nom: multi quicksort([]) { () }; multi quicksort([$pivot, *@rest]) {my @before := @rest.grep(* before $pivot); my @after := @rest.grep(* !before $pivot); (quicksort(@before), $pivot, quicksort(@after)) }; quicksort((1..10).pick(10));
p6eval nom 2251cb: ( no output )
gfldex nom: multi quicksort([]) { () }; multi quicksort([$pivot, *@rest]) {my @before := @rest.grep(* before $pivot); my @after := @rest.grep(* !before $pivot); (quicksort(@before), $pivot, quicksort(@after)) }; say quicksort((1..10).pick(10)); 19:24
masak gfldex: 'say'
p6eval nom 2251cb: OUTPUT« 1 2 3 4 5 6 7 8 9 10 ␤»
gfldex nom: multi quicksort([]) { () }; multi quicksort([$pivot, *@rest]) {my @before := @rest.grep(* before $pivot); my @after := @rest.grep(* !before $pivot); (quicksort(@before), $pivot, quicksort(@after)) }; say quicksort((1..10).pick(10)).perl;
p6eval nom 2251cb: OUTPUT«((((), 1, ()), 2, (((), 3, ()), 4, ((), 5, ((), 6, ())))), 7, ((), 8, (((), 9, ()), 10, ())))␤»
PerlJam benabik: progress is made by unreasonable men. See masak :-)
skids
.oO(might fit in a giant mesh of arduinos. Mmm. Cloud-cased strudel.)
benabik masak++
skids erm based
colomon aaiiigggghhhh! I've got a $work test failure which only happens when I run my *entire* (6516 test) test suite; run the test in isolation or in a smaller group of tests, and it works fine. :\ 19:25
gfldex niecza: multi quicksort([]) { () }; multi quicksort([$pivot, *@rest]) {my @before := @rest.grep(* before $pivot); my @after := @rest.grep(* !before $pivot); (quicksort(@before), $pivot, quicksort(@after)) }; say quicksort((1..10).pick(10)).perl;
PerlJam cloud-cased ... is that like encased in a cloud (or whipped cream or icing?)
p6eval niecza v14-23-g0699296: OUTPUT«(((((), 1, ()), 2, ()), 3, ((), 4, ())), 5, ((((), 6, ()), 7, (((), 8, ()), 9, ())), 10, ()))␤»
PerlJam or is cloud-cased related to upper/lower/title casing ?
:)
gfldex nom: multi quicksort([]) { () }; multi quicksort([$pivot, *@rest]) {my @before := @rest.grep(* before $pivot); my @after := @rest.grep(* !before $pivot); (quicksort(@before), $pivot, quicksort(@after)).flat }; say quicksort((1..10).pick(10)).perl; 19:26
p6eval nom 2251cb: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).list␤»
gfldex that added .flat removes the problem of added LoL but it would break sorting of LoLs
that's from rosettacode btw
skids Cloud casing is when you consult a server on the Internet to determine the proper capitalization. What they don't tell you is it actually links to a sweatshop full of destitute literature majors. 19:27
PerlJam skids: that's how dictionaries are maintained too.
TimToady Perl 6 is the whole darn Swiss Army 19:29
leontopod uhm, the bot output is not rendering on xchat
gfldex One language to rule them all!
benabik leontopod: Perhaps chat isn't handling UTF8 properly? 19:30
leontopod do I need a different font?
not completely rendering that is
ah, probably
benabik It uses Unicode to show a N/L symbol for newline
gfldex or the font is missing fancy chars
masak more likely that. 19:32
leontopod: does this render as one character for you: ☺ 19:33
leontopod nope
TimToady if it comes out with lots of characters like  then it is probably a UTF-8 issue
masak s:2nd/':'/?/
leontopod renders as three characters
masak leontopod: then you need to set your encoding in xchat.
leontopod oh!
masak which will probably fix it.
"please adjust your set" :) 19:34
leontopod haha
TimToady irclog.perlgeek.de/perl6/2012-02-08 will show you approximately what it should look like, assuming your browser is newish 19:35
thought the irclog still screws up ANSI colors regularaly 19:36
masak leontopod: if you look at snippets of Perl 6 from 2003, they look a lot like Perl 5. since then, Perl 6 has become its own language, and we believe it's matured into something that we're more happy about delivering than what we had then.
TimToady and in the meanwhile we discovered a lot of bad decisions in the early design, and fixed 'em 19:37
leontopod ok masak, so Perl 6 uses funky characters
PerlJam meanwhile Perl 5 stole some of our bad design decisions :(
leontopod is there going to be a Perl 6 keyboard? 19:38
TimToady s/stole/cargo culted/
masak leontopod: there are always ASCII replacements for the funky Unicode characters.
[Coke] p5p subject: Stealing stackable modifiers from Perl 6
leontopod a Perl 6 keyboard would be neat
just like there used to be APL keyboards
masak leontopod: like » can be written as >>
TimToady just define a Compose key, and you'll have most of it
benabik in Vim: help digraphs 19:39
masak leontopod: what TimToady said. good editors give you... what benabik said. or keyboard layouts.
benabik CAn't help with other editors, as I never use 'em. :-)
flussence altgr+zx is «» on my standard GB qwerty keyboard
TimToady under gnome, you've got CTRL/SHIFT-u 263a and such
masak Emacs have an input system called LEIM, but it's all but lame.
benabik Macs have lots of interesting characters hidden behind the option key.
masak has*
yertalert 19:40
oooo, shiny
PerlJam likes remapping the "windows key" on his keyboards that have them.
masak benabik: and Mac OS X has an excellent choice of keyboard layouts, too.
yertalert: hi!
yertalert masak: Hello
TimToady and if I were doing set theory, I'd probably figure out the hex codes for ∪ and ∩ pretty soon 19:41
you can also cut and paste from something that will show the character
.u intersection
phenny U+2229 INTERSECTION (∩)
TimToady .u smiling 19:42
phenny U+263A WHITE SMILING FACE (☺)
awwaiid though I think that the "length" of a character as far as huffman encoding common things goes should be measured in keypresses :)
masak leontopod: if you're interested, compare the code at the bottom of dev.perl.org/perl6/doc/design/exe/E02.html (from 2001) with the modern gist.github.com/294621
TimToady awwaiid: except that a program is read many more times than it is written, normally, so you should optimize for visual length really 19:43
awwaiid TimToady, how about an average between the two?
yertalert I suspect people will copy and paste a lot of these symbols
masak leontopod: and here's the post I wrote about it: strangelyconsistent.org/blog/blast-...e-past-e02
yertalert: I suspect so too. but I won't.
TimToady as soon as you have one in your program, you can usually copy it around elsewhere in your program too 19:44
I use yl all the time in vim to hank a character under the cursor to put it somewhere else
awwaiid I try to _not_ copy/paste any code :)
but yeah... I do use tab-complete to have readable names 19:45
yertalert copy/pasting code it dangerous
awwaiid and not have to re-type them
TimToady there's also some kind of super compose file outer there somewhere that has mnemonic compose sequences for most of the math chars
PerlJam awwaiid: that's an acceptable form of code reuse provided it is done judiciously
TimToady *out there
19:45 MayDaniel left
awwaiid wherefore optimizing for readability 19:45
masak awwaiid: copy/pasting code has its uses. but it's good to go through a phase of utterly despising it first ;)
awwaiid but tab complete is actually _less_ characters than the original typing. though I guess some copy/paste would be too
PerlJam yertalert: copying code without understanding it can be dangerous, true
TimToady tab completion can, of course, install bugs too if it picks the wrong name 19:46
masak awwaiid: denormalizing/duplicating data has its uses, too.
awwaiid pft. copy paste is lame. s/// + eval is the way to go.
masak :P
awwaiid: I find that the more I use vim, the more I make use of mark-some-text, call-out-to-a-shell-command. 19:47
awwaiid yeah
masak (which replaces the selection with the output of the command.)
yertalert PerlJam: Even if you do understand it, a wrong function call here, an out of scope variable there
awwaiid the other day I wanted to output two different bits to temp files and diff them, so did :!cat > out1.txt and :!cat > out2.txt ... and then had to undo because it replaced my text with nothing :)
TimToady still wants an anthy-like input method for unicode
awwaiid anyway 19:48
PerlJam awwaiid: you forgot to use tee
awwaiid doesn't matter
because I can do >> or » and they'll both work
and I can teach vim to do whatever I want
TimToady niecza: say <a b c> ∩ <b c d> 19:49
awwaiid as far as minimizing keystrokes goes, that is
p6eval niecza v14-23-g0699296: OUTPUT«===SORRY!===␤␤Confused at /tmp/cdUqfeaedf line 1:␤------> say <a b c> ⏏∩ <b c d>␤␤Parse failed␤␤»
benabik awwaiid: Yank them into two different buffers and use :diffthis? :-)
awwaiid benabik, now we're talkin :)
19:49 bbkr1 joined
eviltwin_b assumes that was supposed to be !! not :! 19:51
leontopod masak, so where exactly do you see Perl 6 going?
eviltwin_b (or maybe vim is broken)
masak leontopod: a good question.
PerlJam leontopod: everywhere!
:)
masak leontopod: I don't see it taking over the world, or even replacing Perl 5.
colomon TimToady: I promise I'll let you know what I get around to making your Set operators work. ;)
bbkr1 rakudo: sub foo { return role { method foo {42};} }; foo().WHERE.say; foo().WHERE.say; # can someone please explain why do I get the same role?
p6eval rakudo 2251cb: OUTPUT«-7393211224278785710␤-7393211224278785710␤»
19:52 Bucciarati left
masak leontopod: it will become a language for people who enjoy programming, and enjoy having a powerful medium of expressing solutions to problems. 19:52
leontopod <== Teratogen, btw
hi PerlJam!
masak oh! Teratogen!
leontopod yes, it's me
PerlJam leontopod: why the name change?
leontopod I'm still alive!
masak welcome back :)
leontopod oh
19:52 leontopod is now known as Teratogen 19:53 Teratogen left, Teratogen joined
benabik eviltwin_b: If you type ":!blah" while a block of text is highlighted (with vap, for instance), Vim will automatically add the '<,'> to the command. 19:53
19:53 Teratogen left
eviltwin_b ah. I don't generally use the visual block stuff 19:53
benabik I use it a fair amount, especially with the shell command... :'<,'>!sort is very useful sometimes. 19:54
PerlJam vi(m) has many features that are plain awesome if people would play with them more. 19:55
benabik discovers :sort
masak can someone please unban poor Teratogen? :) 19:56
I don't remember the syntax for doing it offhand.
flussence mode -b something something
masak sorear: can you do it?
19:57 Bucciarati joined
flussence
.oO( the IRC protocol isn't very well designed for text commands... )
19:57
20:01 MayDaniel joined, ChanServ sets mode: +o moritz, moritz sets mode: -b *!*leontopod@unaffiliated/teratogen, moritz sets mode: -o moritz
masak moritz++ 20:02
moritz fwiw the commands I used where '/ban' to get the list of bans, and then '/unban *!*leontopod@unaffiliated/teratogen' 20:03
masak ossum. 20:05
20:05 thou joined 20:09 ChanServ sets mode: +o masak, ChanServ sets mode: -o masak
masak I see. 20:09
20:15 hundskatt joined
colomon now suspects he's running out of filehandles in Windows.... 20:17
masak nom: my %en2swe = <dog hund tax skatt>; say %en2swe<dog tax>.join 20:18
p6eval nom 2251cb: OUTPUT«hundskatt␤»
masak :) 20:19
tadzik :)
masak Podatek od posiadania psa. 20:23
tadzik istotnie 20:24
psodatek :)
masak really? I pasted from Wikipedia... 20:26
20:26 MayDaniel left
masak oh, it's a pun? I see. 20:26
benabik And wikipedia is never wrong. :-D
masak is slow
tadzik++
in retrospect, I'm rather glad it took me a minute rather than a day to get that one :) 20:27
tadzik :P
PerlJam but now you've deprived yourself from a random pleasant surprise in your future. 20:28
s/from/of/
tadzik masak: you can also get kotodatek or whatever :)
well, I'm pushing it now ;)
20:28 birdwindupbird left 20:35 cooper joined
masak clearly. :) 20:38
PerlJam: that's fine, random pleasant surprises in my future seem to replenish themselves automatically. 20:39
bbkr1 ehh, I give up. after 2 hours I still cannot find how to create role object. "my $r = role{ }" is not the same as good old "$r =RoleHOW.new", because it binds role to namespace - for example "sub x { return role { } }" returns always the same object in memory. 20:51
[Coke] KOTO DALEK
moritz nom: sub x { return role { } }; say x() === x() 20:52
p6eval nom 2251cb: OUTPUT«True␤»
20:54 y3llow left, y3llow joined
benabik nom: sub x { return RoleHow.new }; say x() === x() 20:55
p6eval nom 2251cb: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&RoleHow' called (line 1)␤»
masak bbkr1: I would expect it to, I think.
benabik nom: sub x { return RoleHOW.new }; say x() === x()
p6eval nom 2251cb: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&RoleHOW' called (line 1)␤»
masak bbkr1: if you declare it syntactically like that, it's the same role.
20:55 leontopod joined
[Coke] . o O (Great, now I'm hearing all the uppercase messages from perl6 in the DALEK VOICE) 20:56
moritz nom: say Numeric.HOW.new()
p6eval nom 2251cb: OUTPUT«Method 'gist' not found for invocant of class 'Perl6::Metamodel::ParametricRoleGroupHOW'␤␤»
20:56 y3llow left
bbkr1 masak: true, same as "sub foo { return class A {} }". but at the same time RoleHOW is not accessible from user level, so any role created is always syntatically bound 20:57
20:57 y3llow joined
moritz bbkr1: if you have one role, you can ask it for its .HOW 20:57
20:58 abercrombie left
moritz bbkr1: what are you trying to achieve in the end? 20:58
20:59 y3llow left
bbkr1 make this work on NOM. github.com/bbkr/jsonrpc/blob/maste....pm#L20-30 - this is CANDO workaround. 21:00
21:00 y3llow joined
moritz maybe you want .^add_fallback instead? 21:02
21:02 y3llow left, y3llow joined
masak sounds like it. 21:02
bbkr1 does fallback knows name of the method that was called and not found? 21:03
bbkr1 has to experiment with this
PerlJam is reminded that the MOP needs documenting. 21:04
moritz bbkr1: I think so
21:04 y3llow left
moritz yes, it takes two closures 21:04
21:05 y3llow joined
moritz &cond($obj, $name) must return True or False to indicate if it can handle the fallback 21:05
and &calc($obj, $name) should return the Code object to invoke
21:07 y3llow left 21:08 y3llow joined 21:10 y3llow left 21:11 y3llow joined 21:12 ajox left 21:13 y3llow left, y3llow joined
bbkr1 works! you are awesome... 21:14
21:15 y3llow left 21:16 y3llow joined
bbkr1 in fact this is much better than composing roles, because user doesn't have to know RPC method names up front 21:16
21:18 y3llow left, y3llow joined 21:20 y3llow left 21:21 y3llow joined 21:23 y3llow left 21:24 y3llow joined
not_gerd phenny:, tell jnthn where does 6model keep the stable-pointer in case of flattening an attribute object? 21:24
phenny, tell jnthn where does 6model keep the stable-pointer in case of flattening an attribute object? 21:25
phenny not_gerd: I'll pass that on when jnthn is around.
21:25 not_gerd left 21:26 y3llow left, y3llow joined 21:28 y3llow left 21:29 y3llow joined 21:31 y3llow left, y3llow joined 21:33 y3llow left 21:34 y3llow joined 21:36 y3llow left 21:37 y3llow joined 21:39 y3llow left 21:40 y3llow joined, carlin joined 21:42 y3llow left, y3llow joined
jnthn home :) 21:51
phenny jnthn: 21:25Z <not_gerd> tell jnthn where does 6model keep the stable-pointer in case of flattening an attribute object?
jnthn phenny: tell not_gerd that's up to the REPR to do. See P6opaque - it keeps it around in its REPR_data.
phenny jnthn: I'll pass that on when not_gerd is around.
21:53 skids left 22:04 bluescreen10 left 22:05 benabik_ joined 22:08 tarch joined 22:09 benabik left 22:10 benabik_ left
flussence hm, I want to mess around with reading keypresses directly on a terminal but $*IN is line-buffered. Any way to make it not do that? 22:17
22:23 kaare_ left
jnthn flussence: I'm guessing you're trying .getc and finding it line-buffered? 22:24
flussence yep
I've tried .read(1) too, same result 22:25
I'm wondering if perl6 even has control over this kind of thing, it might be handled entirely by the terminal...
22:25 tarch left
tadzik C has no control either, I think 22:26
some termcap/ncurses thing has, though
eviltwin_b stdio defaults to line buffering of terminals, use setvbuf() to change it. there is also tty-level control as well, stty -icanon vmin 1 vtime 0
(or tcsetattr()) 22:27
I don't know how either of those maps to perl6 though
tadzik NativeCall to the rescue!
flussence ...but then I'd have to learn ncurses! :) 22:29
doy Term::ReadKey is how it's done in perl 5 22:30
22:30 awwaiid left
doy there's no standard interface to getting anything other than line-buffered data from stdin 22:30
tadzik how about this setvbuf?
22:30 awwaiid joined
flussence ooh, that looks interesting. 22:31
tadzik even my K&R writes about it :)
flussence I guess the "right" way to do this is $*IN.autoflush(1), but that doesn't exist yet 22:32
doy setvbuf isn't related 22:35
that's only dealing with the stdio buffers
it doesn't affect the buffering that the terminal itself does
there's two layers of buffering going on here 22:36
dalek ast: 8de5275 | jnthn++ | S04-declarations/constant.t:
Fix a wonky test.
doy the stdio one is part of the c standard, but the terminal-level one isn't
eviltwin_b right. for th eother, if you don't want to deal with figuring out termios access, catch the output of "stty -g" to save terminal state, then run the stty command Igave above; invoke stty again with the saved output to reset the terminal
(unix-specific; no idea how you deal on windows) 22:37
doy right
22:46 spine left 22:49 leontopod is now known as Teratogen 22:56 tarch joined 22:57 snearch left 23:09 mj41 left
[Coke] ponders turning masak's one off script into a module so it's easier to write tests for. 23:11
23:17 yertalert left
colomon +1 23:17
masak 'night, #perl6 23:19
23:19 sftp left 23:20 sftp joined
dalek kudo/stdinit: f3058c8 | jnthn++ | src/Perl6/Actions.pm:
Small refactor to bind_op/assign_op to prepare for initializer changes.
23:23
kudo/stdinit: 95a255a | jnthn++ | src/Perl6/ (2 files):
First round of changes to parse variable initializers as part of variable_declarator. Basically works, though doesn't yet handle the attribute initializer case yet.
jnthn ...oops, English too hard after long day...
23:25 skids joined 23:31 tarch left 23:33 yertalert joined 23:36 benabik joined
dalek kudo/stdinit: b0a9d14 | jnthn++ | src/Perl6/Actions.pm:
Re-work attribute initializer handling, getting rid of the nasty action at a distance stuff. Also a bit more robust.
23:37
23:39 kst` joined, PacoAir left 23:41 kst left
jnthn perl6: my $pair = 'foo' => 'bar'; say $pair.WHAT 23:43
p6eval pugs b927740: OUTPUT«Pair␤»
..rakudo 2251cb, niecza v14-23-g0699296: OUTPUT«Pair()␤»
jnthn perl6: sub x($a = 'foo' => 'bar') { say $a.WHAT }; x() 23:46
p6eval pugs b927740: OUTPUT«Pair␤»
..niecza v14-23-g0699296: OUTPUT«Pair()␤»
..rakudo 2251cb: OUTPUT«===SORRY!===␤Malformed block at line 1, near "($a = 'foo"␤»
jnthn perl6: my $b; sub x($a = $b = 'bar') { say $a.WHAT }; x() 23:47
p6eval rakudo 2251cb: OUTPUT«===SORRY!===␤Malformed block at line 1, near "($a = $b ="␤»
..pugs b927740: OUTPUT«Str␤»
..niecza v14-23-g0699296: OUTPUT«Str()␤»
jnthn pmichaud: ping?
23:48 sftp left, sftp joined