»ö« 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:14
gfldex left
00:16
arlinius left
00:17
gfldex joined,
arlinius joined,
sivoais left
|
|||
cognominal_ | jnthn++ | 00:27 | |
00:32
betterworld left
00:33
betterworld joined,
ascent__ left,
arlinius left
00:36
arlinius joined
|
|||
djanatyn | okay, I've been incredibly lazy | 00:39 | |
let's get to work on faq.perl6.org | 00:40 | ||
00:41
ascent_ joined
00:45
jaldhar joined
00:58
Trashlord left
00:59
tokuhirom left
01:00
tokuhirom joined
01:04
tokuhirom left
01:08
plutoid joined,
benabik joined
01:10
woosley joined
01:12
mkramer left,
mkramer joined
01:14
mkramer1 joined,
mkramer left
01:19
mkramer1 left
01:25
sivoais joined,
mkramer joined
01:31
wolfman2000 left,
mkramer left,
fridim_ left
01:38
mkramer joined
01:39
mkramer left
01:40
mkramer joined
01:45
whiteknight joined,
whiteknight is now known as Guest83607
01:46
mkramer left
01:50
am0c left
01:51
am0c joined
01:52
donri left
02:00
mkramer joined
|
|||
djanatyn | moritz: mowyw is cool :D | 02:10 | |
02:16
mkramer left,
wolfman2000 joined
02:17
mkramer joined
02:33
mkramer left
02:36
felher left,
felher joined,
mkramer joined
02:40
ethndbst left
02:49
satyavvd joined,
envi_ left
02:50
mkramer left
02:51
mkramer joined
03:10
ChanServ sets mode: +v ilogger2
03:13
ethndbst joined
03:20
alvis joined
03:39
mkramer joined
03:41
molaf joined
03:49
ethndbst left
03:53
mkramer left
04:10
lestrrat joined
04:14
mkramer joined
04:17
mkramer left
04:18
mkramer joined
04:21
mkramer1 joined,
mkramer left
|
|||
sorear | good * #perl6 | 04:25 | |
TimToady: +1 to correctness first and having + not do overflowing stuff by default | 04:27 | ||
04:27
mkramer1 left
04:28
mkramer joined
04:32
kaleem joined
04:39
mkramer left
04:48
mkramer joined
04:58
mkramer left
05:01
mkramer joined
05:10
mkramer left
|
|||
sorear wants talk (with TimToady or anyone) about w and XID_{Start,Continue} | 05:11 | ||
PerlJam | sorear: I'd talk but I have no idea what you're talking about :) | 05:12 | |
What's XID_{Start,Continue} | |||
05:13
molaf left
05:18
lestrrat left
05:19
lestrrat joined
|
|||
sorear | PerlJam: www.unicode.org/reports/tr31/ | 05:26 | |
05:27
mkramer1 joined
05:28
woosley joined
|
|||
PerlJam | Ah, I see. | 05:28 | |
sorear | basically, I want $spin̈al to parse | ||
currently STD is using approximately <alpha> \w* | 05:29 | ||
moritz | djanatyn: glad you like it | ||
good morning | |||
sorear | o/ djanatyn | ||
o/ moritz I mean | |||
the problem is the U+0308 COMBINING DIAERESIS in the middle | 05:30 | ||
PerlJam | \w doesn't match it but you think it should | ||
sorear | the Official Unicode Solution, as described in tr31, is to consider (most) combining characters to be \p{XID_Continue} | ||
XID_Continue fills the same role as \w | 05:31 | ||
however it seems ... slightly wrong ... to have "\u0308" ~~ /\w/ be true | |||
moritz | .u U+0308 | ||
phenny | moritz: Sorry, no results | ||
djanatyn | trying to get faq.perl6.org looking nice >_> | 05:32 | |
been experimenting for quite a while | |||
sorear | another option would be to change STD to use XID_Start and XID_Continue and leave alpha and \w exactly as they are | ||
djanatyn | also realized I'm horrible at CSS :) | ||
sorear | which is _probably_ better | ||
I really need to talk to TimToady on this one I think | 05:33 | ||
PerlJam | yeah, probably. | ||
sorear | .u 0308 | ||
phenny | U+0308 COMBINING DIAERESIS (◌̈) | ||
sorear | oh wow, I even spelled it right \o/ | ||
PerlJam | but what you've said so far makes sense and I agree and the change to STD you just mentioned is what I would probably do :) | ||
Is there a way to make is match \w but only if it's combined? | 05:34 | ||
s/is/it/ | |||
moritz | sorear: in p5, it does match \w | ||
PerlJam | really? | 05:35 | |
PerlJam tries | |||
moritz | perl -wE 'say "\x{0308}" ~~ /\w/' | ||
05:36
Chillance joined
|
|||
PerlJam | That does seem weird and slightly wrong though | 05:36 | |
dalek | ok: 7ffba6e | moritz++ | src/operators.pod: fix typo, (David Romano)++ |
05:37 | |
moritz finds that it DWIMs | |||
PerlJam | I'd never want an isolated combining to match \w | 05:38 | |
combining char | |||
moritz | but you want to match words as \w+, no? | 05:39 | |
sorear | a related question is whether we want STD.pm6 to be running in grapheme mode | ||
PerlJam | moritz: ah yes, I see your point. | ||
TimToady | it's not clear that \w can operate correctly in codepoint mode, which is why we want to be in grapheme mode most of the time | 05:40 | |
sorear | TimToady: it is unclear to me what \w means in grapheme mode | 05:42 | |
djanatyn | i.imgur.com/dlGHL.png -- any suggestions for how to improve this? | ||
TimToady | it means the base char matches \w, and you ignore marks | ||
djanatyn | (faq.perl6.org/) | ||
trying to make it prettier! :D | 05:43 | ||
TimToady | but \w matches the whole grapheme, so you don't have to skip the combining codepoints explicitly | ||
PerlJam | djanatyn: that looks pretty enough for me :) | 05:44 | |
sorear | TimToady: what if there is no base char? | 05:45 | |
PerlJam | djanatyn: though now that I think about it for another second or two, I'd like to see the code sections boxed off and syntax highlighted | 05:46 | |
sorear | TimToady: I'm thinking especially of Hangul | ||
"obviously", Hangul grapheme clusters should be \w and CRLF grapheme clusters should be \W | |||
but I'd like to have something more formal | |||
djanatyn | PerlJam: okay, I'll work on that | 05:47 | |
dunno about syntax highlighting, but I can certainly box them off | |||
sorear | on a more meta level I'm worried about reinventing TR31 badly. Square wheels and all that. | 05:48 | |
PerlJam | djanatyn++ | ||
djanatyn | :D | ||
TimToady | well, there's also the possibility of reinventing TR31 goodly... | 05:49 | |
sometimes the tail wags the dog | |||
correctness first, then standards compliance :) | 05:50 | ||
sorear | I maintain that the concept of a "base character of a grapheme" is ill-defined. | 05:59 | |
djanatyn | boxing was too tricky, because the answers use <code> tags all over the place and I don't want to edit them | 06:00 | |
so I tried to make the code stand out like this: i.imgur.com/mAIoH.png | 06:01 | ||
PerlJam | djanatyn: nice | ||
djanatyn | also, looks like the shadows work on firefox | ||
okay, I'm tired | |||
and I have school in a few hours | |||
PerlJam | djanatyn: when will this new look be rolling out? | ||
djanatyn | PerlJam: in a few minutes, if you guys help me :D | 06:02 | |
PerlJam | djanatyn++ | ||
djanatyn | yeah, all I need to do is, uhh, submit one file to github.com/perl6/faq and get them to run the script again | 06:03 | |
the hard work was done before I even started | |||
06:05
mkramer1 left
06:07
mkramer joined
06:09
mkramer left
06:10
mkramer joined
06:12
mkramer left
06:14
Chillance left
06:16
Chillance joined
|
|||
djanatyn | okay, I'm sorry, but I'm not that familiar with git >_> | 06:26 | |
could someone walk me through how to make a pull request with this modified file? | 06:27 | ||
Woodi | hmm, clone repository, modify file, git add <file>, git commit, git push ? | 06:29 | |
djanatyn | oh, maybe. | ||
Woodi | assuming you have rights to push to remote repo | 06:30 | |
djanatyn | oh, I don't think I can push | ||
Woodi | and yes, maybe :) | ||
djanatyn | it says I need to make a pull request | ||
Woodi | you have user on github ? | ||
djanatyn | Yep. | 06:31 | |
Woodi | then clone repo on github, clone into your box, modify, push to your repo and someone with right rights will know what to do | ||
06:35
koban joined
06:40
yath left,
tadzik joined
06:41
masak joined
06:42
felher joined,
yath joined
|
|||
djanatyn | okay, pull request sent | 06:45 | |
PerlJam: I lied, it won't be done in a few minutes, sorry | 06:46 | ||
there's another process I didn't think about - the pull request has to either be approved or denied, and then somebody has to run that perl script again | 06:47 | ||
but if accepted, it should be live pretty soon | |||
moritz looks | |||
06:48
nebuchadnezzar joined
|
|||
djanatyn | moritz: :D | 06:48 | |
nebuchadnezzar | yo | ||
cognominal_ | nom: how(class A {}); my $last; sub how(Mu $class) { exit if (my $nm = $class.HOW.name("")) eq $last; say $nm; $last = $nm; how($class.HOW) } | 06:49 | |
p6eval | nom b9aa5b: OUTPUT«Use of uninitialized value in string contextAPerl6::Metamodel::ClassHOWNQPClassHOWKnowHOW» | ||
06:52
agentzh joined
|
|||
dalek | q: b17e9b3 | Jonathan++ | web/ (2 files): added css for gci |
06:52 | |
q: 5e66efc | moritz++ | web/ (2 files): Merge pull request #1 from djanatyn/master have style! |
|||
djanatyn | :D :D :D | 06:53 | |
that was my first pull request :) | |||
and my first fork | |||
and my first contribution to...open source! | |||
now to sleep :) | |||
moritz | \o/ | 06:55 | |
dalek | q: e4ee5f6 | moritz++ | answers.md: grammar |
06:56 | |
djanatyn | oh, wait. I really need to fix that list >_> | 06:58 | |
that's not a good thing | |||
moritz | djanatyn: yes, I think so too, but it was good enough to close the GCI task | 06:59 | |
djanatyn | okay | ||
moritz: what's next? :D | |||
moritz | I also don't really like that the headlines with round corners are indented, but the h3 aren't | ||
djanatyn | I want to do some actual programming | ||
oh yeah, that should be fixed too | |||
moritz | djanatyn: www.google-melange.com/gci/task/vie...11/7174240 and www.google-melange.com/gci/task/vie...11/7177376 are about writing code, which I consider "actual programming" | 07:01 | |
djanatyn | okay, writing tests seems both fun and productive | 07:03 | |
djanatyn claims the first one | |||
07:32
icwiener joined
|
|||
sorear sleeps, will try to get more info out of w tomorrow | 07:35 | ||
07:38
hundskatt joined
07:44
icwiener left
07:46
am0c joined
08:27
Trashlord joined
08:33
tzhs joined
|
|||
moritz | nom: multi f(&a, *@b) { }; multi f(*@b) { }; f { $^a }, 1, 2, 3, | 08:39 | |
p6eval | nom b9aa5b: OUTPUT«Ambiguous dispatch to multi 'f'. Ambiguous candidates had signatures::(Callable &a, Positional @b):(Positional @b) in block <anon> at /tmp/IpkWqhNM_W:1 in <anon> at /tmp/IpkWqhNM_W:1» | ||
moritz | jnthn: that one blocks sort() from working properly | 08:40 | |
the sub form, that is | |||
08:45
mj41 joined
|
|||
moritz | niecza: say sort { $^a[0] <=> $^b[0] }, ['a', 0], ['foo', 5], ['z', 3] | 08:54 | |
p6eval | niecza v12-2-geb42dfa: OUTPUT«Use of uninitialized value in string context at /home/p6eval/niecza/lib/CORE.setting line 773 (warn @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 168 (Mu.Str @ 9)  at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting l… | ||
moritz | sorear: that looks broken, it seems to try to sort by string somehow | 08:55 | |
08:59
orafu joined
09:06
odoacre joined
09:11
Trashlord left
09:13
am0c left
|
|||
moritz | nom: say &join.^does(Callable) | 09:18 | |
p6eval | nom b9aa5b: OUTPUT«Bool::True» | ||
moritz | nom: multi f(&a, *@b) is default { }; multi f(*@b) { }; f { $^a }, 1, 2, 3, | 09:23 | |
p6eval | nom b9aa5b: ( no output ) | ||
moritz | let's see if that trait works in the setting... | 09:24 | |
nope :( | 09:31 | ||
bootstrapping nastinesses all over | |||
09:43
flussence joined
09:58
woosley left
|
|||
jnthn | morning | 09:58 | |
moritz | \o jnthn | ||
jnthn | nom: multi f($a, *@b) { }; multi f(*@b) { }; f { $^a }, 1, 2 | 09:59 | |
p6eval | nom b9aa5b: OUTPUT«Ambiguous dispatch to multi 'f'. Ambiguous candidates had signatures::(Any $a, Positional @b):(Positional @b) in block <anon> at /tmp/P192VoriDT:1 in <anon> at /tmp/P192VoriDT:1» | ||
jnthn | hm...was sure that one worked. | ||
moritz | it did, in b | ||
b: multi f($a, *@b) { }; multi f(*@b) { }; f { $^a }, 1, 2 | |||
p6eval | b 1b7dd1: OUTPUT«Ambiguous dispatch to multi 'f'. Ambiguous candidates had signatures::(Any $a, *@b):(*@b) in main program body at line 22:/tmp/krakiEkVCh» | ||
moritz | huh. | 10:00 | |
b: multi f(&a, *@b) { }; multi f(*@b) { }; f { $^a }, 1, 2 | |||
p6eval | b 1b7dd1: OUTPUT«Ambiguous dispatch to multi 'f'. Ambiguous candidates had signatures::(&a, *@b):(*@b) in main program body at line 22:/tmp/kbGHzOVY9U» | ||
moritz | hm | ||
jnthn | Apparently not... | 10:01 | |
Will have a look, though should work on advent calendar first. | 10:02 | ||
moritz | I was pretty sure I had copied the lines for &sort from src/old/, but I might have been mistaken | ||
10:03
alvis left
|
|||
moritz | I have a workaround now, which fixes many tests in sort.t | 10:03 | |
just waiting for the spectest to finish | 10:04 | ||
jnthn | TimToady: Pondered the native op/overflow thing. How about if the native ops throw *immediately* if the result will overflow? That way we catch overflows, don't have to do some nasty trickery with the return type, and "no strict :overflow" just imports a set of multi candidates that don't do the overflow check. | 10:05 | |
moritz | but how do you catch overflow? | 10:06 | |
by doing the calculation in Int space, and then trying to unbox? | 10:07 | ||
jnthn | moritz: I was thinking a set of opcodes that do the checking, CLR style. | 10:11 | |
moritz wishes the carry flag from the CPU was easily available in parrot | 10:12 | ||
10:12
mkramer joined
|
|||
dalek | kudo/nom: 3c862ba | moritz++ | src/core/Any.pm: fix &sort with a closure works around a multi dispatch limitation |
10:13 | |
kudo/nom: 4c311bf | moritz++ | t/spectest.data: run a test file that had regressed on &sort with closure |
|||
ast: 336ec16 | moritz++ | S32-list/sort.t: unfudge &sort tests for rakudo |
|||
10:18
alvis joined
|
|||
moritz | nom: sub f() { my $a := pir::find_caller_lex__Ps('$/'); $a = 5; }; f; say $/ | 10:20 | |
p6eval | nom b9aa5b: OUTPUT«5» | ||
jnthn | pir::find_caller_lex__Ps('$/') = 5 # should also work | 10:22 | |
moritz | I know it does :-) | ||
nom: augment class Sub { method my_invoke { self() } }; &join.my_invoke | 10:26 | ||
p6eval | nom b9aa5b: OUTPUT«===SORRY!===augment not allowed without 'use MONKEY_TYPING' at line 1, near "{ method m"» | ||
moritz | nom: use MONKEY_TYPING; augment class Sub { method my_invoke { self() } }; &join.my_invoke | ||
p6eval | nom b9aa5b: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&self' called (line 1)» | ||
moritz | jnthn: that seems to be a false positive | 10:27 | |
10:28
wk_ joined
|
|||
jnthn | moritz: Yes and no. If the optimizer is saying that, I bet it actually fails at runtime too, rightly or wrongly. | 10:46 | |
...and in a dwim sense, almost certainly wrongly :) | 10:47 | ||
moritz | nom: use MONKEY_TYPING; augment class Sub { method my_invoke($self:) { $self() } }; &join.my_invoke | ||
p6eval | nom 4c311b: ( no output ) | ||
jnthn | It's safe as | ||
nom: Int() | |||
p6eval | nom 4c311b: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&Int' called (line 1)» | ||
jnthn | *same | 10:48 | |
moritz | seems to be no problem when applied to a Callable:D | ||
jnthn | moritz: Right, it's the term:name case | ||
moritz | erm | ||
jnthn | The self() one is | ||
moritz | we're talking past each other, I think | ||
jnthn | no, term:identifier. But anyway... | 10:49 | |
moritz: The reason $self() works is because it parses as a variable and a postcircumfix. | |||
moritz | hm, even with --optimize=0, the CHECK is done | 10:50 | |
jnthn | --optimize=off | ||
will completely disable it. | 10:51 | ||
0 means "don't transform anything" | |||
moritz | ah right, Could not find sub &self | ||
I now see what you mean. | |||
jnthn | :) | 10:52 | |
So, mis-compile rather than optimizer bug. | 10:53 | ||
dalek | kudo/nom: 676b356 | moritz++ | src/core/Regex.pm: Regex.ACCEPTS for arrays and hashes |
10:54 | |
jnthn | moritz: File a ticket for it if you didn't already. | 10:55 | |
jnthn plans to have a crack at some ticket queue items during the weekend. | |||
dalek | ast: 827e592 | moritz++ | S (2 files): rakudo un/refudges |
||
moritz | jnthn: I'd find a stab at autovivification much more useful :-) | ||
jnthn | moritz: Let's see if pmichaud++'s next-week tuits materialize, then I can ask what he thinks that stab should look like, which will probably be more efficient than trying to figure it from what's done so far. :) | 10:58 | |
moritz | jnthn: sounds good | ||
jnthn | I really want to get arrays in native call back in place by the end of the weekend too, so the mysql stuff can work again. | 10:59 | |
moritz | that would be really cool | 11:00 | |
11:01
wk joined
|
|||
moritz | will it invove Array[int] working too? :-) | 11:01 | |
11:03
wk__ joined
|
|||
jnthn | moritz: I'm not sure it *will* be Array[int] (more) | 11:03 | |
11:03
wk_ left
|
|||
moritz | right | 11:03 | |
jnthn | I asked a while ago it native arrays wanted to be lazy and the answer was "probably not" | ||
Or some such :) | |||
Since Array *is* lazy, we probably really want some kind of PackedArray[int] | |||
moritz | also I wonder how Array can be both an array and a parametric role at the same time | 11:04 | |
jnthn | Then we find a way to make "my int @foo;" use that | ||
moritz: Yes, that's also a fun issue. | |||
11:05
wk left
|
|||
dalek | ast: a850bf0 | moritz++ | S32-scalar/undef.t: simplify tests |
11:12 | |
moritz | nom: say ''<foo>.WHAT | 11:13 | |
p6eval | nom 4c311b: OUTPUT«Method 'at_key' not found for invocant of class 'Str' in method postcircumfix:<{ }> at src/gen/CORE.setting:1066 in block <anon> at /tmp/pCJpob7AFP:1 in <anon> at /tmp/pCJpob7AFP:1» | ||
moritz | pugs: say ''<foo>.WHAT | 11:14 | |
p6eval | pugs b927740: OUTPUT«*** Odd number of elements found where hash expected: VStr "" at /tmp/nooRK1Nq0C line 1, column 5 - line 2, column 1» | ||
moritz | niecza: say ''<foo>.WHAT | ||
p6eval | niecza v12-2-geb42dfa: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Str at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 248 (Any.at_key @ 6)  at <unknown> line 0 (ExitRunloop @ 0)  at /tmp/J0HwqlN7ly line 1 (mainline… | ||
moritz | hm, all three implementations agree | ||
then I'll change the test | |||
dalek | ast: 5fbb323 | moritz++ | S02-literals/listquote.t: update a test to fit current understanding |
11:16 | |
moritz | perl6: say :foo < 3 | 11:18 | |
p6eval | niecza v12-2-geb42dfa: OUTPUT«Unhandled exception: Cannot use value like Pair as a number at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 190 (Any.Numeric @ 4)  at <unknown> line 0 (ExitRunloop @ 0)  at /tmp/XujAJMDKPy line 1 (mainline @ 1)  … | ||
..rakudo 4c311b: OUTPUT«No applicable candidates found to dispatch to for 'Real'. Available candidates are::(Mu, Mu %_) in method Real at src/gen/CORE.setting:639 in sub infix:<<> at src/gen/CORE.setting:2110 in block <anon> at /tmp/lXu_zbyPQA:1 in <anon> at /tmp/lXu_zbyPQA:1»… | |||
..pugs b927740: OUTPUT«***  Unexpected end of input expecting "\\", variable name, ">" or "<" at /tmp/WSIuo2qt5_ line 2, column 1» | |||
moritz | there was an old spec item that a List in scalar context becomes a Capture (or so) | 11:21 | |
is that still current thinking? | |||
I guess not... | 11:23 | ||
dalek | ast: 56fb51b | moritz++ | S02-literals/listquote.t: correct and re-fudge list and Parcel tests |
11:24 | |
11:24
daxim joined
|
|||
moritz | nom: role A::B { }; say A::B.gist | 11:34 | |
p6eval | nom 676b35: OUTPUT«A::B()» | ||
moritz | nom: package A { role B { } }; say A::B.gist | ||
p6eval | nom 676b35: OUTPUT«B()» | ||
11:34
cognominal___ joined
|
|||
moritz | there's a test in S14-roles/namespaced.t that expects the first one to be just B() too | 11:35 | |
is that still right? | |||
nom: use fatal; fail(); say 'alive' | 11:37 | ||
p6eval | nom 676b35: OUTPUT«alive» | ||
moritz | nom: use fatal; say $*FATAL; | 11:38 | |
p6eval | nom 676b35: OUTPUT«Bool::True» | ||
moritz | nom: say $*FATAL; | ||
p6eval | nom 676b35: OUTPUT«Failure.new()» | ||
jnthn | moritz: Not sure, I could argue it both ways. It's trivial to change it to just be B() if that's what is wanted. | ||
oh | 11:39 | ||
11:39
am0c joined
|
|||
jnthn | Well, the sepc I think said what .WHAT gives stringifies to the short name. | 11:39 | |
jnthn tries to find | 11:40 | ||
moritz | I vaguely recall that too, but I always found that a bit weird | ||
jnthn | WHAT the type object of the type, .gist returns MyClass() | ||
WHICH the object's identity value | |||
WHO the package supporting the object, stringifies to long name | |||
It calls out WHO as giving the long name. | |||
moritz | so we should really be debugging with WHO instead of WHAT? | 11:41 | |
11:41
cognominal_ joined
|
|||
moritz wonders if cultural pressure can change the spec here | 11:41 | ||
jnthn | moritz: Maybe the short name is often enough :) | ||
.WHAT strinfigies to whatever is in .^name, anyway | |||
er, gistifies | |||
:) | |||
And that's just a decision taken when creating the meta-object, so it's easy to change. | 11:42 | ||
11:44
cognominal___ left
|
|||
cognominal_ | I dont understand why the &name methods in *HOW roles expect an argument and ignore it | 11:47 | |
jnthn | cognominal_: In class-based OO it's kinda boring. | 11:48 | |
cognominal_: It's more for prototype based OO | |||
cognominal_ | concistency is necessary here? | 11:49 | |
*consistency | 11:51 | ||
12:06
wk__ left
12:08
cognominal_ left
12:09
mkramer1 joined
12:10
mkramer left,
cognominal_ joined
12:13
kaleem left,
Psyche^ joined
12:14
koban left
12:17
Psyche^ is now known as Patterner
|
|||
cognominal_ | my $a; say $a eq '' | 12:17 | |
nom: my $a; say $a eq '' | |||
p6eval | nom 676b35: OUTPUT«Use of uninitialized value in string contextBool::True» | ||
cognominal_ | is this normal that it complains? | 12:18 | |
jnthn | believe it's correct, yes | 12:22 | |
12:35
odoacre left
|
|||
jnthn | perl6advent.wordpress.com/2011/12/0...rdebugger/ | 12:37 | |
12:37
cosimo joined
|
|||
jnthn | lemme know if any typos or thinkos slipped in, but I think I caught 'em all :) | 12:37 | |
moritz | jnthn++ | 12:39 | |
jnthn: you might want to turn the first mention of these modules into links to their github repos | 12:42 | ||
or to the common repo, dunno if they share one | |||
jnthn | moritz: they share 1; I linked to it later | 12:43 | |
12:51
cognominal_ left,
cognominal_ joined
12:59
xinming joined
13:01
bluescreen10 joined
|
|||
moritz | nom: my %h = c => 1; say %h ~~ .{'c'} | 13:05 | |
p6eval | nom 676b35: OUTPUT«Bool::True» | ||
moritz | nom: my %h = c => 0; say %h ~~ .{'c'} | ||
p6eval | nom 676b35: OUTPUT«Bool::False» | ||
moritz | S03-smarmatch/any-hash-slice.t seems rather out of date | 13:09 | |
13:20
bluescreen10 left
13:22
cognominal___ joined
|
|||
colomon | jnthn++ | 13:22 | |
13:24
cognominal_ left
13:25
bluescreen10 joined
|
|||
moritz | colomon: dunno if you've seen it yet, here is my draft for tomorrow's advent post: moritz.faui2k3.org/tmp/03-binary-io-buf.pod | 13:26 | |
colomon | moritz++ | 13:30 | |
moritz | wow, we've got 890 visits yesterday | 13:31 | |
jnthn | wow | 13:32 | |
colomon | !!!!! | 13:33 | |
13:36
sftp joined
|
|||
moritz | I've just posted my post for tomorrow, will be automatically published at 0630 UTC | 13:36 | |
colomon | \o/ | 13:48 | |
do we have a day four yet? there's nothing on the schedule | |||
jnthn | Seems not yet | 13:49 | |
13:59
wk joined
14:03
am0c left
14:10
Sarten-X joined
|
|||
moritz | moritz.faui2k3.org/tmp/traits.txt # example script to start explaining traits | 14:15 | |
[Coke] | moritz: ow. | 14:17 | |
moritz | [Coke]: please be more verbose | 14:19 | |
jnthn | I thought Elvis only left the building? :) | ||
moritz | well, he need to enter first, no? | ||
but I can make him leave too | |||
jnthn | :) | ||
moritz | but OTOH we already have a leave function... erm, should have | 14:20 | |
jnthn | moritz: Another way to do this for something more practical could be to use HTTP::Server::Simple and make something like what you did, but for URL dispatch. | 14:21 | |
moritz | jnthn: I wanted to mention that, but didn't want to explain the whole code that would be necessary for that | ||
jnthn | moritz: ah, ok | 14:22 | |
moritz | any nice puns on 'traits'? | 14:23 | |
jnthn | .oO( character traits ) |
14:24 | |
moritz | traits -- meta data with character | ||
jnthn | :D | ||
PerlJam | moritz++ nice but if you can come up with a less contrived example, that woudl be better IMHO :) | 14:32 | |
14:32
sayu joined
|
|||
[Coke] | moritz: without comments, I find that code very hard to follow. | 14:33 | |
moritz | [Coke]: I've already added comments to my local copy | 14:34 | |
[Coke] | *more* comments, I guess I should said. it's not obvious what you're trying to tell me, especially since I don't know anything about traits in perl6 just yet. | ||
14:34
kaleem joined
|
|||
PerlJam | Is there some simple Moose module that uses traits that would be instructive if ported to Perl 6? | 14:35 | |
(it doesn't have to be Moose, but that and Catalyst are where I tend to see traits used) | 14:36 | ||
14:37
toebu joined
|
|||
colomon | jnthn: any progress on the guts that would be needed to make 'is symmetric' work? | 14:42 | |
colomon is wondering about 'is cached' as well... | |||
PerlJam | Is "is cached" memoization? that would be a nice example. | 14:43 | |
moritz | hm, that would be nice indeed | ||
toebu | rakudo: my @x = :yes,:!no;.perl.say for @x; | 14:44 | |
p6eval | rakudo 676b35: OUTPUT«"yes" => Bool::True"no" => Bool::False» | ||
colomon | PerlJam: yes | ||
moritz | nom: say sub f { } | ||
p6eval | nom 676b35: OUTPUT«Sub.new()» | ||
colomon | PerlJam: I think it might even be spec. ;) | ||
moritz | nom: say (sub f { }).Str | ||
p6eval | nom 676b35: OUTPUT«f» | ||
toebu | nom: my @x = :yes,:!no;.perl.say for @x; | ||
p6eval | nom 676b35: OUTPUT«"yes" => Bool::True"no" => Bool::False» | ||
PerlJam | colomon: the spec has too many words for my puny brain :) | 14:45 | |
colomon | PerlJam: yeah, I might be dreaming, too. ;) | ||
colomon had a dream this morning which amounted to about the first four chapters of a Tim Powers-style modern fantasy... | 14:46 | ||
"sub fib is cached" appears in the S06. | 14:48 | ||
PerlJam | aye, I didn't think you were dreaming as I vaguely recalled it was specced too | 14:49 | |
jnthn | quick and dirty is cached implementation: gist.github.com/1423496 | 14:50 | |
colomon | and there's an entire "is cached" description a bit later. colomon is not delusional in this case! | ||
moritz | I'm sure the postcircumfix args needs a | | ||
jnthn | I'm pretty sure it doesn't :) | ||
PerlJam | jnthn: traits *and* roles! :) | ||
colomon | jnthn: that works now?! \o/ | ||
jnthn | colomon: yes | 14:51 | |
colomon | \o/ | ||
moritz | jnthn: I'm working on one that uses .wrap | ||
colomon | jnthn++ | ||
etc, etc, etc | |||
moritz | for demonstration purposes, that is | ||
colomon | much joy | ||
jnthn | oh yeah, wrap! | 14:52 | |
colomon | jnthn: why $r.clone? | ||
[Coke] | jnthn++ | ||
jnthn | gist.github.com/1423496 now as a working wrap version too | ||
colomon had been meaning to check and see if wrap was implemented in nom | 14:53 | ||
jnthn | *has | ||
moritz | colomon: you need to grab a hold of the original routine to be able to invoke it | ||
jnthn | colomon: Because we want to be able to call the original routines without the role mixed in. | ||
In theory we should be able to nextsame from postcircumfix:<( )> | |||
colomon | I think we've got another Advent post here. ;) | ||
jnthn | Though I didn't get that to work just yet | ||
(It should be easy enough to...) | 14:54 | ||
The wrap one saves having to explain roles etc though | |||
[Coke] | someone ping mjd have have him harden that. ;) | ||
PerlJam | colomon: by my count there are 3 potential posts in this one conversation | ||
14:54
Radvendii joined
|
|||
Radvendii | hello? | 14:54 | |
[Coke] | I wonder if we could get Damian to write something for the calendar. | ||
PerlJam | Radvendii: hi there! | ||
[Coke] | Radvendii: good day. | ||
moritz | moritz.faui2k3.org/tmp/cached.txt # independently developed version with wrap | ||
Radvendii | hey. what eactly is this for? | 14:55 | |
PerlJam | [Coke]: that could be interesting | ||
moritz | but not so nice as jnthn++'s | ||
PerlJam | Radvendii: Perl 6 (a programming languages) | ||
er, language | |||
jnthn | moritz: yeah, should the routine being cached get GC'd we leak its cache storage that way. | ||
Radvendii | right, i got that much. but what within that? any kind of help? | ||
colomon | recursive fib is the perfect example, because you can see a huge speed improvement with is cached | ||
moritz | jnthn: yes, it also avoids conflicts | 14:56 | |
jnthn: (with closures, that is) | |||
jnthn | yeah | ||
PerlJam | Radvendii: do you have Perl 6 questions? | ||
jnthn | that too | ||
Radvendii | about panda specifically (the perl 6 module installer) | ||
moritz | jnthn: like, in the cae of sub f() is cached { }; { sub f() is cached {} } | 14:57 | |
jnthn | moritz: *nod* | ||
Radvendii | im getting weird errors trying to install it | ||
PerlJam | Radvendii: what version of Rakudo are you running? | ||
moritz | Radvendii: I don't think it works on nom yet... tadzik should be able to tell you | ||
colomon | afk # playdate | ||
Radvendii | how do i find that out? perl6 -v? | ||
PerlJam | Radvendii: perl6 --version | 14:58 | |
jnthn | It basically works on "nom", it won't bootstrap though | ||
Due to test failure in at least Test::Mock | |||
Radvendii | PerlJam: "version 2011.11-80-gaa15f3a built on parrot 3.10.0 revision RELEASE_3_10_0-77-g6081fbd" | ||
jnthn | moritz: Did you get the 4th test file of JSON::Tiny running? | ||
toebu | rakudo: { sub x { say 1} } ;x; | ||
p6eval | rakudo 676b35: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&x' called (line 1)» | ||
toebu | rakudo: { our sub x { say 1} } ;x; | ||
p6eval | rakudo 676b35: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&x' called (line 1)» | ||
PerlJam | Radvendii: so ... what jnthn said probably. | 14:59 | |
toebu | nom: { our sub x { say 1} } ;x; | ||
p6eval | nom 676b35: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&x' called (line 1)» | ||
moritz | jnthn: well... emitting of escaped strings is still broken, but the tests were TODOed before already | ||
Radvendii | i dont know abou JSON::Tiny but Test::Mock wont work | ||
toebu | how can I make the sub visible outside the local block ? | ||
moritz | so the tests pass, even though the module is broken-ish :/ | ||
toebu: our sub foo() { ... } | |||
Radvendii | so is there a way of installing panda? | ||
toebu | moritz so rakudo is broken ? see above | 15:00 | |
moritz | toebu: no, you need to call it differently | ||
nom: package A { { our sub x { say 1 }; A::x } | |||
p6eval | nom 676b35: OUTPUT«===SORRY!===Unable to parse blockoid, couldn't find final '}' at line 1» | ||
moritz | nom: package A { { our sub x { say 1 } }; A::x } | 15:01 | |
p6eval | nom 676b35: OUTPUT«1» | ||
15:01
mkramer1 left
|
|||
moritz | toebu: you can also do something like | 15:01 | |
nom: my &x; { &x := sub { say 1 } }; x | |||
p6eval | nom 676b35: OUTPUT«1» | ||
Radvendii | Is there a solution to the panda installation fail? | ||
moritz | maybe try copying the module files to ~/.perl6/lib yourself | 15:02 | |
jnthn | Radvendii: What moritz said probably works; also, if you wait a bit, tadzik (panda author) will probably be about and will know the answer. | ||
toebu | moritz: ok to the my &x ... what if there is no package ? ::x ? what is x referring to then ? | ||
moritz | toebu: I don't think there's an implicit package in Perl 6 | ||
jnthn | nom: { our sub foo() { say 1 } }; GLOBAL::foo() | 15:03 | |
p6eval | nom 676b35: OUTPUT«1» | ||
moritz | toebu: but... are you sure you can't find a better solution? It's usually design smell if you need that | ||
jnthn wonders back to $dayjob-tasks for a bit :) | 15:04 | ||
toebu | moritz: just trying out edge cases | ||
jnthn | *wanders | ||
moritz | toebu: ok | ||
toebu | jnthn: thanks | ||
in rakudo * 11.07 foo with out GLOBAL worked | |||
moritz | does anybody want to do the advent post on traits, with the 'is cached' example? | 15:05 | |
I can it, but I've already written one for tomorrow... | |||
toebu: yes, spec changed | |||
Radvendii | i also had a question about substitution regex in perl 6: is there an option (s:opt///) that makes it return the modified string rather than modifying the string itself? | ||
jnthn | toebu: Yeah...it wrongly worked, I'm afraid. Rakudo was out of line with the spec. | ||
toebu | grin | ||
[Coke] | ARRRGH. typed "rm *" instead of "rm *~" | ||
toebu | got to update my p6 tutorial then ... | ||
moritz | Radvendii: you can do $str.subst(/regex/, 'substitution') | 15:06 | |
jnthn | moritz: If nobody else takes it on, I can. :) | ||
moritz | or you a closure as the substitution | ||
jnthn: that's nice, but you also had one already; I try not to overwork all of us :-) | |||
jnthn | moritz: Sure, I'd be happy for somebody else to take the idea and do it :) | 15:07 | |
Cconsider me a backup option :) | |||
Radvendii | yeah, but that looks clunky and with options it's even more annoying, is there no way to get it of the form "string" ~~ s:opt/regex/substitution/? | ||
closure as the substituion? | |||
what's that? | 15:08 | ||
moritz | a piece of code that is executed for each substitution | ||
Radvendii | how would that look? | ||
moritz | sub double($x) { $x.subst(:g, /\d+/, { 2 * $/ }) } | 15:09 | |
Radvendii | but that still requires .subst syntax. . ? | 15:10 | |
moritz | yes. | ||
I never said otherwise :-) | |||
Radvendii | dang. | ||
is there a syntax for adding regex options? | 15:12 | ||
moritz | Radvendii: you mean besides convincing TimToady that it belongs into core? :-) | ||
Radvendii | yes, isn't perl 6 supposed to be extendable without changing the core? | 15:13 | |
moritz | it is, and there is a syntax for that, but it's not yet implemented in any compiler | ||
jnthn | It boils down to creating a Perl 6 sub language. | 15:14 | |
Radvendii | ah, shucks. alright, thanks guys | ||
jnthn | It will be possible...though in this case, perhaps not necesarily easy. | ||
toebu | rakudo: for 1 ..^ <a b c> -> $n { say $n; } | 15:17 | |
p6eval | rakudo 676b35: OUTPUT«(timeout)» | 15:18 | |
toebu | nom: for 1 ..^ <a b c> -> $n { say $n; } | ||
p6eval | nom 676b35: OUTPUT«(timeout)» | ||
15:18
slavik1 joined
|
|||
moritz | toebu: 'rakudo' and 'nom' are aliases here | 15:18 | |
15:18
Radvendii left
|
|||
toebu | niecza: for 1 ..^ <a b c> -> $n { say $n; } | 15:18 | |
p6eval | niecza v12-2-geb42dfa: ( no output ) | ||
toebu | nom: for 1 ..^ <a b c> .elems-> $n { say $n; } | 15:20 | |
p6eval | nom 676b35: OUTPUT«===SORRY!===Missing block at line 1, near ".elems-> $"» | ||
toebu | nom: for 1 ..^[ <a b c> ].elems-> $n { say $n; } | ||
p6eval | nom 676b35: OUTPUT«===SORRY!===Unsupported use of -> as postfix; in Perl 6 please use either . to call a method, or whitespace to delimit a pointy block at line 1, near " $n { say "» | ||
toebu | nom: for 1 ..^ [ <a b c> ].elems-> $n { say $n; } | ||
p6eval | nom 676b35: OUTPUT«===SORRY!===Unsupported use of -> as postfix; in Perl 6 please use either . to call a method, or whitespace to delimit a pointy block at line 1, near " $n { say "» | ||
moritz | toebu: need whitespace before -> | 15:21 | |
toebu | nom: for 1 ..^ [ <a b c> ].elems -> $n { say $n; } | ||
p6eval | nom 676b35: OUTPUT«12» | ||
toebu | nom: for 1 ..^ [ <a b c> ] -> $n { say $n; } | ||
moritz | that one should be easy-ish to fix | ||
p6eval | nom 676b35: OUTPUT«(timeout)» | ||
moritz | probably just needs a coercion to .Numeric somewhere | ||
toebu | fly away | 15:27 | |
15:27
toebu left
|
|||
moritz | hm | 15:29 | |
15:29
Trashlord joined,
agentzh left
|
|||
moritz | I know that prefix:<^> needs to coerce to .Numeric | 15:30 | |
but I'm not sure about infix ..^ | |||
which allows Str ranges too, iirc | |||
jnthn | I guess it'd follow the same rule as for ranges normally...but I forget exactly what that is. | ||
moritz | I guess it would DWIM to coerce the second argument to Numeric if the first one is numeric too, and the second is neither Whatever nor WhateverCode | 15:31 | |
moritz calls it a day, decommute & | 15:35 | ||
jnthn | o/ | 15:38 | |
15:43
tzhs left
15:50
kaleem left
15:59
tokuhirom joined
16:12
MayDaniel joined
16:34
wk left
16:35
mj41 left
|
|||
itz | I'm getting an SSL cert issue with git pull from github? | 16:38 | |
flussence | what URL are you pulling from? | 16:41 | |
(fwiw, the website is giving me no errors here and its SSL cert's SHA1 begins "CE 67 99 25") | 16:43 | ||
mathw was excited to see the Advent Calendar back | 16:45 | ||
itz | github.com/rakudo/rakudo.git | ||
PerlJam | mathw: want to contribute an article or two? | ||
flussence | hm, "git clone github.com/rakudo/rakudo.git" works for me... | 16:46 | |
itz | odd | 16:47 | |
16:47
PartyJ joined
|
|||
itz | maybe I broke my openssl libs or something weird | 16:47 | |
16:47
PartyJ left
|
|||
TimToady | maybe you've been haxored | 16:47 | |
mathw | PerlJam: I would, but I've not touched Perl 6 for ages, I've been very busy with my new job which has required me to become very good at C# in a very short space of time | 16:48 | |
flussence | itz: if all else fails, just clone using git:// and verify the last commit SHA1 is the same as on the webpage :) | 16:50 | |
itz | I ain't afraid of no MIM | 16:53 | |
MITM even | |||
TimToady | jnthn: re throwing on detecting overflow, that's what I was suggesting at irclog.perlgeek.de/perl6/2011-12-01#i_4780387 | 17:02 | |
jnthn | TimToady: Oh, I thought you still meant "on storage" at that point :) | 17:03 | |
TimToady: It's the (int, int) --> Int thing that I'd really prefer to avoid. | 17:04 | ||
TimToady | and I agree with moritz++ that it'd be nice if we could get the carry flag | ||
jnthn | Well, it's machine specific, afaik. | ||
I suspect it's best hidden behind a set of ops. The CLR already has this stuff...on x86 it emits a "jno" or something. | |||
TimToady | C doesn't help us much here though | 17:05 | |
jnthn | No, sadly not :( | 17:07 | |
jnthn googles and instead manages to get "How to Carry the U.S. Flag" | 17:08 | ||
17:09
Trashlord left
17:17
kaare_ joined
17:21
tokuhirom left,
tokuhirom joined
17:26
tokuhirom left
17:43
fsergot joined
17:45
sayu left
17:47
donri joined
17:49
Trashlord joined
17:54
birdwindupbird joined,
birdwindupbird left,
fsergot left
17:55
Trashlord left
17:56
Trashlord joined
|
|||
mathw | how... useful | 17:58 | |
18:05
_twitch joined
|
|||
[Coke] | aloha, seen TimToady? | 18:10 | |
aloha | [Coke]: TimToady was last seen in #perl6 1 hours 5 mins ago saying "C doesn't help us much here though". | ||
moritz | [Coke]: moritz.faui2k3.org/tmp/traits.pod is that understandable for somebody who doesn't know much about traits? | 18:16 | |
donri | is this for advent? | 18:17 | |
18:17
Kharec joined
|
|||
moritz | yes | 18:18 | |
donri | moritz++ | ||
moritz | I'm still hoping that soembody signs up for day 4, but I keep that as a backup (and post it later if not needed now) | 18:19 | |
sorear | good * #perl6 | ||
[Coke] | moritz++ # sehr güt. | 18:20 | |
moritz | \o/ | 18:21 | |
18:21
daxim left
|
|||
sorear | [Coke]: once I did rm -rf * in $HOME by mistake. I think it happens to everytbody at least once. | 18:21 | |
donri | moritz: how come it matches for ":$cached!"; shouldn't "cache" be a role or something? | ||
I have alias rm=trash-put | 18:22 | ||
sorear | mathw: if you're a C# expert who wants to contribute, how about Niecza instead of Advent-Calendar? :D | ||
donri | like github.com/masak/web/blob/master/l...ispatch.pm | 18:25 | |
flussence | (speaking of disasters, I've done some horrible things at $dayjob... like accidentally wiping a partition table) | ||
sorear | std: method () { self } | 18:26 | |
p6eval | std be1f10e: OUTPUT«ok 00:01 120m» | ||
sorear | std: method () { self() } | ||
p6eval | std be1f10e: OUTPUT«===SORRY!===Undeclared routine: 'self' used at line 1Check failedFAILED 00:01 120m» | ||
sorear | How do I post comments on bugs? Just reply to the mail? | ||
donri | oh i see, it's the difference between trait_mod and trait_auxilliary? | ||
[Coke] | flussence: my worst was nuking the NIS+ master server and then making it replicate to all the remote servers. that was fun. | 18:27 | |
sorear: with RT? | |||
sorear | [Coke]: yes | ||
#105186 | |||
[Coke] | (if so, yes, or you can login to the website and comment there; but if you do that, be sure to hit the cc the list button) | ||
sorear | what address do I need to send the reply to? does RT read p6c? | 18:28 | |
PerlJam | moritz: you have the %cache scoped poorly | 18:29 | |
sorear is thinking perl6-bugs-followup@ needs to get the mail | 18:30 | ||
dalek | ast: 15f65f0 | coke++ | integration/99problems-41-to-50.t: Update blocker description |
18:31 | |
ast: 5e5122b | coke++ | S05-match/arrayhash.t: unfudge for rakudo/nom |
|||
18:31
Kharec left
|
|||
sorear pokes [Coke] | 18:32 | ||
[Coke] | sorear: yes, that one. but if you email it and don't cc the list, it's just a comment on the ticket, and only RT viewers will see it. (I think.) | ||
[Coke] would just reply all at that point. | |||
sorear | [Coke]: I tried reply all, mutt set To: p6c, Cc: empty | ||
I think I need to change one or the other | |||
[Coke] | I can't fix your mail client. ;) | 18:33 | |
let me see what gmail does. | |||
sorear | [Coke]: I'm not asking you to fix mutt | ||
[Coke]: I'm just asking what I need to have in To: and Cc: | |||
[Coke] | sorear: that was not a serious statement. see the smiley. | ||
All I can tell you is what /my/ mail client does. which I'm about to do . | 18:34 | ||
to: [email@hidden.address] [email@hidden.address] | |||
sorear | ah. | ||
[Coke] | cc: [email@hidden.address] | ||
why gmail dups it, I have no idea. Enjoy. | |||
18:34
tyatpi joined
|
|||
sorear | thanks | 18:35 | |
18:43
Trashlord left
18:45
Trashlord joined
18:47
_twitch left
19:05
Trashlord left
19:06
Trashlord joined
19:10
Trashlord left
19:12
Trashlord joined
19:17
kmwallio joined
19:21
mkramer joined,
mkramer left
19:23
lab7 joined
19:27
lab7 left
19:31
lab7 joined
19:41
wolfman2000 joined
19:49
bluescreen10 left,
bluescreen10 joined
20:02
ksi joined
20:03
xinming left
20:11
xinming joined
|
|||
[Coke] | nom: my @array = 1,2,3; say @array.exists(-1); | 20:16 | |
p6eval | nom 676b35: OUTPUT«Bool::False» | ||
[Coke] | nom: my @array = 1,2,3; say @array.exists(*-1); | ||
p6eval | nom 676b35: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are::(Mu, Mu %_) in method Numeric at src/gen/CORE.setting:634 in sub infix:<+> at src/gen/CORE.setting:2054 in method exists at src/gen/CORE.setting:4465 in block <anon> at /t… | ||
[Coke] | looking at perlcabal.org/syn/S32/Containers.html, it seems like both of those constructs are wrong. yes? | 20:18 | |
20:18
leprevost joined
|
|||
[Coke] | niecza: my @array = 1,2,3; say @array.exists(-1); | 20:19 | |
p6eval | niecza v12-2-geb42dfa: OUTPUT«Unhandled exception: Unable to resolve method exists in class Array at /tmp/PyMgW0L0oO line 1 (mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2224 (ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2225 (module-CORE @ 58)  at /hom… | ||
20:19
lab7 left
|
|||
colomon | moritz: I like your "is cached" post. moritz++ jnthn++ | 20:20 | |
moritz: btw, I just tested it on jnthn's wrap version, and it calculates fib(100) almost instantly, so the caching clearly works, even on self-recursive functions. \o/ | 20:22 | ||
hmmm... wonder if is symmetric can also be implemented this way right now.... | 20:23 | ||
20:24
leprevost left
|
|||
jnthn | oh | 20:24 | |
colomon: Do you just need to handle binary functions? | 20:25 | ||
colomon | jnthn: seems like | ||
jnthn | (arity 2) | ||
colomon | right | ||
jnthn | Yeah, you can likely do it. | ||
colomon | at least, that would be a fantastic start | ||
jnthn | Here's why it's hard | ||
colomon | you need to be able to extract the signature types from the original sub somehow | ||
jnthn | You need to get a sub that actually has - in terms the multi-dispatcher will understand - the right signature. | 20:26 | |
Well | |||
That bit is easy | |||
The hard part is building the new one. | |||
PerlJam | jnthn: eval :) | 20:27 | |
jnthn | ewwwww. | ||
colomon | oh, you can't just say wrap( -> Type1 $a, Type2 $b { blah } ) | ||
jnthn | colomon: How would it work with wrap? | ||
colomon: You need to add an extra multi candidate. | |||
colomon | oh, right, wrap replaces the original | ||
jnthn | colomon: Here's what I guess a solution will look like... | 20:28 | |
You will get an individual candidate. To get back to the actual proto, which holds the candidates, you'll can call .dispatcher. | |||
That gives you the proto. | |||
You can then .add_dispatchee (I think that's what it's called) | |||
Generating the thing to add is the hard part. Because if you just do | 20:29 | ||
sub ($a, $b) { $orig($b, $a) } | |||
It'll invoke BUT miss the types of course :) | |||
sorear | ello colomon | ||
colomon | o/ sorear | ||
jnthn | You can either make a generator, which you pass the two types in...it has a (::T1, ::T2) signature which I guess you can then use | 20:30 | |
But that probably still doesn't reify them soon enough for the multi-dispatcher. | |||
So you probably need to do a trick with a parametric role. | |||
Which do ensure signature reification of type vars. | |||
colomon: oh, there's a simpler way. | 20:33 | ||
moritz | can't you simply .clone the signature, and use it for the wrapper block | 20:34 | |
20:34
icwiener joined
|
|||
moritz | but use the opcode that gives the argument list for processing it | 20:34 | |
colomon | you've got to reverse the signature | ||
[Coke] kills some spec tests. | 20:35 | ||
dalek | ast: 7eadbcb | coke++ | S32-array/exists.t: remove invalid "exists" tests S32 says: our Bool method exists (@array: Int $index) True if the specified Array element has been assigned to so the -1 would fail (nothing at -1 index) and *-1 is invalid. |
||
jnthn | nom: sub gen(::T1, ::T2) { (sub (T1 $a, T2 $b) { }).instantiate_generic(nqp::hash('T1', T1, 'T2', T2)); }; gen(Int, Int).signature.say | 20:37 | |
p6eval | nom 676b35: OUTPUT«:(Int $a, Int $b)» | ||
20:37
localhost joined
|
|||
jnthn | Should just be able to pass a Perl 6 hash in there really... | 20:37 | |
But anyway, that just uses the mechanism that parametric roles use under the hood. | 20:38 | ||
colomon | nom: sub gen(::T1, ::T2) { (sub (T1 $a, T2 $b) { }).instantiate_generic(nqp::hash('T1', T1, 'T2', T2)); }; gen(Int, Rat).signature.say | ||
p6eval | nom 676b35: OUTPUT«:(Int $a, Rat $b)» | ||
jnthn | colomon: Nest that inside your trait aod inside that inner sub (yeah, we're gonna be 3 subs deep here :)) you can do a call to the original thing | 20:39 | |
So anyway, looks like we potentially have "is symmetric" in like, five lines of code or so... :) | |||
colomon | Not sure I understand that, but I'll give it a try when I get back from the barbershop. :) | ||
jnthn | oh come on, the code wasn't *that* hairy P | 20:40 | |
*:P | |||
moritz | nom: sub wrapper() { nextsame(|pir::perl6_current_args_rpa__P()) }; nqp::bindattr(&wrapper, Code, '$!signature', &join.signature); say &wrapper.signature.perl | ||
p6eval | nom 676b35: OUTPUT«:(Any)» | ||
moritz | nom: say &join.signature.perl | 20:41 | |
p6eval | nom 676b35: OUTPUT«:(Any)» | ||
jnthn | |pir::perl6_current_args_rpa__P()) is not going to end well, I suspect :) | 20:42 | |
But yeah, you can do signature games like that above. I'm not sure I'd say it's especially a good idea though. | |||
20:50
cooper joined
|
|||
sorear | I still do not understand the advent idea well enough to pick a topic, but if someone has an idea for me, I'll donate time. | 20:54 | |
PerlJam | sorear: the idea is to write "something cool about Perl 6" for each day of advent. | 20:57 | |
sorear is not convinced there have been 25 days worth of cool changes in Perl 6 this year | 20:58 | ||
jnthn | A lot of people reading probably won't know Perl 6 well. So it's fine to have some about cool but not especially new. | ||
(Or know it at all in some cases.) | |||
20:58
icwiener left
|
|||
jnthn | Doesn't just ahve to be about stuff in the last year. | 20:58 | |
PerlJam | sorear: you could write anything you want, but if you look at github.com/perl6/mu/blob/master/mi...instorming you can see there's some niecza-specific ideas :) | 20:59 | |
moritz | sorear: nice perl 6 idioms are also good blog post material, doesn't need to be a new feature | 21:02 | |
jnthn | ...when wondering why "git stash apply" is taking forever, make sure you didn't type "git apply" | 21:03 | |
arnsholt | Heh =) | 21:05 | |
21:05
icwiener joined,
icwiener left,
icwiener joined
|
|||
japhb | There are some rumblings about possibly using (Perl 5) Mojolicious at $day-job, which made me of course instantly wonder about what has already been written for Perl 6 ... has someone already started work on a Mojolicious (or Dancer, or what have you) port to Perl 6? | 21:07 | |
PerlJam | japhb: github.com/tadzik/Bailador | 21:08 | |
21:12
xinming left
21:18
donri left,
felher left
21:19
kmwallio left
21:20
simcop2387 joined,
snearch joined,
bluescreen10 left,
donri joined
|
|||
dalek | p: 0fce58c | jnthn++ | src/6model/reprs/CStruct.c: Fix a typo. |
21:20 | |
p: a298ab3 | jnthn++ | / (3 files): Start to sketch out CArray representation. |
|||
p: 721f08d | jnthn++ | tools/build/Makefile.in: Actually link in the CArray object file! |
|||
p: ad94412 | jnthn++ | src/ops/nqp_dyncall.ops: Teach the call engine how to handle a CArray representation (though we can't do anything much useful with it yet). |
|||
japhb | PerlJam, thank you. I can't believe I forgot Bailador. | 21:22 | |
21:24
simcop2387 left,
simcop2387 joined
21:25
felher joined
21:30
snearch left
21:32
tadzik left
21:41
kaare_ left,
orafu left
21:42
orafu joined
21:46
wolfman2000 left
|
|||
[Coke] | nom: (v) (;,,;) (v) | 21:46 | |
p6eval | nom 676b35: OUTPUT«===SORRY!===Confused at line 1, near "(v) (;,,;)"» | ||
jnthn tries to work that smiley out | 21:48 | ||
[Coke] squirts ink all over jnthn and scuttles away. | 21:51 | ||
jnthn | ...it's a squid? | 21:52 | |
21:53
apejens left,
lab7 joined
21:54
apejens joined,
ethndbst joined
|
|||
[Coke] | why not zoidberg? | 21:55 | |
21:55
ethndbst left,
ethndbst joined
|
|||
jnthn | oh! | 21:56 | |
22:06
lab7 left
|
|||
japhb | phenny, ask tadzik Why did you choose to clone Dancer, as opposed to Mojolicious or one of the other Perl 5 frameworks? Just the one you were most familiar with, or was there a deeper reason? | 22:17 | |
phenny | japhb: I'll pass that on when tadzik is around. | ||
japhb | seen mberends | 22:19 | |
aloha | mberends was last seen in #perl6 15 days 4 hours ago joining the channel. | ||
jnthn | whoa, I saw mberends IRL just a bit longer than that ago... | 22:21 | |
japhb | @production-ready-definitions.push: 'When I can teach my 8-year-old programming using one of the Perl 6 implementations, and not be surprised by something seemingly simple that is broken or out of spec.' | 22:31 | |
dalek | p: b2d7aa2 | jnthn++ | tools/build/Makefile.in: Add missing deps. |
||
p: 945817d | jnthn++ | src/6model/reprs/CArray.c: Sketch out a bit more of CArray representation. |
|||
jnthn | Grr, getting tired. | 22:32 | |
Will get this basically working tomorrow. | |||
japhb | Get some good rest, jnthn++! :-) | 22:33 | |
22:38
orafu left
22:39
orafu joined
|
|||
jnthn | Hopefully. I've felt oddly tired the whole week...hope next week I've more energy, given I'm eatching. | 22:40 | |
grr...teaching :) | |||
I don't nom my students :) | |||
anyway, night & | |||
22:44
donri left
|
|||
japhb | phenny, ask jnthn OOC, what do you teach? | 22:45 | |
phenny | japhb: I'll pass that on when jnthn is around. | ||
22:54
donri joined
23:00
ascent_ joined
23:03
MayDaniel left
23:20
tyatpi left
23:21
tyatpi joined
23:33
tadzik joined,
hundskatt left
23:45
donri left
23:48
ksi left
23:51
tyatpi left
23:56
Chillance left
|