»ö« 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:00
Chillance left
|
|||
sorear | lue: not necessarily; when you use A as a class name, it means (class :: does A {}) | 00:11 | |
lue: did you get the mail I forwarded you? | |||
lue | haven't checked email /me checking | ||
sorear | I forwarded it some days ago | ||
you don't check your mail daily? | 00:12 | ||
00:12
tokuhiro_ left
|
|||
lue | I see it. [I don't check *every* day, just when I remember (which used to be infrequently, but I'm starting to remember to more)] | 00:14 | |
00:24
replore_ joined
00:40
whiteknight left
00:56
daniel-s joined
|
|||
dalek | ecza/serialize: cdb4548 | sorear++ | lib/ (9 files): Checkpoint of global-variable inventory |
01:07 | |
ecza/serialize: c14dcb6 | sorear++ | lib/ (2 files): Decouple code generation process from RuntimeUnit objects |
|||
01:13
drbean left
01:15
[Coke] left
01:17
[Coke] joined
01:29
drbean joined
01:30
[Coke] left
01:31
aloha left
01:32
[Coke] joined
01:34
aloha joined
01:37
aindilis left
01:38
aindilis joined
01:40
[Coke] left
01:42
[Coke] joined
|
|||
dalek | ecza/serialize: 8ec3f49 | sorear++ | / (2 files): Change Unit methods to use the invocant instead of currentUnit |
01:43 | |
01:43
aloha left
01:44
aloha joined
01:54
dukeleto left,
dukeleto joined,
dukeleto left
01:55
aindilis left,
dukeleto joined,
[Coke] left,
dukeleto left,
aindilis joined,
dukeleto joined,
dukeleto left
01:56
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
01:57
dukeleto joined,
dukeleto left
01:58
dukeleto joined,
dukeleto left
01:59
[Coke] joined,
dukeleto joined,
dukeleto left,
dukeleto joined
02:00
dukeleto left,
dukeleto joined,
thou left,
dukeleto left,
dukeleto joined
02:01
dukeleto left,
dukeleto joined,
dukeleto left
02:02
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
02:03
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left,
uasi joined
02:04
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
02:05
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
02:06
dukeleto joined
|
|||
soh_cah_toa | dukeleto: something is very wrong w/ your client :\ | 02:06 | |
02:06
dukeleto left
02:07
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
02:08
dukeleto joined,
dukeleto left,
ChanServ sets mode: +o sorear,
dukeleto joined,
dukeleto left
02:09
sorear sets mode: +b dukeleto!*@*,
sorear sets mode: -o sorear
|
|||
soh_cah_toa wonders what that was about | 02:09 | ||
sorear | it's not a network problem | 02:10 | |
02:26
aloha left
|
|||
dalek | ecza/serialize: 9f9749d | sorear++ | / (4 files): Some rearrangements of unit/SerUnit divide; allow evals to use caller GLOBAL |
02:29 | |
sorear | /serialize can now usefully use eval | ||
02:31
wolfman2000 joined
02:32
benabik joined
|
|||
[Coke] | phenny: ask moritz to check on RT #67374 in t/spec/S29-context/die.t | 02:32 | |
phenny | [Coke]: I'll pass that on when moritz is around. | ||
dalek | ast: 9d48699 | Coke++ | S (2 files): rakudo fudging |
02:33 | |
kudo/nom: b9f048b | Coke++ | t/spectest.data: track failure, run fudged tests. |
02:34 | ||
02:55
thou joined
02:57
abercrombie left
02:59
static_perl joined
03:12
uasi left
03:30
envi_ joined
03:32
envi_ left
03:37
envi_ joined
|
|||
dalek | ecza/serialize: 1ac3838 | sorear++ | / (7 files): Refactor eval and improve protopad integration, kill eval_result global |
03:37 | |
03:40
kaleem joined
03:44
packetknife joined
03:49
packetknife left
03:54
daniel-s left
03:55
daniel-s joined
04:01
bluescreen10 left
04:08
envi_ left
04:10
apejens left,
apejens joined
04:11
drbean left,
sivoais left,
phenny left,
sivoais joined,
PZt left,
phenny joined
04:12
rhr left
04:13
rhr joined,
PZt joined
|
|||
sorear | niecza> my $x = 25; #OK | 04:15 | |
25 | |||
niecza> $x ** 3 | |||
15625 | |||
dalek | ecza/serialize: ab38e2b | sorear++ | / (4 files): Reimplement the REPL |
||
sorear | The only major feature still not reimplemented is recursive module compilation | 04:16 | |
Once that's worked out I can try "make spectest" | |||
also a few optimizations need trying | |||
[Coke] | sorear: \o/ | 04:17 | |
04:29
drbean joined
04:45
uasi joined
04:46
benabik left
04:55
soh_cah_toa left
04:56
mberends left
05:06
aloha joined
05:12
orafu left,
orafu joined
05:23
jaldhar joined
05:33
nornagest joined
|
|||
nornagest | Good morning! | 05:34 | |
05:47
dual joined
|
|||
moritz | good morning | 05:48 | |
phenny | moritz: 02:32Z <[Coke]> ask moritz to check on RT #67374 in t/spec/S29-context/die.t | ||
sorear | good morning nornagest! and moritz! | ||
05:54
wtw joined
05:55
ab5tract joined
|
|||
Woodi | perl6: my $thr = async { sleep 2; $a++ } | 06:13 | |
p6eval | rakudo b9f048: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&async' called (line 1)» | 06:14 | |
..niecza v10-61-gbacff10: OUTPUT«===SORRY!===Variable $a is not predeclared at /tmp/GBGdi8o9s_ line 1:------> my $thr = async { sleep 2; ⏏$a++ }Action method statement_prefix:async not yet implemented at /tmp/GBGdi8o9s_ line 1 (EOF):------> … | |||
..pugs b927740: OUTPUT«***  Unexpected "$thr" expecting "=", "::", context, ":" or "(" Variable "$a" requires predeclaration or explicit package name at /tmp/q2Dqyc7HIv line 1, column 4» | |||
Woodi | niecza: my $thr = async { sleep 2; my $a=2; say $a } | 06:15 | |
p6eval | niecza v10-61-gbacff10: OUTPUT«===SORRY!===Action method statement_prefix:async not yet implemented at /tmp/Z2lmKOTw53 line 1 (EOF):------> thr = async { sleep 2; my $a=2; say $a }⏏<EOL>Potential difficulties: $thr is declared but not used at … | ||
06:15
ab5tract left
|
|||
moritz | perl6: die | 06:28 | |
p6eval | niecza v10-61-gbacff10: OUTPUT«Unhandled Exception: Died at /home/p6eval/niecza/lib/CORE.setting line 790 (CORE die @ 2)  at /tmp/YmYzAnEHyj line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2181 (CORE C1041_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.sett… | ||
..rakudo b9f048: OUTPUT« in block <anon> at /tmp/FYgd_GcunK:1 in <anon> at /tmp/FYgd_GcunK:1» | |||
..pugs b927740: OUTPUT«*** Died at /tmp/lZV6lCMinZ line 1, column 1 - line 2, column 1» | |||
06:30
dual left,
cyri_ left
06:32
wamba joined
06:33
wamba left
06:34
wk left
06:36
thou left
06:38
lumi_ left
|
|||
dalek | ecza/serialize: 987fe52 | sorear++ | / (3 files): Merge branch 'master' of github.com:sorear/niecza into serialize |
06:48 | |
ecza/serialize: fbea24a | sorear++ | lib/CodeGen.cs: Fix handling of BEGIN { eval "use Other" } |
|||
ecza/serialize: de3ba5f | sorear++ | lib/Kernel.cs: Better documentation of field-isolation contracts |
|||
sorear | the BEGIN { eval }-in-a-precompiled-module case is just full of subtleties. I look forward to seeing how rakudo will do it | 06:55 | |
I'm trying to make it work in niecza but ... I'm sure I'll miss something important | 06:56 | ||
06:59
SHODAN joined
07:04
uasi left
07:07
koban joined
|
|||
dalek | ecza/serialize: ea70962 | sorear++ | lib/ (3 files): Get SubInfos and ObjectRegistry under [ContainerGlobal] contract |
07:09 | |
07:13
domidumont joined
07:15
mj41 joined
07:42
Grrrr joined
07:49
wamba joined
07:50
uasi joined
08:02
bbkr left
|
|||
dalek | kudo/nom: 41441b8 | moritz++ | src/ (5 files): native int variant of postcircumfix:<[ ]> Contains a patch to Perl6::Actions by jnthn++ |
08:05 | |
moritz | the spectest timings with and without this patch are the same, at least the difference is far below the noise level | 08:07 | |
my benchmark for .[int] is about 4% faster | 08:09 | ||
08:21
dakkar joined
08:39
lumi_ joined
08:42
sjohnson joined
08:53
wk joined
08:59
daxim joined
09:13
satyavvd joined
09:25
uasi left
09:36
Chillance joined
09:39
uasi joined,
donri joined
09:42
envi_ joined
09:46
koban left
|
|||
mls_ | Morning perl6 | 09:52 | |
the nom code gets uglier and uglier, not a good sign... | |||
09:54
envi_ left
|
|||
tadzik | hello mls_ | 09:54 | |
what do you mean? | |||
09:56
envi_ joined
|
|||
jnthn | morning | 10:00 | |
phew, internet connection works agai. | 10:01 | ||
*again | |||
tadzik | how boring | ||
hello jnthn | |||
moritz | I don't know what mls_ means, but the code duplication for Int and int *is* ugly | ||
jnthn | moritz: not surprised the spectests don't show much of a change for the .[int] patch | ||
But good that we get one for a case that does plenty of indexing. | 10:02 | ||
moritz | jnthn: just wanted to be sure that making at_pos a multi didn't slow down things considerably | 10:03 | |
jnthn | It shouldn't. | ||
mls_ | sorry, was afk for a couple of minutes | 10:14 | |
I mean too much special cases, just look at that last commit | |||
(morning jnthn, by the way ;) ) | 10:15 | ||
cognominal | mls_, is not what optimization is about? handling special optimizable cases | 10:17 | |
10:17
alc joined
|
|||
mls_ | ok, maybe it's not so bad, but things get pretty complex in nom | 10:17 | |
10:17
bbkr joined
|
|||
jnthn | I know! I mean, see src/core/Complex.pm! | 10:18 | |
;) | |||
Yes, simplicity is nice. I do expect we'll do things in the setting in the name of performance that we'd not really want to do in normal circumstances, though. | 10:19 | ||
After all, the performance of the setting largely affects every program we run on Rakudo. | |||
ooh, my talks for London Perl Workshop are accepted :) | 10:20 | ||
mls_ | congrats! | ||
(but did you really doubt it?) | 10:21 | ||
jnthn | Well, I thought since it's a one day event they may pick one of the two. :) | ||
dalek | kudo/nom: f77becd | jnthn++ | / (6 files): Merge branch 'nom' of github.com:rakudo/rakudo into nom |
||
jnthn | ...dalek? I pushed two patches :P | ||
That'll teach me to not forget to --rebase... | 10:22 | ||
tadzik | # S02-lexical-conventions/comments.t # err: =begin without matching =end | 10:23 | |
that looks like my call | |||
10:23
ab5tract joined
10:24
seba joined
|
|||
jnthn | mls_: So, reviewing your patches...which ones should I be looking at? | 10:24 | |
10:24
drbean left,
seba is now known as Guest99513
|
|||
jnthn | mls_: I shall I just go through github.com/mlschroe/rakudo/commits/nom one by one? | 10:24 | |
10:24
replore_ left,
replore_ joined
10:25
Guest99513 is now known as seba__
|
|||
mls_ | yes, that's probably the best way. I tried to keep the commits separate from each other | 10:25 | |
so each commit changes one just one specific thing | 10:26 | ||
(that's true at least for the first commits, later on it's more bugfixing) | |||
jnthn | Wow, it's quite a treasure trove of stuff! :D | ||
mls_++ | |||
mls_ | the way I store the leave phasers is probably not correct | 10:28 | |
(i.e. the pmc array I store into $!leave_phasers | 10:29 | ||
(and maybe I got carried away with the perl6_return_from_routine op) | 10:30 | ||
(parrot doesn't PARROT_EXPORT the lex lookup functions) | 10:32 | ||
10:32
uasi left
|
|||
mls_ | (and maybe we should move those helper functions I added to the top of perl6.ops to a separate file) | 10:33 | |
jnthn | yeah, that may be a good idea | 10:34 | |
10:34
alc left
|
|||
moritz | jnthn: 'git log' and dalek's RSS feed show commits from a merge in the order of their timestamp, relative to the commits of the other branch | 10:37 | |
jnthn: so they are in 'git log' if you scroll down far enough | |||
10:40
drbean joined
|
|||
jnthn | mls_: If I understand f80974589 correctly, Parrot unwinds the stack as it searches for an exception handler, and we then reinstate it on invoking the handler? | 10:42 | |
mls_ | yes | ||
10:43
ab5tract left
|
|||
mls_ | and we set the return-continuation to point back to the original context | 10:43 | |
jnthn | Yeah. Almost feels like we're working around Parrot there. | ||
Does this cope well if the exception is thrown from C too? | 10:44 | ||
mls_ | True. But I thought patching parrot just for perl6 exception handling would be a too big change. | ||
jnthn | e.g. not just "die"? | ||
mls_ | well, in that case we're using the last context | 10:45 | |
jnthn | yeah, that's what I'd expect | ||
mls_ | (i.e. it'll look like the exception occured in the op that called the c function) | ||
jnthn | perl6_invoke_catchhandler seems to cope with a null first argument | 10:46 | |
However, I miss something explaining what that is for? | |||
mls_ | That's a little hack I use for "try", cause in that case there's no exception handler | ||
but I still need to call the leave handlers | 10:47 | ||
phasers | |||
10:47
odoacre left
|
|||
jnthn | yeah, I see a later patch added something in that code path | 10:48 | |
mls_ | probably b705f3d1 | ||
10:48
MayDaniel joined
10:53
uasi joined
|
|||
jnthn | ah, the wonder of git. | 11:04 | |
git remote add mls ... | |||
...then cherry-pick :) | |||
mls_ | yes, git has its uses ;) | 11:05 | |
afk -> lunch | 11:16 | ||
11:23
leprevost joined
11:24
leprevost left
11:34
satyavvd left
11:38
Psyche^ joined
11:39
Patterner left,
Psyche^ is now known as Patterner
11:43
wk left
11:44
kaleem left
|
|||
jnthn | mls_: When I just cherry pick your first patch (59da1ec2) to head, I get a segfault on test 23 of S04-exception-handlers/catch.rakudo | 11:45 | |
mls_ | back | 11:50 | |
segfault? where exactly? | |||
jnthn | mls_: Some non-Perl 6 object (a Parrot Sub) ended up getting passed to the decontainerize op | 11:51 | |
It didn't have a check against this case, and was assuming it was getting a 6model object and thus segfaulted | 11:52 | ||
I've patched the op and the test stops segfaulting | |||
11:53
preflex left
|
|||
jnthn | Oddly I also get a failure in S14-roles/parameterized-type.t | 11:53 | |
Struggling to see how that could be related to your patch... | 11:54 | ||
mls_ | yes, I didn't patch the role handling ;) | ||
11:55
preflex joined
|
|||
jnthn | Well, it certainly fails :( | 11:55 | |
jnthn tries to work out why | |||
11:56
mtk joined
|
|||
jnthn | moritz: I assume things were clean when the [int] patch landed? | 11:56 | |
moritz | jnthn: lemme re-check | 11:57 | |
jnthn: I think it was mostly clean, except for a failure in socket.rakudo, which I tend to ignore, but I'd better test again to be sure | |||
jnthn | moritz: Looking at the trace, I can completely imagine that the failure I'm seeing was introduced with the [int] patch - primarily because postcircumfix:<[ ]> shows up in the bt... | 11:58 | |
11:59
kaleem joined
|
|||
moritz | jnthn: then assume that's true for now, and don't blame mls_++ :-) | 12:00 | |
jnthn | Yeah, I'll have a look at it a bit later. | ||
12:03
benabik joined
|
|||
jnthn | ok, first mls patch landing :) | 12:06 | |
jnthn hopes that it preserves the meta-data properly :) | 12:07 | ||
mls_ | \o/ | ||
dalek | kudo/nom: 0698d30 | mls++ | src/Perl6/Actions.pm: rework when/default implementation so that the call to succeed() happends outside of the block A block can be left by an exception handler or a call to leave(), but we still need to call succeed() in those cases. We now also check the return value of the block. |
||
kudo/nom: a968837 | jnthn++ | src/ops/perl6.ops: Harden decontainerize op to avoid segfaults. |
|||
kudo/nom: 5206c8e | jnthn++ | src/Perl6/Actions.pm: A few small cleanups after the mls++ patch, mostly just to give variables more meaningful names (like try not to store something that's not a block in a variable with block in its name :-)). |
|||
12:08
molaf_ left
|
|||
moritz | jnthn: t/spec/S14-roles/parameterized-type.t fails here too, seems to be my fault | 12:10 | |
jnthn | moritz: "your" ;) | ||
moritz: Probably as much related to the patch I gave you as anything :) | |||
moritz | our patch'es fault at least | ||
jnthn | Right, not mls++'s | ||
moritz | nom: role A[::T] does Positional { has @a handles 'postcircumfix:<[ ]>' }; my $t = A[Int]; @a[0] = 1 | 12:12 | |
p6eval | nom f77bec: OUTPUT«===SORRY!===Symbol '@a' not predeclared in <anonymous> (/tmp/kiKmXlUSDj:1)» | ||
moritz | nom: role A[::T] does Positional { has @a handles 'postcircumfix:<[ ]>' }; my $t = A[Int]; $t[0] = 1 | ||
p6eval | nom f77bec: OUTPUT«Cannot access attributes in a type object in method get_value at src/gen/CORE.setting:1301 in method postcircumfix:<[ ]> at src/gen/CORE.setting:157 in <anon> at src/gen/Metamodel.pm:1120 in block <anon> at /tmp/YWn5vd_ble:1 in <anon> at /tmp/YWn5vd_ble:1»… | ||
jnthn | That's OK; needs a .new to show the bug I guess | ||
moritz | nom: role A[::T] does Positional { has @a handles 'postcircumfix:<[ ]>' }; my $t = A[Int].new; $t[0] = 1 | ||
p6eval | nom f77bec: OUTPUT«Can not get non-existant attribute '@!a' on class '$?CLASS' in method get_value at src/gen/CORE.setting:1301 in method postcircumfix:<[ ]> at src/gen/CORE.setting:157 in block <anon> at /tmp/Zx0FlCTl6K:1 in <anon> at /tmp/Zx0FlCTl6K:1» | 12:13 | |
moritz | nom: role A[::T] does Positional { has @!a handles 'postcircumfix:<[ ]>' }; my $t = A[Int].new; $t[0] = 1 | ||
p6eval | nom f77bec: OUTPUT«Can not get non-existant attribute '@!a' on class '$?CLASS' in method get_value at src/gen/CORE.setting:1301 in method postcircumfix:<[ ]> at src/gen/CORE.setting:157 in block <anon> at /tmp/waIIfpJLUT:1 in <anon> at /tmp/waIIfpJLUT:1» | ||
jnthn | nom: role A[::T] does Positional { has @!a handles 'postcircumfix:<[ ]>' }; my $t = A[Int].new; $t[0] = 1 | ||
p6eval | nom f77bec: OUTPUT«Can not get non-existant attribute '@!a' on class '$?CLASS' in method get_value at src/gen/CORE.setting:1301 in method postcircumfix:<[ ]> at src/gen/CORE.setting:157 in block <anon> at /tmp/qFhoO1n4qk:1 in <anon> at /tmp/qFhoO1n4qk:1» | ||
jnthn | odd | 12:14 | |
moritz | jnthn: should I revert my patch until we've figured it out? | 12:15 | |
12:15
mtk left
|
|||
jnthn | moritz: No | 12:17 | |
moritz: I'll get onto it shorly. | |||
moritz | jnthn: ok, no hurry; I just don't want to burden you with additional work | ||
12:18
MayDaniel left
|
|||
moritz is watching www.youtube.com/watch?v=yJss-l2XuV8 btw | 12:18 | ||
jnthn | If I apply d7c1368c89 then we will gain a couple of todos and correcter semantics | ||
However we lose 3 spectests...but it looks like we pass them bogusly before anyway. | |||
moritz | it's OK to regress on wrong CATCH tests | ||
many of them aren't up-to-date with current spec | |||
jnthn | *nod* | 12:19 | |
ok | |||
in goes another patch then | |||
12:19
benabik left
|
|||
dalek | kudo/nom: 0cce1ae | mls++ | src/Perl6/Actions.pm: do not catch control exceptions with try {} |
12:19 | |
12:19
kaleem left
12:20
kaleem joined
|
|||
moritz | we just need to update the {eval_}{lives,dies}_ok functions in Test.pm if necessary | 12:20 | |
dalek | ast: ad7fbd8 | jnthn++ | S29-context/exit.t: Unfudge a test we now pass. |
12:24 | |
ast: af7627e | jnthn++ | S04-blocks-and-statements/pointy.t: Another unfudge. |
|||
ast: 327258f | jnthn++ | S04-statements/do.t: Todo some tests we passed for the wrong reason before. |
|||
12:26
mtk joined
12:35
ab5tract joined
|
|||
jnthn | mls_: In f80974589 I don't quite follow what the addition at line 3850 does | 12:35 | |
github.com/mlschroe/rakudo/commit/...94#L0R3850 | |||
What does .get_result actaully end up with there? | 12:36 | ||
mls_ | that was a couple of weeks ago | 12:38 | |
I think it gets the return value from the catch handler | |||
I probably want to change this to get $! at some point in the future | |||
(I think that is what TimToady++ wants) | 12:39 | ||
(At least it would be consistent with try {} ) | 12:40 | ||
jnthn | That would seem much righter | 12:41 | |
Plus remove a glob if inline PIR, which it's perferable to avoid. | |||
mls_ | so change it to PAST::Var.new( :scope('lexical_6model'), :name('$!') ) | 12:43 | |
(but you need to perl6_type_check_return_value afterwards) | |||
(in case of sub foo returns Int { die ; CATCH {default {}} } ) | 12:44 | ||
jnthn | Why do we need to add that? The sub should already be checking return values | 12:45 | |
mls_ | the block handler does a hard .return in PCT currently | ||
maybe we should change PCT so that we can specify a "return" past | 12:46 | ||
jnthn | ah, since: sub foo returns Int { die ; CATCH {default {}} }; say "we never get here" ) | ||
mls_ | yes | 12:47 | |
jnthn | Got it | ||
I have to wonder how much of perl6_rethrow_skipnextctx and perl6_invoke_catchhandler really belong in Parrot at some point. | 12:48 | ||
I guess Perl 6 isn't the only language that wants to run handlers in the dynamic scope of where the error occurred. | |||
mls_ | perl6_invoke_catchhandler is a perl6ism, most languages use the parrot semantics | ||
jnthn | Hm | ||
Maybe Perl 6 *is* the only one ;) | 12:49 | ||
mls_ | rethrow_skipnextctx: maybe. But the parrot folks want to rewrite exception handling anyway, AFAIK | ||
it would be nice to have rethrow_skipnextctx in NQP, so that nqp doesn't loop as well | 12:50 | ||
jnthn | Yeah, part of me is thinking "if we get more of the semantics we want into Parrot, then they'll not get overlooked during the rewrite" :) | 12:51 | |
mls_ | (pmichaud++ didn't like the op, though) | ||
(I think TimToady++ said that LISP also runs exceptions in the scope where they occur) | 12:53 | ||
12:54
am0c joined
|
|||
arnsholt | I don't know the details, but Common Lisp has exceptions (except they're called something else) in the scope they occur as well | 12:56 | |
Or at least the possibility of doing so. This being CL there are obviously several ways to do stuff | 12:57 | ||
jnthn | mls_: Does this patch lack the extra layer of "try" that pmichaud++ objected to in irclog.perlgeek.de/perl6/2011-08-05#i_4229123 ? | 12:58 | |
jnthn doesn't see that in the patch | |||
12:59
wamba left
|
|||
mls_ | no, we still have one extra layer. it's currently done with a block handler. | 13:00 | |
13:01
GlitchMr joined
|
|||
mls_ | (we really need it because invoke_catchhandler meddled with the call chain) | 13:01 | |
13:02
PacoLinux joined
|
|||
mls_ | (so we ned to skip all of the contexts between the handler and the point where the exception occured) | 13:02 | |
it's set up where the "set up a generic exception rethrow, so that exception" comments are | 13:03 | ||
the call chain looks like: -> [handler ctx] -> ctx -> ctx -> [exception ctx] -> [catchhandler ctx] -> ctx ... | 13:05 | ||
so we set up a generic rethrow in [catchhandler ctx] that rethrows all exceptions to the contextx before [handler ctx] | |||
jnthn | This gets us re-throwing anything the when/default doesn't deal with too, yes? | 13:07 | |
mls_ | I don't think that extra push_eh hurts much. As TimToady++ said "exceptions should only be used for exceptional things" | ||
yes, it's used excactly in that case. | 13:09 | ||
jnthn | OK. From a "exception hanlding in Rakudo is actually useful" perspective, this seems like a big set of improvements. | ||
moritz | indeed | 13:10 | |
mls_ | yeah, it's true that the opcode is ugly, but it improves things alot while not being too big of a change | ||
so we can easily change it again when we have a better idea | |||
jnthn | yes, it is a relatively contained patch. | 13:12 | |
13:12
Holy_Cow joined,
benabik joined
13:13
Holy_Cow left,
replore_ left
13:15
seba__ left
13:17
djanatyn left
13:20
MayDaniel joined
13:21
smash joined
|
|||
smash | hello everyone | 13:21 | |
jnthn | moritz: In the last test in S04-statements/try.t, it now rethrows with the mls patch | 13:22 | |
13:22
djanatyn joined
|
|||
jnthn | moritz: Is that what you'd expect? | 13:22 | |
(we never succeed) | 13:23 | ||
moritz | jnthn: yes | ||
jnthn | ok, so I should update the test to...explicilty succeed? | 13:24 | |
er, that doesn't work :( | |||
moritz | maybe run the whole contents of the CATCH block inside a default { } block | ||
jnthn | ah, that will | ||
mls_ | add a default { ... } | ||
too slow... | |||
jnthn | yeah | 13:25 | |
moritz | mls_: conferences.yapceurope.org/gpw2012/...lForPapers want to submit a talk on some p6 or rakudo hacking stuff? | ||
maybe about exception handling and phasers or so :-) | 13:26 | ||
dalek | ast: 2881bb5 | jnthn++ | S04-statements/try.t: Ensure a CATCH actually handles the exception in question. |
||
jnthn | OK, the other test file that explodes now is S04-exception-handlers/catch.t | 13:27 | |
[Coke] | I forget who was asking... moritz? but japhb has a CLA for TPF on file. bit away. | ||
moritz | [Coke]: thanks. | ||
13:29
djanatyn left
|
|||
jnthn | OK, catch.t seems...wrong :) | 13:34 | |
moritz | it is. | ||
on so many accounts that I left it alone in frustration | 13:35 | ||
jnthn | gist.github.com/1309042 | ||
There for example | |||
$lived will not be reached now that we have correcter semantics | |||
moritz | that whole block needs to be in an dies_ok { } | 13:36 | |
or maybe add a default { } block to CATCH | |||
it's sometimes hard to guess what the test author had in mind | 13:37 | ||
mls_ | (I just added a try { } to fix it) | 13:38 | |
i.e. try: { { die ... }; $lived = 1 } | 13:39 | ||
jnthn | my word, what a test file | 13:40 | |
moritz: Yeah, I've cleaned it up a bunch | |||
We actually pass all of it now that I've done a few corrections. | |||
mls_ | Oh, there used to be a "eval"... | ||
so the test was broken with the eval change | |||
so it's moritz++' fault ;) | 13:41 | ||
moritz ponders again to start an agancy that takes blame | |||
[Coke] | nom: say 699-104," tickets" # I didn't touch the queue this weekend. | 13:42 | |
p6eval | nom 0cce1a: OUTPUT«595 tickets» | ||
moritz | dammit, blame.me is already taken :-) | ||
[Coke] | it's a shame that blame.yu is gone. | 13:43 | |
mls_ | moritz: about the CfP: yes, i could do a talk. But don't you think exception handling/phasers is a bit too deep into perl6 guts for this conference? | ||
moritz | mls_: well, the implementation details surely are. But just showing the control flow and interactions could be interesting | ||
13:43
static_perl left
13:44
kaare_ joined,
djanatyn joined
|
|||
dalek | kudo/nom: ab61a0f | mls++ | src/ (3 files): Rework exception handling. Now follows the specifiaction and unrolls at the end of the exception. We use two new opcodes for this: perl6_invoke_catchhandler and perl6_rethrow_skipnextctx. The former restores the call chain that was in use when the exception was thrown, the latter is used to skip the unwanted frame when an exception has to be rethrown. |
13:46 | |
kudo/nom: 3e7f4bd | jnthn++ | src/core/Exception.pm: Correct indentation. |
|||
kudo/nom: 1904776 | jnthn++ | src/Perl6/Actions.pm: Block that we left through a CATCH should evaluate to the caught exception (note, some missing type check stuff yet). |
|||
ast: e420571 | jnthn++ | S04-exception-handlers/catch.t: Corrections and re-fudging of S04-exception-handlers/catch.t. |
|||
ast: 2be4b96 | moritz++ | S12-methods/private.t: test for RT #101964 |
13:47 | ||
ast: ec33999 | jnthn++ | S04-exception-handlers/catch.t: One for unfudge. |
13:48 | ||
moritz | [Coke]: another ticket down :-) | ||
jnthn | *more | ||
13:48
GlitchMr left
|
|||
dalek | ast: 1889978 | jnthn++ | S04-statements/try.t: One more unfudge thanks to the mls++ patch. |
13:49 | |
13:53
bluescreen10 joined
|
|||
moritz | nom: say 1 | 1..3 | 13:53 | |
p6eval | nom 0cce1a: OUTPUT«any(1, 2, 3e0, 1, 2, 3e0)» | ||
moritz | nom: say 1 | (1..3) | ||
p6eval | nom 0cce1a: OUTPUT«any(1, 1..3)» | 13:54 | |
jnthn | mls_: So, that's some of your patches applied. The leave handling, and the traits in general, I need some more time to look over and think about. | 13:55 | |
13:55
overrosy left
|
|||
jnthn | moritz: I think github.com/mlschroe/rakudo/commit/...2e841d26be may be one you have views on. | 13:55 | |
mls_ | Sure, understood. No prob. | 13:56 | |
[Coke] | moritz: \o/ | ||
13:56
overrosy joined
|
|||
jnthn | mls_: Various of the phasers also get talked about as "block traits" at times, so I'm wondering if we shouldn't be attaching them through some trait-ish mechanism. | 13:57 | |
moritz | jnthn: I'll take a look (though maybe not today), thanks | ||
jnthn | I guess that may tie in to some introspection thing too, such that &some_block.ENTER gives you pack its ENTER phasers. | 13:58 | |
13:58
djanatyn left,
benabik left
|
|||
mls_ | Yes, that would be nice. (It's something I also thought about) | 13:58 | |
13:58
benabik joined
|
|||
jnthn | mls_: My first glance over the leave handling seems to suggest that we end up having to handle it all over the place. | 13:59 | |
mls_ | no, it's not that bad | ||
I think more or less on all places where you already check the return type | |||
maybe we really should add a "return-past" option to the PCT block node where we can do the type check and the leave phaser handling | 14:00 | ||
leave phaser handler == using perl6_returncc instead of .return | |||
14:02
djanatyn joined
|
|||
mls_ | In the current implementation the really ugly thing is the adding of perl6_return in create_code_object. | 14:04 | |
jnthn | yeah, that felt like the wrong place | ||
mls_ | that should be unified with perl6_type_check_return_value, I guess | 14:05 | |
(oh, but perl6_type_check_return_value is only done in a Routine) | |||
(not for a block) | |||
jnthn | Right. | 14:06 | |
For now anyway | |||
Pointy blocks may potentially need something like it | |||
mls_ | (Hmm, is there a way to add a type to a block closure?) | ||
-> returns Int {...} ? | |||
jnthn | std: my $a = $x, $y --> Int { $x + $y }; | ||
p6eval | std 580b69a: OUTPUT«===SORRY!===Variable $x is not predeclared at /tmp/V7Q3G2xoTN line 1:------> my $a = ⏏$x, $y --> Int { $x + $y };Variable $y is not predeclared at /tmp/V7Q3G2xoTN line 1:------> my $a = $x, ⏏$y --> Int { $x + $y… | ||
jnthn | gah | ||
std: my $a = -> $x, $y --> Int { $x + $y }; | |||
p6eval | std 580b69a: OUTPUT«ok 00:01 125m» | ||
jnthn | yeah, that. | ||
mls_ | Hmm, that doesn't do the type check in Rakudo currently | 14:07 | |
(If Rakudo supports it at all) | |||
jnthn | Right. | ||
benabik | It'd be nice if p6eval's std didn't bother with all the ANSI color code stuff. | ||
jnthn | Needs fixing. | ||
Well, or just implementing ;) | |||
mls_ | So this is where we can unify the type check with the leave block handling | ||
jnthn | Yes, it seems like there's a unification or sorts to be had here. | 14:08 | |
*of | |||
mls_ | Ok, I just did the proof-of-concept, you do the clean coding ;) | ||
14:10
wolfman2000 left
|
|||
jnthn | ; | 14:12 | |
14:12
djanatyn left
|
|||
jnthn | ;) even | 14:12 | |
OK, afk for a little break | |||
back soon | |||
14:15
slavik1 left
14:16
overrosy left
14:18
overrosy joined
14:20
risou_awy is now known as risou
14:27
ab5tract left
14:28
SHODAN left
14:33
drbean left
|
|||
[Coke] just got an OOM trying to build rakudo on feather for the first time in months. | 14:36 | ||
14:36
leprevost joined
|
|||
[Coke] | (trying to compile the setting to PIR) | 14:37 | |
gfldex | i can build it on a host with 512M physical and swap space | ||
14:37
MayDaniel left
|
|||
flussence | build it normally, but stop at the setting .pbcs and copy them over from another machine. | 14:38 | |
(you should be able to trick `make` into continuing on from there normally) | |||
[Coke] | flussence: suboptimal, esp when feather is intended for hacking on p6. | 14:39 | |
$ ulimit -v | |||
524288 | |||
gfldex | that wont do | ||
flussence | yeah, it's not a good answer but it's the only one I've found so far :( | ||
gfldex | you need about 650MB | ||
14:40
JimmyZ joined
|
|||
[Coke] | anyone here have root on feather and can up the default? | 14:41 | |
benabik | Android 4.0 requires 16GB of memory to compile, apparently, so in comparison, Rakudo's a lightweight. ;-) | ||
14:44
MayDaniel joined
14:46
tokuhiro_ joined
14:48
Aridai joined
14:49
replore_ joined,
wtw left
14:51
drbean joined
14:56
ab5tract joined
14:58
djanatyn joined
15:05
slavik1 joined
15:06
Aridai left
15:07
bluescreen10 left
15:10
ab5tract left
15:16
packetknife joined
15:18
wamba joined
15:19
donri left
15:20
bluescreen10 joined
15:23
ab5tract joined,
Trashlord left
15:24
Trashlord joined
15:26
djanatyn left
15:27
djanatyn joined
15:28
Trashlord left
15:29
Trashlord joined,
uasi left
15:32
Trashlord left
15:33
GlitchMr joined,
Trashlord joined
15:35
am0c left
15:36
packetknife left
15:37
benabik left
15:38
Trashlord left
15:39
Trashlord joined
15:44
Trashlord left
15:45
Trashlord joined
15:47
Trashlord left
15:57
dual joined,
tokuhiro_ left
16:02
im2ee joined
|
|||
im2ee | Hi. :) | 16:02 | |
16:03
im2ee_ joined
|
|||
jnthn | o/ im2ee_ | 16:03 | |
16:06
JimmyZ left,
im2ee left
16:08
thou joined
16:09
daniel-s left
16:13
molaf joined
|
|||
jnthn | moritz: Fixed the regression in the roles test. | 16:15 | |
dalek | kudo/nom: 8895107 | jnthn++ | src/core/traits.pm: Improve implementation of handles trait now that we have |$c available. |
||
kudo/nom: 7305387 | jnthn++ | src/binder/bind.c: Fix bug where binder failed to handle native types properly when slurpy arrays or captures were involved. |
|||
jnthn | moritz: Actually it unconvered a couple of things that were worth doing. | ||
16:19
uasi joined
|
|||
sorear | good * #perl6 | 16:21 | |
moritz | good sorear, * | ||
erm, that wasn't quite right | 16:22 | ||
* *, * | |||
16:23
ab5tract left
|
|||
jnthn | woo, got a kcachegrind running on Windows :) | 16:24 | |
GlitchMr | rakudo: (1..10)».print | 16:25 | |
p6eval | rakudo 190477: OUTPUT«47910562138» | ||
GlitchMr | ... ok | ||
rakudo: (1..10)».say | |||
p6eval | rakudo 190477: OUTPUT«11089376452» | ||
GlitchMr | rakudo: (1..10)».say | ||
p6eval | rakudo 190477: OUTPUT«27483101965» | ||
GlitchMr | what... the | ||
rakudo: (1..10)«.say | |||
tadzik | jnthn: do you have KDE running on windows? | ||
p6eval | rakudo 190477: OUTPUT«===SORRY!===Confused at line 1, near "(1..10)\x{ab}.s"» | ||
moritz | GlitchMr: read the specs | ||
tadzik | GlitchMr: autothreading | ||
moritz | GlitchMr: really | ||
GlitchMr | ok... | 16:26 | |
rakudo: (1..10)».say | |||
p6eval | rakudo 190477: OUTPUT«21035914768» | ||
moritz | GlitchMr: don't just assume things about the language. If you 're surprised by some behavior, first read its documentation | ||
GlitchMr | ... | ||
Actually, this optimization makes sense | |||
sorear | also, why did you run the same thing three times | ||
tadzik | it's a feature | ||
GlitchMr | ... if I'm making things like »+=10 | ||
:) | 16:27 | ||
perl6: rakudo: (1..10)».say | |||
... lol | |||
p6eval | rakudo 190477: OUTPUT«===SORRY!===Confused at line 1, near "rakudo: (1"» | ||
..niecza v10-61-gbacff10: OUTPUT«12345678910» | |||
..pugs b927740: OUTPUT«decodeUTF8': bad data: '\187'23456789101» | |||
GlitchMr | perl6: (1..10)».say | ||
p6eval | rakudo 190477: OUTPUT«10617328495» | ||
..niecza v10-61-gbacff10: OUTPUT«12345678910» | |||
..pugs b927740: OUTPUT«decodeUTF8': bad data: '\187'23456789101» | |||
dalek | ecza/serialize: bd7b975 | sorear++ | lib/NieczaCLR.cs: Make CLR wrapper cache properly follow the ContainerGlobal contract |
16:29 | |
GlitchMr | perl6: (1..10).each.say | ||
p6eval | rakudo 190477: OUTPUT«Method 'each' not found for invocant of class 'Range' in block <anon> at /tmp/vTzQfAvM47:1 in <anon> at /tmp/vTzQfAvM47:1» | ||
..niecza v10-61-gbacff10: OUTPUT«Unhandled Exception: Unable to resolve method each in class Range at /tmp/HnoNxliARX line 1 (MAIN mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2181 (CORE C1041_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2182 (CORE module-… | |||
..pugs b927740: OUTPUT«*** Unimplemented unaryOp: each at /tmp/GlGS6bRlwt line 1, column 1 - line 2, column 1» | |||
jnthn | tadzik: I found a binary package, which has a Windows build of kcachegrind and exactly the KDE files needed for it :) | 16:30 | |
moritz | GlitchMr: unless there is something specific which you want to tell us, please do your experimenting in private message to p6eval | ||
GlitchMr | OK :) | ||
Sorry for spamming | |||
tadzik | jnthn: how big is that? | 16:31 | |
dalek | ecza/serialize: f82b5ae | sorear++ | lib/ (5 files): s/Container/Compartment/ to avoid confusion with Scalar et al |
||
ast: 5444422 | moritz++ | S03-junctions/autothreading.t: test for RT #76422, junctions should not flatten ranges |
16:32 | ||
jnthn | tadzik: 23 megs :) | ||
16:32
GlitchMr left
16:33
Tanktalus joined,
kaleem left
16:34
molaf left
16:35
ab5tract joined
|
|||
Tanktalus wonders when the next rakudo release will be seeing as 2011.07 doesn't seem to want to compile against parrot 3.9.0 :-S | 16:37 | ||
moritz | Tanktalus: try the 2011.10 release | 16:38 | |
sorear | Rakudo releases are normally done 3 days after Parrot releases | ||
Tanktalus | I didn't see that on the rakudo front page, moritz. | ||
sorear | Rakudo releases aren't announced on the rakudo front page anymore | 16:39 | |
moritz | Tanktalus: rakudo.org might need updating | ||
sorear | the rakudo front page lists Star releases only | ||
Tanktalus | ah. That'd drive some confusion :-) | ||
sorear | Star releases include a Parrot; you shouldn't use Star 2011.07 with anything except the bundled Parrot | ||
Tanktalus | sorear: I run on gentoo - and the two are debundled. | 16:40 | |
I suspect that the gentoo dev(s) may have not realised there was a newer rakudo, either, based on the fact it's not on the front page. | |||
16:42
daxim left
|
|||
sorear | who is the gentoo dev here? | 16:42 | |
[Coke] | I think gentoo's doing it wrong, then, no? seems like even if you debundle them, you can't upgrade the compiler on its own and expect the rest of the Star to work. | 16:43 | |
16:44
mj41 left
16:47
im2ee_ left
|
|||
Tanktalus | [Coke]: yes and no. I think they just missed it :-P | 16:47 | |
16:47
im2ee joined
16:51
[particle] left
16:52
[particle] joined
|
|||
dalek | kudo/nom: 732d6cb | jnthn++ | / (2 files): Optimize contextual lookups. Since every print/say does them, and we do print a lot during the spectests, this gives a > 5% improvement to spectest time. |
16:52 | |
16:54
replore_ left
|
|||
jnthn | -R subprof + kcachegrind = <3 | 16:57 | |
17:00
ksi joined
17:05
mkramer joined,
mkramer left,
dakkar left
17:06
uasi left
17:09
PerlJam left,
PerlJam joined
|
|||
tadzik | heh, that's what mls designed it for, no? | 17:11 | |
jnthn | tadzik: Yeah, I've only just got around to giving it a go and seeing how nice it is though :) | 17:16 | |
tadzik | oh, 5% improvement. That's like 1 second on your machine :P | 17:17 | |
jnthn | :P | ||
Turns out the mandelbrot benchmark is hugely dominated by the mandel sub itself. | 17:19 | ||
colomon | naturally. | ||
though I seem to recall sorear thought it might be the other way around on niecza. | |||
jnthn | This line: | 17:20 | |
if ($z.abs > 2) { | |||
Is surprisingly costly. | |||
17:20
uasi joined
|
|||
jnthn | Because the types differ | 17:21 | |
So it ends up calling .Bridge | |||
colomon | oh! that's an easy fix. | ||
are you sure that's the slowdown, though? abs is a relatively complex operation for Complex | 17:22 | ||
jnthn | Yeah, the > is much more expsnive than the .abs here | 17:23 | |
17:23
kent\n joined
|
|||
colomon | so if you switch it to ($z.abs > 2e0), how big a performance difference is there? | 17:24 | |
17:25
bonsaikitten joined
|
|||
jnthn | Will try it in a moment. | 17:25 | |
bonsaikitten | so ... uhm ... not that I want to complain, but wtf happened to rakudo's build system, and who do I have to bribe to not have such an unpleasant mess? | ||
colomon | and does (Real $x as Num) work yet as a signature? | ||
[Coke] | bonsaikitten: happened as compared to what? | 17:26 | |
and which parts are you finding unpleasant? | |||
bonsaikitten | [Coke]: it fetches random bits from git now and installs stuff in configure | ||
[Coke] | bonsaikitten: if you use --gen-parrot, yes | ||
bonsaikitten | so, first fail: nqp should have a proper release, second fail: configure should configure, not compile | 17:27 | |
[Coke] | and has done for some time. If you wish to use pre-installed versions, that's fine. | ||
bonsaikitten | I prefer things I can package - the "fetch stuff from git" part won't work, and even if it does it won't be able to install because that goes to the wrong path | ||
kent\n | bonsaikitten: bonsaikitten: if you use --gen-parrot, yes # | ||
if you're using --gen-parrot, then stop doing that I guess =) | 17:28 | ||
bonsaikitten | right :) | 17:29 | |
kent\n | but I'm imagining if it cant find parrot/nqp , it will probably try download it itself, which is pretty much guaranteed if you don't have nqp already ( right ? ) | ||
17:29
seba__ joined
17:30
uasi left
|
|||
bonsaikitten | it finds parrot, but nqp isn't installed (of course, it doesn't have a nice release yet, and I haven't packaged a git snapshot) | 17:30 | |
kent\n | so I guess we need a nice release of nqp, get that going and then see how it works . | 17:31 | |
bonsaikitten stabs a bit | |||
[Coke] | So, the only real bug here is "no nqp release". That is fixable. | 17:32 | |
bonsaikitten | [Coke]: so, there's no way to not have nqp installed ... independent of --gen-parrot | ||
[Coke] | bonsaikitten: too many negatives. what? | ||
bonsaikitten | --gen-parrot has nothing to do with nqp as far as I can tell | 17:33 | |
17:35
wk joined
|
|||
kent\n | does seem silly a stable rakudo release requires code that hasn't been released yet to build ;) | 17:35 | |
bonsaikitten | fixable, but so very ruby ... | ||
bonsaikitten had hoped to avoid such insanity | |||
kent\n | I think you'd just wish the build code had no "do git magic" *at all* so if requirements were unsatisfied, it just died, instead of trying to be "too helpful" | 17:36 | |
bonsaikitten | yes, but I'm old and conservative ;) | 17:37 | |
bonsaikitten even likes CVS | |||
kent\n | yeah, I'm in favour of code that doesn't do magical things I didn't ask it to do during configure... but CVS, thats just more misery than I can stomach | ||
[Coke] | the "no git magic" option is already there, you had to ask for it in the first place. ;) | 17:38 | |
bonsaikitten | perl Configure.pl --with-parrot=/usr/bin/parrot <-- no magic requested | ||
dalek | kudo/nom: 3fbb574 | jnthn++ | src/Perl6/Actions.pm: Add an nqp::sqrt_n. |
||
kudo/nom: 53997c6 | jnthn++ | src/core/Int.pm: Make Int.Bridge a bit cheaper. |
|||
kudo/nom: 10331e0 | jnthn++ | src/core/Num.pm: Use nqp::sqrt in Num.sqrt. |
|||
kudo/nom: 84cdffd | jnthn++ | src/core/Complex.pm: Just use nqp::sqrt in Complex.abs, since we're doing all the other bits with nqp ops. |
|||
jnthn | Yes, I don't think it should do any "magic" without asking for it. | 17:39 | |
--with-parrot is the way to say "do it against this Parrot" | |||
[Coke] | it should die at that point with an nqp, I agree. | ||
I assumed you were doing --gen-parrot, in the absence of data. | 17:40 | ||
anyway: looks like someone already cut a release: | |||
github.com/perl6/nqp/downloads | |||
bonsaikitten | same result, reading Configure.pl it hard-depends on either external parrot and nqp, or fetching them automatically | ||
[Coke] | I'll open a rakudobug about no magic without --gen-* | ||
bonsaikitten | merci | ||
17:41
ab5tract left
17:42
drbean left
|
|||
jnthn | colomon: Yes, the 2e0 change makes a fairly notable difference. | 17:43 | |
17:43
im2ee left
|
|||
[Coke] | rakudo: say 2e0.WHAT | 17:44 | |
p6eval | rakudo 730538: OUTPUT«Num()» | ||
jnthn | colomon: Like, factor of 7 cheaper | ||
[Coke] | rakudo: say 2.WHAT | ||
p6eval | rakudo 730538: OUTPUT«Int()» | ||
jnthn | Though it's not quite so bad now I just made Int.Bridge cheaper. | ||
[Coke] | jnthn: seems like the sort of thing the optimizer could catch, no? | ||
colomon | entire program factor of 7, or just that line? | ||
jnthn | colomon: Just that line | ||
Well | |||
OK | |||
Taht's not true either | 17:45 | ||
We spend 7 times less time doing > | |||
:) | |||
colomon | [Coke]: in theory, it should be easy to just overload > | ||
jnthn | (optimizer) it's tricky. The program has relatively few type annotations and .abs is a method call. | ||
[Coke] | bonsaikitten: rt.perl.org/rt3/Ticket/Display.html?id=102062, if you'd like to watch the ticket. | 17:46 | |
jnthn | And we can't really know much about the return values of method calls as they're late bound, unlike sub calls. | ||
[Coke] | so here's your textbook example of how to help the compiler. | 17:47 | |
(as a program author) | |||
17:53
ab5tract joined,
seba__ left
17:54
supernovus joined
|
|||
supernovus | nom: my @w = 1,2,3; @w.splice(1,1,5); @w.perl.say; | 17:55 | |
p6eval | nom 730538: OUTPUT«Method 'splice' not found for invocant of class 'Array' in block <anon> at /tmp/rYNuPyCBR8:1 in <anon> at /tmp/rYNuPyCBR8:1» | ||
17:56
drbean joined
17:57
djanatyn left
18:00
supernovus left
18:03
GlitchMr joined
18:06
kaleem joined
18:07
wk left
18:09
djanatyn joined,
kmwallio joined
18:12
im2ee joined
18:20
replore joined
18:22
wk joined
18:25
benabik joined
18:28
soh_cah_toa joined
18:32
djanatyn left
18:34
mj41 joined
18:41
leprevost left
|
|||
dalek | kudo/nom: 1fd3f82 | jnthn++ | src/Perl6/Actions.pm: Make it possible for optimizer to do better with the loop construct (though needs --optimize=3). |
18:43 | |
18:45
mj41 left
18:46
djanatyn joined
|
|||
masak | good evening, #perl6. | 18:48 | |
diakopter | o/ | ||
slavik1 | afternoon ... | ||
dang europeans not living on american time | |||
jnthn | o/ masak | ||
colomon | \o | ||
18:49
seba__ joined
|
|||
masak | slavik1: american time would suck here in europe. I'd have to get up at noon, when jnthn gets up :P | 18:49 | |
jnthn | What's wrong with that? :P | ||
slavik1 | haha | 18:50 | |
masak | :) | ||
slavik1 | imo, we should all be on utc time and not do any time shifts | ||
like the DST crap | |||
kent\n | people with a concept of time and "a day" are weird. | 18:52 | |
colomon | I vote for Newfoundland time. | ||
Just because | |||
kent\n | I mean, when you wake up at random hours, sometimes just as the sun went down, sometimes going to sleep as the sun comes up, other times going to sleep at "noon"... what relevance does a timezone or notion of "day" have in the real scale of things. | 18:53 | |
masak | as a nomad, I think days and weeks are very homsteading-biased concepts. months and years are fine, though. | 18:56 | |
bonsaikitten | I can tolerate the concept of local time to facilitate communication | 18:58 | |
flussence hates only having UTC for the cold, dark half of the year | |||
18:59
seba__ left
|
|||
Woodi | prpbably it is the best to accept that in living in sun light is moust productive (until someone practice other vy few years)... | 18:59 | |
19:02
ChanServ sets mode: +o moritz,
moritz sets mode: -b dukeleto!*@*
|
|||
sjohnson | heh | 19:02 | |
masak | bonsaikitten: given your nick, you can tolerate quite a number of things you really shouldn't! :P | ||
bonsaikitten | masak: what, just because I like nutella-salami-pickles sandwiches | 19:04 | |
masak | *lol* | ||
tadzik | good evening | ||
masak | good tadzik, evening. | 19:05 | |
19:05
moritz sets mode: -o moritz
|
|||
moritz | good \o/ everybody | 19:05 | |
colomon | \o | ||
tadzik | o/ | ||
masak | truly, a good \o/ it is. | 19:06 | |
sjohnson | (=゚ω゚=) | ||
moritz | sjohnson: that disappointingly Latin-1-ish :-9 | 19:07 | |
.u ゚ | |||
phenny | U+FF9F HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK (゚) | ||
moritz | erm, not | ||
sorry :-) | |||
tadzik | ( `ー´) | ||
moritz | I thought it was a mere ° | ||
masak .oO( The Day I Thought a ゚ was a mere ° ) | 19:13 | ||
kent\n | "sunlight is most productive" # what | 19:14 | |
tadzik | but... but everyone bothers you during sunlight! | ||
kent\n | sunlight = people awake = noise = distractions = lack of focus = nothing gets done | 19:15 | |
tadzik | sunlight = sun in the garden | ||
(sun in the garden)++ | |||
kent\n | sunlight = excessive heat = already overloaded brain cooks = you're fucked | ||
tadzik | I have this pic of me workstation somewhere | ||
19:15
dukeleto joined
|
|||
gfldex | very true tadzik, leave the sunlight to the plants | 19:15 | |
benabik | Generally speaking, most people are more productive when they are exposed to sunlight on a regular basis. Sleep cycles are more regular and productive when you wake/sleep on the same cycle as the sun. Desire to ignore daylight doesn't trump biology, sadly. | 19:16 | |
dukeleto | evidently my irc proxy was freaking out. Sorry for the flapping. | ||
tadzik | imgur.com/nD0Hn | ||
kent\n feels IT folk don't really fall into "generally speaking" so often. | |||
tadzik | this is how *I* roll :) | ||
sunlight++ | |||
moritz | jnthn: your patches brought the regular mandelbrot benchmark to 34s | ||
jnthn | moritz: From? | 19:17 | |
gfldex | can you see anything on that screen? | ||
tadzik | gfldex: yes | ||
jnthn | moritz: How is it with --optimize=3? | ||
masak | dukeleto: any chance you can, like, turn it off? | ||
tadzik | there's a reason for sitting in a shadow | ||
gfldex | eagle eyes you got there :) | ||
moritz | jnthn: 39s iirc | ||
dukeleto | masak: turn what off? My proxy? | ||
masak | ...yes...? | ||
or at least the part of it that freaks out sometimes :) | 19:18 | ||
tadzik | gfldex: I used to have +6 in both eyes, got down to 0 during like 15 years, can't complain ;) | ||
moritz | jnthn: 33s with --optimize=3 | 19:19 | |
jnthn | moritz: OK...well, guess that fits with the profile output I just saw though. | ||
sjohnson | moritz: uTF-8! | 19:21 | |
:) | 19:22 | ||
[Coke] | moritz: is there a pretty graph to show the speed of mandelbrot ? | 19:25 | |
speed *improvements* | |||
moritz | [Coke]: nope | ||
19:26
soh_cah_toa left
19:29
donri joined
|
|||
kent\n nominates somebody other than himself to make a check-in-build-and-benchmark agent that graphs runtime vs commit =p | 19:29 | ||
19:32
molaf joined
19:35
benabik left
19:41
JodaZ joined
|
|||
im2ee | My task for the next time: read the official documentation carefully. :) | 19:44 | |
19:47
benabik joined
|
|||
masak | what official documentation...? | 19:47 | |
19:49
Kivutarrr joined
|
|||
tadzik | heh. Wrote a test for MuEvent, the last event is supposed to exit 0, after 5 seconds. The test takes 17 seconds to run | 19:51 | |
19:53
benabik_ joined
|
|||
tadzik | nom: sub foo { state $a = 5; say $a++ }; foo; foo; foo #state NYI? | 19:53 | |
19:53
kmwallio left
|
|||
p6eval | nom 1fd3f8: OUTPUT«555» | 19:53 | |
tadzik | b: sub foo { state $a = 5; say $a++ }; foo; foo; foo #state NYI? | ||
p6eval | b 1b7dd1: OUTPUT«===SORRY!==="state" not yet implemented at line 22, near "= 5; say $"» | 19:54 | |
19:54
benabik left,
benabik_ is now known as benabik
|
|||
tadzik | heh, ok | 19:54 | |
or am I doing it wrong? | |||
benabik | nom: sub foo { state $a; say ++$a }; foo; foo; foo | 19:55 | |
p6eval | nom 1fd3f8: OUTPUT«123» | ||
benabik | tadzik: I'm guessing that state $a = 5 is either wrong in nom or not doing what you expect. | ||
tadzik | I suppose so | ||
benabik | nom: sub foo { state $a; BEGIN { $a = 5 }; say $a++ }; foo; foo; foo | 19:56 | |
p6eval | nom 1fd3f8: OUTPUT«567» | ||
[Coke] | benabik++ | ||
tadzik | ha, nice | ||
[Coke] | I was trying to type that out in english. ;) | ||
tadzik | is that how it should work though? | ||
I mean, is BEGIN necesarry? | |||
masak | no. | 19:57 | |
nom: sub foo { state $a = 5; say $a++ }; foo; foo; foo | |||
p6eval | nom 1fd3f8: OUTPUT«555» | ||
benabik | nom: sub foo { BEGIN state $a = 5; say $a++ }; foo; foo; foo | ||
p6eval | nom 1fd3f8: OUTPUT«567» | ||
masak | I'm pretty sure that's a bug. | ||
masak submits rakudobug | |||
[Coke] | masak: where in the spec do you see that state $a = 5; should only be invoked once? | 19:58 | |
19:58
envi_ left
|
|||
[Coke] | S04 doesn't seem to imply that. | 19:58 | |
benabik | And `BEGIN state` seems to DTRT | ||
flussence | S04:1415: But C<state> automatically applies "start" semantics to any initializer, | ||
but you're right, it doesn't explicitly say BEGIN there... | 19:59 | ||
PerlJam | also, S03:4894 | ||
flussence | (imo, it should) | ||
oh wait, START does wiw | |||
masak | what flussence++ said. | 20:00 | |
benabik | nom: sub foo { START state $a = 5; say $a++ }; foo; foo; foo | 20:01 | |
p6eval | nom 1fd3f8: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&START' called (line 1)» | ||
benabik | And nom doesn't do START, apparently. | ||
nom: sub foo { state $a will start { $a = 5 }; say $a++ }; foo; foo; foo | 20:02 | ||
p6eval | nom 1fd3f8: OUTPUT«012» | ||
tadzik | woot | ||
benabik | Fun times. | ||
tadzik | wth is that syntax :) | ||
[Coke] | PerlJam: fair enough. Thanks. | ||
masak | tadzik: it's right there in S04! :P | 20:04 | |
tadzik | and I just started to like the BEGIN :) fair enough | 20:05 | |
benabik | nom: my $x will foobar { say 'hi' } | ||
p6eval | nom 1fd3f8: ( no output ) | ||
benabik | Okay, nom just ignores unknown traits. Fair enough. | ||
tadzik: It's supposed to be START, not BEGIN, but nom doesn't grok that. BEGIN is a reasonable workaround for now, I think. | |||
[Coke] | nom: my $x will $x {}; | ||
p6eval | nom 1fd3f8: OUTPUT«===SORRY!===Confused at line 1, near "my $x will"» | ||
flussence | is that lowercase "start" mentioned anywhere besides example code? looks a bit weird to me. | 20:06 | |
20:06
GlitchMr left
|
|||
tadzik | state $counter will start { $counter = 4 }; spits out Use of uninitialized value in numeric context :/ | 20:06 | |
PerlJam | tadzik: that's a bug clearly. | ||
[Coke] | masak: I would call that a [TODO] not a [BUG] | ||
(perl #102070) | 20:07 | ||
im2ee | masak, perlcabal.org/syn/ - this Documentation. :) | ||
cognominal | A naive question. What's the point of proto and multi for most functions in Any.pm if they have only one possible signature? | ||
[Coke] | cognominal: to allow user overrides? | 20:08 | |
[Coke] is only guessing. | |||
PerlJam | cognominal: future-proofing? | ||
jnthn | Not so much override as addition. | ||
cognominal | ok, that makes sense. | 20:09 | |
jnthn | (state) the state $x = ... thing being done at START time is NYI | ||
There's some pondering that the way assignments to declarators are handled in the grammar will change though... | |||
And if that happens it'll make that rather cleaner to implement. | |||
20:13
kfo joined
|
|||
cognominal | The more I learn about Perl 6, the less I think the question "When Perl 6 (meaning some implementation) will be finished" makes sense. The question should be when it will be usable by many people. | 20:13 | |
PerlJam | cognominal: well ... define "many" :) | 20:14 | |
cognominal | ..meaning people not interested in the implementation | ||
but only getting the job done. | 20:15 | ||
Tanktalus | my definition: me and my corporate lawyers :-P | 20:16 | |
20:16
kfo_ left
|
|||
masak | [Coke]: well, it's either a feature that's implemented wrongly, or a feature that isn't implemented -- depends on how you chunk, I guess. | 20:17 | |
im2ee: it's not documentation, really. unless you're an implementor. it *is* a pretty good read, though. | 20:19 | ||
moritz: a Perl 6 workshop! \o/ | 20:22 | ||
moritz: I'll definitely try to be there! | |||
jnthn | masak: In Germany? :) | 20:25 | |
oh, I see the mail now | |||
jnthn reads | |||
nice | |||
German beer! \o/ | |||
20:26
cognomore joined
|
|||
jnthn tries to find the date | 20:26 | ||
tadzik tries to find a date | 20:27 | ||
jnthn | ah, 5-7 mar. Hm. | ||
slavik1 | will it be online? | ||
hmm | |||
next year | |||
maybe I will take a vacation :) | |||
jnthn | tadzik: ;) | ||
tadzik | during the week? OH COME ON | ||
slavik1 | I need a perl something so all of you can sign it :D | ||
lol | |||
im2ee | masak, i think it will improve my skills. :) | ||
masak | im2ee: I think I've been reading it three times at this point :) | 20:28 | |
cognominal | in which mail list is it announced? | 20:39 | |
www.iis.se/en/pressmeddelanden/per...p-hos-se-2 # is this past or future? | 20:40 | ||
20:42
drbean left
|
|||
masak | I think that's 2.5 years ago... | 20:45 | |
tadzik | gee, testing MuEvent is harder than writing it in the first place | 20:51 | |
20:51
mj41 joined
20:53
molaf left
20:55
drbean joined
|
|||
cognominal | perl6 -e 'say "a"' -e 'say "b"' # execute only the first part. | 20:59 | |
in Perl 5. It seems it concatenates the parts before evaluationting the resulting string | 21:00 | ||
masak | there's an RT ticket for that, I think. | 21:01 | |
cognominal | perl -E 'say "a' -e '";say "b"' # :) | ||
one cannot bundle options either echo toto | perl6 -ne 'BEGIN my $a=1 ' | 21:02 | ||
21:04
amkrankruleuen left
21:06
Kivutarrr left
|
|||
[Coke] | there is an too-big "perl6's flags don't work like perl5's" ticket. | 21:06 | |
tadzik | loliblug: ttjjss.wordpress.com/2011/10/24/mue...or-perl-6/ | ||
masak | [Coke]: there is? close it, it makes no sense. | ||
tadzik++ # blog post! | 21:07 | ||
cognominal | [Coke]: you mean a thicket? :) | ||
tadzik | the blog post forced me to write docs and tests :P | ||
[Coke] | masak: you opened it, and I may be overstating the case. | ||
tadzik | also, I need something to show off on #phasers :P | ||
which, by the way, collides with my classes :/ | |||
[Coke] | ugh. got the thread on the server that doesn't know what Search?Results.html | 21:08 | |
is | |||
masak | [Coke]: the title doesn't sound promising... | ||
[Coke] | ah. rt.perl.org/rt3 generates bad urls: rt.perl.org/rt3/ does not. | 21:09 | |
rt.perl.org/rt3/Ticket/Display.html?id=73790 - ah. I was misremembering. it really is just asking for -e -e, but the title misled me. | 21:10 | ||
masak++ | |||
masak | damn. Nicholas Clark mocking us on p6c! :) | 21:11 | |
this cannot stand! | |||
cognominal | I must say I don't like the string concatenating behavior of successive perl 5 -e | ||
tadzik | I don | ||
't see it | |||
damnit, enter, lose some weight | |||
benabik | tadzik: www.nntp.perl.org/group/perl.perl6....g7724.html | 21:12 | |
masak | tadzik: rt.perl.org/rt3/Ticket/Display.htm...txn-995478 | 21:13 | |
tadzik | which one to choose, hmm | ||
benabik | I was first. :-D | ||
masak | I was just going to sleep, but now I want to implement STATE semantics instead! | ||
tadzik | heh | 21:14 | |
flussence | RT is considerably more utf-8 friendly... | ||
masak | er, START semantics. | ||
masak comes to his senses and goes to bed | 21:17 | ||
tadzik | don't! don't! :P | ||
masak | I'm not sure how far I would get anyway, with pmichaud AFK and jnthn temporarily incapacitated... | 21:18 | |
'night, #p6 | 21:19 | ||
dream of proper START semantics... like in Perl 5... | 21:20 | ||
jnthn | tadzik++ # MuEvent | 21:21 | |
im2ee | Good night !:) | 21:23 | |
21:24
im2ee left
|
|||
[Coke] | masak: you should just reply to perl5 tickets saying how much better p6 is! | 21:27 | |
tadzik | ;P | ||
21:37
mj41_nb joined
21:45
colomon left
21:48
tokuhiro_ joined
21:51
soh_cah_toa joined
21:53
kaare_ left
21:57
REPLeffect joined,
colomon joined
22:00
donri left
22:09
mj41 left,
mj41_nb left
22:13
Chillance left
22:14
ksi left
22:25
Chillance joined,
wamba left
22:29
donri joined
22:30
sftp left
22:33
kaleem left
22:34
bluescreen10 left
22:39
envi_ joined
22:43
smash left,
dorlamm joined,
wooden left,
benabik left
22:44
sftp joined
22:47
dual left
22:49
franek joined
22:50
replore left,
bluescreen10 joined
22:52
dorlamm left
22:56
franek left
23:05
donri left
23:11
cooper left
23:17
MayDaniel left
23:20
Chillance left
23:29
benabik joined
|
|||
nornagest | Good night! | 23:30 | |
23:30
nornagest left
23:36
envi_ left
|
|||
cognominal | haskell amuse bouche : www.youtube.com/watch?v=b9FagOVqxmI | 23:39 | |
sorear | good * #perl6 | ||
23:43
whiteknight joined
|