»ö« 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«1␤10␤8␤9␤3␤7␤6␤4␤5␤2␤»
GlitchMr rakudo: (1..10)».say
p6eval rakudo 190477: OUTPUT«2␤7␤4␤8␤3␤10␤1␤9␤6␤5␤»
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«2␤10␤3␤5␤9␤1␤4␤7␤6␤8␤»
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«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
..pugs b927740: OUTPUT«decodeUTF8': bad data: '\187'␤2␤3␤4␤5␤6␤7␤8␤9␤10␤1␤»
GlitchMr perl6: (1..10)».say
p6eval rakudo 190477: OUTPUT«10␤6␤1␤7␤3␤2␤8␤4␤9␤5␤»
..niecza v10-61-gbacff10: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
..pugs b927740: OUTPUT«decodeUTF8': bad data: '\187'␤2␤3␤4␤5␤6␤7␤8␤9␤10␤1␤»
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«5␤5␤5␤» 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«1␤2␤3␤»
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«5␤6␤7␤»
[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«5␤5␤5␤»
benabik nom: sub foo { BEGIN state $a = 5; say $a++ }; foo; foo; foo
p6eval nom 1fd3f8: OUTPUT«5␤6␤7␤»
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«0␤1␤2␤»
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