Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-10-24

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:11 sorear lue: not necessarily; when you use A as a class name, it means (class :: does A {})
00:11 sorear lue: did you get the mail I forwarded you?
00:11 lue haven't checked email /me checking
00:11 sorear I forwarded it some days ago
00:12 sorear you don't check your mail daily?
00:14 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:24 replore_ joined #perl6
00:56 daniel-s joined #perl6
01:07 dalek niecza/serialize: cdb4548 | sorear++ | lib/ (9 files):
01:07 dalek niecza/serialize: Checkpoint of global-variable inventory
01:07 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/cdb4548c83
01:07 dalek niecza/serialize: c14dcb6 | sorear++ | lib/ (2 files):
01:07 dalek niecza/serialize: Decouple code generation process from RuntimeUnit objects
01:07 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/c14dcb6936
01:17 [Coke] joined #perl6
01:29 drbean joined #perl6
01:32 [Coke] joined #perl6
01:34 aloha joined #perl6
01:38 aindilis joined #perl6
01:42 [Coke] joined #perl6
01:43 dalek niecza/serialize: 8ec3f49 | sorear++ | / (2 files):
01:43 dalek niecza/serialize: Change Unit methods to use the invocant instead of currentUnit
01:43 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/8ec3f493a3
01:44 aloha joined #perl6
01:54 dukeleto joined #perl6
01:55 dukeleto joined #perl6
01:55 aindilis joined #perl6
01:55 dukeleto joined #perl6
01:56 dukeleto joined #perl6
01:56 dukeleto joined #perl6
01:57 dukeleto joined #perl6
01:58 dukeleto joined #perl6
01:59 [Coke] joined #perl6
01:59 dukeleto joined #perl6
01:59 dukeleto joined #perl6
02:00 dukeleto joined #perl6
02:00 dukeleto joined #perl6
02:01 dukeleto joined #perl6
02:01 dukeleto joined #perl6
02:02 dukeleto joined #perl6
02:03 dukeleto joined #perl6
02:03 dukeleto joined #perl6
02:03 uasi joined #perl6
02:04 dukeleto joined #perl6
02:04 dukeleto joined #perl6
02:05 dukeleto joined #perl6
02:05 dukeleto joined #perl6
02:06 dukeleto joined #perl6
02:06 soh_cah_toa dukeleto: something is very wrong w/ your client :\
02:07 dukeleto joined #perl6
02:07 dukeleto joined #perl6
02:08 dukeleto joined #perl6
02:08 dukeleto joined #perl6
02:09 * soh_cah_toa wonders what that was about
02:10 sorear it's not a network problem
02:29 dalek niecza/serialize: 9f9749d | sorear++ | / (4 files):
02:29 dalek niecza/serialize: Some rearrangements of unit/SerUnit divide; allow evals to use caller GLOBAL
02:29 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/9f9749ddc2
02:29 sorear /serialize can now usefully use eval
02:31 wolfman2000 joined #perl6
02:32 benabik joined #perl6
02:32 [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.
02:33 dalek roast: 9d48699 | Coke++ | S (2 files):
02:33 dalek roast: rakudo fudging
02:33 dalek roast: review: https://github.com/perl6/roast/commit/9d4869985a
02:34 dalek rakudo/nom: b9f048b | Coke++ | t/spectest.data:
02:34 dalek rakudo/nom: track failure, run fudged tests.
02:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b9f048bec3
02:55 thou joined #perl6
02:59 static_perl joined #perl6
03:30 envi_ joined #perl6
03:37 envi_ joined #perl6
03:37 dalek niecza/serialize: 1ac3838 | sorear++ | / (7 files):
03:37 dalek niecza/serialize: Refactor eval and improve protopad integration, kill eval_result global
03:37 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/1ac383861c
03:40 kaleem joined #perl6
03:44 packetknife joined #perl6
03:55 daniel-s joined #perl6
04:10 apejens joined #perl6
04:11 sivoais joined #perl6
04:11 phenny joined #perl6
04:13 rhr joined #perl6
04:13 PZt joined #perl6
04:15 sorear niecza> my $x = 25; #OK
04:15 sorear 25
04:15 sorear niecza> $x ** 3
04:15 sorear 15625
04:15 dalek niecza/serialize: ab38e2b | sorear++ | / (4 files):
04:15 dalek niecza/serialize: Reimplement the REPL
04:15 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/ab38e2b42c
04:16 sorear The only major feature still not reimplemented is recursive module compilation
04:16 sorear Once that's worked out I can try "make spectest"
04:16 sorear also a few optimizations need trying
04:17 [Coke] sorear: \o/
04:29 drbean joined #perl6
04:45 uasi joined #perl6
05:06 aloha joined #perl6
05:12 orafu joined #perl6
05:23 jaldhar joined #perl6
05:33 nornagest joined #perl6
05:34 nornagest Good morning!
05:46 dual joined #perl6
05:48 moritz good morning
05:48 phenny moritz: 02:32Z <[Coke]> ask moritz to check on RT #67374 in t/spec/S29-context/die.t
05:48 sorear good morning nornagest! and moritz!
05:54 wtw joined #perl6
05:55 ab5tract joined #perl6
06:13 Woodi perl6: my $thr = async { sleep 2; $a++ }
06:14 p6eval rakudo b9f048: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&async' called (line 1)␤»
06:14 p6eval ..niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Variable $a is not predeclared at /tmp/GBGdi8o9s_ line 1:�------> [32mmy $thr = async { sleep 2; [33m�[31m$a++ }[0m��Action method statement_prefix:async not yet implemented at /tmp/GBGdi8o9s_ line 1 (EOF):�------> [32m…
06:14 p6eval ..pugs b927740: OUTPUT«*** ␤    Unexpected "$thr"␤    expecting "=", "::", context, ":" or "("␤    Variable "$a" requires predeclaration or explicit package name␤    at /tmp/q2Dqyc7HIv line 1, column 4␤»
06:15 Woodi niecza: my $thr = async { sleep 2; my $a=2; say $a }
06:15 p6eval niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Action method statement_prefix:async not yet implemented at /tmp/Z2lmKOTw53 line 1 (EOF):â�¤------> [32mthr = async { sleep 2; my $a=2; say $a }[33mâ��[31m<EOL>[0mâ�¤â�¤Potential difficulties:â�¤  $thr is declared but not used at …
06:28 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…
06:28 p6eval ..rakudo b9f048: OUTPUT«␤  in block <anon> at /tmp/FYgd_GcunK:1␤  in <anon> at /tmp/FYgd_GcunK:1␤»
06:28 p6eval ..pugs b927740: OUTPUT«*** Died␤    at /tmp/lZV6lCMinZ line 1, column 1 - line 2, column 1␤»
06:32 wamba joined #perl6
06:33 wamba left #perl6
06:48 dalek niecza/serialize: 987fe52 | sorear++ | / (3 files):
06:48 dalek niecza/serialize: Merge branch 'master' of github.com:sorear/niecza into serialize
06:48 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/987fe52aaa
06:48 dalek niecza/serialize: fbea24a | sorear++ | lib/CodeGen.cs:
06:48 dalek niecza/serialize: Fix handling of BEGIN { eval "use Other" }
06:48 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/fbea24aa0e
06:48 dalek niecza/serialize: de3ba5f | sorear++ | lib/Kernel.cs:
06:48 dalek niecza/serialize: Better documentation of field-isolation contracts
06:48 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/de3ba5f23f
06:55 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:56 sorear I'm trying to make it work in niecza but ... I'm sure I'll miss something important
06:59 SHODAN joined #perl6
07:07 koban joined #perl6
07:09 dalek niecza/serialize: ea70962 | sorear++ | lib/ (3 files):
07:09 dalek niecza/serialize: Get SubInfos and ObjectRegistry under [ContainerGlobal] contract
07:09 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/ea709627a0
07:13 domidumont joined #perl6
07:15 mj41 joined #perl6
07:42 Grrrr joined #perl6
07:49 wamba joined #perl6
07:49 uasi joined #perl6
08:05 dalek rakudo/nom: 41441b8 | moritz++ | src/ (5 files):
08:05 dalek rakudo/nom: native int variant of postcircumfix:<[ ]>
08:05 dalek rakudo/nom:
08:05 dalek rakudo/nom: Contains a patch to Perl6::Actions by jnthn++
08:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/41441b8b1f
08:07 moritz the spectest timings with and without this patch are the same, at least the difference is far below the noise level
08:09 moritz my benchmark for .[int] is about 4% faster
08:21 dakkar joined #perl6
08:39 lumi_ joined #perl6
08:42 sjohnson joined #perl6
08:53 wk joined #perl6
08:59 daxim joined #perl6
09:13 satyavvd joined #perl6
09:36 Chillance joined #perl6
09:39 uasi joined #perl6
09:39 donri joined #perl6
09:42 envi_ joined #perl6
09:46 koban left #perl6
09:51 mls_ Morning perl6
09:52 mls_ the nom code gets uglier and uglier, not a good sign...
09:54 tadzik hello mls_
09:54 tadzik what do you mean?
09:56 envi_ joined #perl6
10:00 jnthn morning
10:01 jnthn phew, internet connection works agai.
10:01 jnthn *again
10:01 tadzik how boring
10:01 tadzik hello jnthn
10:01 moritz I don't know what mls_ means, but the code duplication for Int and int *is* ugly
10:01 jnthn moritz: not surprised the spectests don't show much of a change for the .[int] patch
10:02 jnthn But good that we get one for a case that does plenty of indexing.
10:03 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.
10:14 mls_ sorry, was afk for a couple of minutes
10:14 mls_ I mean too much special cases, just look at that last commit
10:15 mls_ (morning jnthn, by the way ;) )
10:17 cognominal mls_, is not what optimization is about? handling special optimizable cases
10:17 alc joined #perl6
10:17 mls_ ok, maybe it's not so bad, but things get pretty complex in nom
10:17 bbkr joined #perl6
10:18 jnthn I know! I mean, see src/core/Complex.pm!
10:18 jnthn ;)
10:19 jnthn 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 jnthn After all, the performance of the setting largely affects every program we run on Rakudo.
10:20 jnthn ooh, my talks for London Perl Workshop are accepted :)
10:20 mls_ congrats!
10:21 mls_ (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. :)
10:21 dalek rakudo/nom: f77becd | jnthn++ | / (6 files):
10:21 dalek rakudo/nom: Merge branch 'nom' of github.com:rakudo/rakudo into nom
10:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f77becde98
10:21 jnthn ...dalek? I pushed two patches :P
10:22 jnthn That'll teach me to not forget to --rebase...
10:23 tadzik # S02-lexical-conventions/comments.t # err: =begin without matching =end
10:23 tadzik that looks like my call
10:23 ab5tract joined #perl6
10:24 seba joined #perl6
10:24 jnthn mls_: So, reviewing your patches...which ones should I be looking at?
10:24 jnthn mls_: I shall I just go through https://github.com/mlschroe/rakudo/commits/nom one by one?
10:24 replore_ joined #perl6
10:25 mls_ yes, that's probably the best way. I tried to keep the commits separate from each other
10:26 mls_ so each commit changes one just one specific thing
10:26 mls_ (that's true at least for the first commits, later on it's more bugfixing)
10:26 jnthn Wow, it's quite a treasure trove of stuff! :D
10:26 jnthn mls_++
10:28 mls_ the way I store the leave phasers is probably not correct
10:29 mls_ (i.e. the pmc array I store into $!leave_phasers
10:30 mls_ (and maybe I got carried away with the perl6_return_from_routine op)
10:32 mls_ (parrot doesn't PARROT_EXPORT the lex lookup functions)
10:33 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:37 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 moritz jnthn: so they are in 'git log' if you scroll down far enough
10:40 drbean joined #perl6
10:42 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 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.
10:44 jnthn 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.
10:44 jnthn e.g. not just "die"?
10:45 mls_ well, in that case we're using the last context
10:45 jnthn yeah, that's what I'd expect
10:45 mls_ (i.e. it'll look like the exception occured in the op that called the c function)
10:46 jnthn perl6_invoke_catchhandler seems to cope with a null first argument
10:46 jnthn However, I miss something explaining what that is for?
10:46 mls_ That's a little hack I use for "try", cause in that case there's no exception handler
10:47 mls_ but I still need to call the leave handlers
10:47 mls_ phasers
10:48 jnthn yeah, I see a later patch added something in that code path
10:48 mls_ probably b705f3d1
10:48 MayDaniel joined #perl6
10:53 uasi joined #perl6
11:04 jnthn ah, the wonder of git.
11:04 jnthn git remote add mls ...
11:04 jnthn ...then cherry-pick :)
11:05 mls_ yes, git has its uses ;)
11:15 mls_ afk -> lunch
11:23 leprevost joined #perl6
11:38 Psyche^ joined #perl6
11:45 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:50 mls_ back
11:50 mls_ segfault? where exactly?
11:51 jnthn mls_: Some non-Perl 6 object (a Parrot Sub) ended up getting passed to the decontainerize op
11:52 jnthn It didn't have a check against this case, and was assuming it was getting a 6model object and thus segfaulted
11:52 jnthn I've patched the op and the test stops segfaulting
11:53 jnthn Oddly I also get a failure in S14-roles/parameterized-type.t
11:54 jnthn 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 #perl6
11:55 jnthn Well, it certainly fails :(
11:55 * jnthn tries to work out why
11:56 mtk joined #perl6
11:56 jnthn moritz: I assume things were clean when the [int] patch landed?
11:57 moritz jnthn: lemme re-check
11:57 moritz 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
11:58 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:59 kaleem joined #perl6
12:00 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 #perl6
12:06 jnthn ok, first mls patch landing :)
12:07 * jnthn hopes that it preserves the meta-data properly :)
12:07 mls_ \o/
12:07 dalek rakudo/nom: 0698d30 | mls++ | src/Perl6/Actions.pm:
12:07 dalek rakudo/nom: rework when/default implementation so that the call to succeed() happends outside of the block
12:07 dalek rakudo/nom:
12:07 dalek rakudo/nom: A block can be left by an exception handler or a call to leave(), but we still need
12:07 dalek rakudo/nom: to call succeed() in those cases. We now also check the return value of the block.
12:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0698d300c1
12:07 dalek rakudo/nom: a968837 | jnthn++ | src/ops/perl6.ops:
12:07 dalek rakudo/nom: Harden decontainerize op to avoid segfaults.
12:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a968837b7d
12:07 dalek rakudo/nom: 5206c8e | jnthn++ | src/Perl6/Actions.pm:
12:07 dalek rakudo/nom: 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:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5206c8e67e
12:09 moritz jnthn: t/spec/S14-roles/parameterized-type.t fails here too, seems to be my fault
12:10 jnthn moritz: "your" ;)
12:10 jnthn moritz: Probably as much related to the patch I gave you as anything :)
12:10 moritz our patch'es fault at least
12:10 jnthn Right, not mls++'s
12:12 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)␤»
12:12 moritz nom: role A[::T] does Positional { has @a handles 'postcircumfix:<[ ]>' }; my $t = A[Int]; $t[0] = 1
12:12 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␤»…
12:12 jnthn That's OK; needs a .new to show the bug I guess
12:12 moritz nom: role A[::T] does Positional { has @a handles 'postcircumfix:<[ ]>' }; my $t = A[Int].new; $t[0] = 1
12:13 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
12:13 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␤»
12:13 jnthn nom: role A[::T] does Positional { has @!a handles 'postcircumfix:<[ ]>' }; my $t = A[Int].new; $t[0] = 1
12:13 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␤»
12:14 jnthn odd
12:15 moritz jnthn: should I revert my patch until we've figured it out?
12:17 jnthn moritz: No
12:17 jnthn moritz: I'll get onto it shorly.
12:17 moritz jnthn: ok, no hurry; I just don't want to burden you with additional work
12:18 * moritz is watching http://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
12:18 jnthn However we lose 3 spectests...but it looks like we pass them bogusly before anyway.
12:18 moritz it's OK to regress on wrong CATCH tests
12:18 moritz many of them aren't up-to-date with current spec
12:19 jnthn *nod*
12:19 jnthn ok
12:19 jnthn in goes another patch then
12:19 dalek rakudo/nom: 0cce1ae | mls++ | src/Perl6/Actions.pm:
12:19 dalek rakudo/nom: do not catch control exceptions with try {}
12:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0cce1ae802
12:20 kaleem joined #perl6
12:20 moritz we just need to update the {eval_}{lives,dies}_ok functions in Test.pm if necessary
12:24 dalek roast: ad7fbd8 | jnthn++ | S29-context/exit.t:
12:24 dalek roast: Unfudge a test we now pass.
12:24 dalek roast: review: https://github.com/perl6/roast/commit/ad7fbd8250
12:24 dalek roast: af7627e | jnthn++ | S04-blocks-and-statements/pointy.t:
12:24 dalek roast: Another unfudge.
12:24 dalek roast: review: https://github.com/perl6/roast/commit/af7627ea2e
12:24 dalek roast: 327258f | jnthn++ | S04-statements/do.t:
12:24 dalek roast: Todo some tests we passed for the wrong reason before.
12:24 dalek roast: review: https://github.com/perl6/roast/commit/327258f62b
12:26 mtk joined #perl6
12:35 ab5tract joined #perl6
12:35 jnthn mls_: In f80974589 I don't quite follow what the addition at line 3850 does
12:35 jnthn https://github.com/mlschroe/rakudo/commit/f80974589c064844083beb007f27a3cecea1ea94#L0R3850
12:36 jnthn What does .get_result actaully end up with there?
12:38 mls_ that was a couple of weeks ago
12:38 mls_ I think it gets the return value from the catch handler
12:38 mls_ I probably want to change this to get $! at some point in the future
12:39 mls_ (I think that is what TimToady++ wants)
12:40 mls_ (At least it would be consistent with try {} )
12:41 jnthn That would seem much righter
12:41 jnthn Plus remove a glob if inline PIR, which it's perferable to avoid.
12:43 mls_ so change it to PAST::Var.new( :scope('lexical_6model'), :name('$!') )
12:43 mls_ (but you need to perl6_type_check_return_value afterwards)
12:44 mls_ (in case of sub foo returns Int { die ; CATCH {default {}} } )
12:45 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
12:46 mls_ 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" )
12:47 mls_ yes
12:47 jnthn Got it
12:48 jnthn I have to wonder how much of perl6_rethrow_skipnextctx and perl6_invoke_catchhandler really belong in Parrot at some point.
12:48 jnthn I guess Perl 6 isn't the only language that wants to run handlers in the dynamic scope of where the error occurred.
12:48 mls_ perl6_invoke_catchhandler is a perl6ism, most languages use the parrot semantics
12:48 jnthn Hm
12:49 jnthn Maybe Perl 6 *is* the only one ;)
12:49 mls_ rethrow_skipnextctx: maybe. But the parrot folks want to rewrite exception handling anyway, AFAIK
12:50 mls_ it would be nice to have rethrow_skipnextctx in NQP, so that nqp doesn't loop as well
12:51 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)
12:53 mls_ (I think TimToady++ said that LISP also runs exceptions in the scope where they occur)
12:54 am0c joined #perl6
12:56 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 arnsholt Or at least the possibility of doing so. This being CL there are obviously several ways to do stuff
12:58 jnthn mls_: Does this patch lack the extra layer of "try" that pmichaud++ objected to in http://irclog.perlgeek.de/perl6/2011-08-05#i_4229123 ?
12:58 * jnthn doesn't see that in the patch
13:00 mls_ no, we still have one extra layer. it's currently done with a block handler.
13:01 GlitchMr joined #perl6
13:01 mls_ (we really need it because invoke_catchhandler meddled with the call chain)
13:02 PacoLinux joined #perl6
13:02 mls_ (so we ned to skip all of the contexts between the handler and the point where the exception occured)
13:03 mls_ it's set up where the "set up a generic exception rethrow, so that exception" comments are
13:05 mls_ the call chain looks like: -> [handler ctx] -> ctx -> ctx -> [exception ctx] -> [catchhandler ctx] -> ctx ...
13:05 mls_ so we set up a generic rethrow in [catchhandler ctx] that rethrows all exceptions to the contextx before [handler ctx]
13:07 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"
13:09 mls_ 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.
13:10 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
13:10 mls_ so we can easily change it again when we have a better idea
13:12 jnthn yes, it is a relatively contained patch.
13:12 Holy_Cow joined #perl6
13:12 benabik joined #perl6
13:13 Holy_Cow left #perl6
13:20 MayDaniel joined #perl6
13:21 smash joined #perl6
13:21 smash hello everyone
13:22 jnthn moritz: In the last test in S04-statements/try.t, it now rethrows with the mls patch
13:22 djanatyn joined #perl6
13:22 jnthn moritz: Is that what you'd expect?
13:23 jnthn (we never succeed)
13:23 moritz jnthn: yes
13:24 jnthn ok, so I should update the test to...explicilty succeed?
13:24 jnthn er, that doesn't work :(
13:24 moritz maybe run the whole contents of the CATCH block inside a default { } block
13:24 jnthn ah, that will
13:24 mls_ add a default { ... }
13:24 mls_ too slow...
13:25 jnthn yeah
13:25 moritz mls_: http://conferences.yapceurope.org/gpw2012/wiki?node=CallForPapers want to submit a talk on some p6 or rakudo hacking stuff?
13:26 moritz maybe about exception handling and phasers or so :-)
13:26 dalek roast: 2881bb5 | jnthn++ | S04-statements/try.t:
13:26 dalek roast: Ensure a CATCH actually handles the exception in question.
13:26 dalek roast: review: https://github.com/perl6/roast/commit/2881bb581b
13:27 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.
13:27 moritz [Coke]: thanks.
13:34 jnthn OK, catch.t seems...wrong :)
13:34 moritz it is.
13:35 moritz on so many accounts that I left it alone in frustration
13:35 jnthn https://gist.github.com/1309042
13:35 jnthn There for example
13:35 jnthn $lived will not be reached now that we have correcter semantics
13:36 moritz that whole block needs to be in an dies_ok { }
13:36 moritz or maybe add a default { } block to CATCH
13:37 moritz it's sometimes hard to guess what the test author had in mind
13:38 mls_ (I just added a try { } to fix it)
13:39 mls_ i.e. try: { { die ... }; $lived = 1 }
13:40 jnthn my word, what a test file
13:40 jnthn moritz: Yeah, I've cleaned it up a bunch
13:40 jnthn We actually pass all of it now that I've done a few corrections.
13:40 mls_ Oh, there used to be a "eval"...
13:40 mls_ so the test was broken with the eval change
13:41 mls_ so it's moritz++' fault ;)
13:41 * moritz ponders again to start an agancy that takes blame
13:42 [Coke] nom: say 699-104," tickets" # I didn't touch the queue this weekend.
13:42 p6eval nom 0cce1a: OUTPUT«595 tickets␤»
13:42 moritz dammit, blame.me is already taken :-)
13:43 [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?
13:43 moritz mls_: well, the implementation details surely are. But just showing the control flow and interactions could be interesting
13:44 kaare_ joined #perl6
13:44 djanatyn joined #perl6
13:46 dalek rakudo/nom: ab61a0f | mls++ | src/ (3 files):
13:46 dalek rakudo/nom: Rework exception handling. Now follows the specifiaction and unrolls at the end of the exception.
13:46 dalek rakudo/nom:
13:46 dalek rakudo/nom: We use two new opcodes for this: perl6_invoke_catchhandler and perl6_rethrow_skipnextctx.
13:46 dalek rakudo/nom: The former restores the call chain that was in use when the exception was thrown, the
13:46 dalek rakudo/nom: latter is used to skip the unwanted frame when an exception has to be rethrown.
13:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ab61a0fcd1
13:46 dalek rakudo/nom: 3e7f4bd | jnthn++ | src/core/Exception.pm:
13:46 dalek rakudo/nom: Correct indentation.
13:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3e7f4bdc4d
13:46 dalek rakudo/nom: 1904776 | jnthn++ | src/Perl6/Actions.pm:
13:46 dalek rakudo/nom: Block that we left through a CATCH should evaluate to the caught exception (note, some missing type check stuff yet).
13:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1904776ef8
13:46 dalek roast: e420571 | jnthn++ | S04-exception-handlers/catch.t:
13:46 dalek roast: Corrections and re-fudging of S04-exception-handlers/catch.t.
13:46 dalek roast: review: https://github.com/perl6/roast/commit/e420571898
13:47 dalek roast: 2be4b96 | moritz++ | S12-methods/private.t:
13:47 dalek roast: test for RT #101964
13:47 dalek roast: review: https://github.com/perl6/roast/commit/2be4b96a94
13:48 dalek roast: ec33999 | jnthn++ | S04-exception-handlers/catch.t:
13:48 moritz [Coke]: another ticket down :-)
13:48 dalek roast: One for unfudge.
13:48 dalek roast: review: https://github.com/perl6/roast/commit/ec33999d74
13:48 jnthn *more
13:49 dalek roast: 1889978 | jnthn++ | S04-statements/try.t:
13:49 dalek roast: One more unfudge thanks to the mls++ patch.
13:49 dalek roast: review: https://github.com/perl6/roast/commit/188997876e
13:53 bluescreen10 joined #perl6
13:53 moritz nom: say 1 | 1..3
13:53 p6eval nom 0cce1a: OUTPUT«any(1, 2, 3e0, 1, 2, 3e0)␤»
13:53 moritz nom: say 1 | (1..3)
13:54 p6eval nom 0cce1a: OUTPUT«any(1, 1..3)␤»
13:55 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 jnthn moritz: I think https://github.com/mlschroe/rakudo/commit/ac0119208694680468fb1d68fd2fdb2e841d26be may be one you have views on.
13:56 mls_ Sure, understood. No prob.
13:56 [Coke] moritz: \o/
13:56 overrosy joined #perl6
13:57 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
13:58 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 mls_ Yes, that would be nice. (It's something I also thought about)
13:58 benabik joined #perl6
13:59 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
13:59 mls_ I think more or less on all places where you already check the return type
14:00 mls_ 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 mls_ leave phaser handler == using perl6_returncc instead of .return
14:02 djanatyn joined #perl6
14:04 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
14:05 mls_ that should be unified with perl6_type_check_return_value, I guess
14:05 mls_ (oh, but perl6_type_check_return_value is only done in a Routine)
14:05 mls_ (not for a block)
14:06 jnthn Right.
14:06 jnthn For now anyway
14:06 jnthn Pointy blocks may potentially need something like it
14:06 mls_ (Hmm, is there a way to add a type to a block closure?)
14:06 mls_ -> returns Int {...} ?
14:06 jnthn std: my $a = $x, $y --> Int { $x + $y };
14:06 p6eval std 580b69a: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable $x is not predeclared at /tmp/V7Q3G2xoTN line 1:�------> [32mmy $a = [33m�[31m$x, $y --> Int { $x + $y };[0m�Variable $y is not predeclared at /tmp/V7Q3G2xoTN line 1:�------> [32mmy $a = $x, [33m�[31m$y --> Int { $x + $y…
14:06 jnthn gah
14:06 jnthn std: my $a = -> $x, $y --> Int { $x + $y };
14:06 p6eval std 580b69a: OUTPUT«ok 00:01 125m␤»
14:06 jnthn yeah, that.
14:07 mls_ Hmm, that doesn't do the type check in Rakudo currently
14:07 mls_ (If Rakudo supports it at all)
14:07 jnthn Right.
14:07 benabik It'd be nice if p6eval's std didn't bother with all the ANSI color code stuff.
14:07 jnthn Needs fixing.
14:07 jnthn Well, or just implementing ;)
14:07 mls_ So this is where we can unify the type check with the leave block handling
14:08 jnthn Yes, it seems like there's a unification or sorts to be had here.
14:08 jnthn *of
14:08 mls_ Ok, I just did the proof-of-concept, you do the clean coding ;)
14:12 jnthn ;
14:12 jnthn ;) even
14:12 jnthn OK, afk for a little break
14:12 jnthn back soon
14:18 overrosy joined #perl6
14:36 * [Coke] just got an OOM trying to build rakudo on feather for the first time in months.
14:36 leprevost joined #perl6
14:37 [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:38 flussence build it normally, but stop at the setting .pbcs and copy them over from another machine.
14:38 flussence (you should be able to trick `make` into continuing on from there normally)
14:39 [Coke] flussence: suboptimal, esp when feather is intended for hacking on p6.
14:39 [Coke] $ ulimit -v
14:39 [Coke] 524288
14:39 gfldex that wont do
14:39 flussence yeah, it's not a good answer but it's the only one I've found so far :(
14:39 gfldex you need about 650MB
14:40 JimmyZ joined #perl6
14:41 [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 #perl6
14:46 tokuhiro_ joined #perl6
14:48 Aridai joined #perl6
14:49 replore_ joined #perl6
14:51 drbean joined #perl6
14:56 ab5tract joined #perl6
14:58 djanatyn joined #perl6
15:05 slavik1 joined #perl6
15:16 packetknife joined #perl6
15:18 wamba joined #perl6
15:20 bluescreen10 joined #perl6
15:23 ab5tract joined #perl6
15:24 Trashlord joined #perl6
15:27 djanatyn joined #perl6
15:29 Trashlord joined #perl6
15:33 GlitchMr joined #perl6
15:33 Trashlord joined #perl6
15:39 Trashlord joined #perl6
15:45 Trashlord joined #perl6
15:57 dual joined #perl6
16:02 im2ee joined #perl6
16:02 im2ee Hi. :)
16:03 im2ee_ joined #perl6
16:03 jnthn o/ im2ee_
16:08 thou joined #perl6
16:13 molaf joined #perl6
16:15 jnthn moritz: Fixed the regression in the roles test.
16:15 dalek rakudo/nom: 8895107 | jnthn++ | src/core/traits.pm:
16:15 dalek rakudo/nom: Improve implementation of handles trait now that we have |$c available.
16:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/889510749f
16:15 dalek rakudo/nom: 7305387 | jnthn++ | src/binder/bind.c:
16:15 dalek rakudo/nom: Fix bug where binder failed to handle native types properly when slurpy arrays or captures were involved.
16:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/73053873df
16:15 jnthn moritz: Actually it unconvered a couple of things that were worth doing.
16:19 uasi joined #perl6
16:21 sorear good * #perl6
16:21 moritz good sorear, *
16:22 moritz erm, that wasn't quite right
16:22 moritz * *, *
16:24 jnthn woo, got a kcachegrind running on Windows :)
16:25 GlitchMr rakudo: (1..10)».print
16:25 p6eval rakudo 190477: OUTPUT«47910562138»
16:25 GlitchMr ... ok
16:25 GlitchMr rakudo: (1..10)».say
16:25 p6eval rakudo 190477: OUTPUT«1␤10␤8␤9␤3␤7␤6␤4␤5␤2␤»
16:25 GlitchMr rakudo: (1..10)».say
16:25 p6eval rakudo 190477: OUTPUT«2␤7␤4␤8␤3␤10␤1␤9␤6␤5␤»
16:25 GlitchMr what... the
16:25 GlitchMr rakudo: (1..10)«.say
16:25 tadzik jnthn: do you have KDE running on windows?
16:25 p6eval rakudo 190477: OUTPUT«===SORRY!===␤Confused at line 1, near "(1..10)\x{ab}.s"␤»
16:25 moritz GlitchMr: read the specs
16:25 tadzik GlitchMr: autothreading
16:25 moritz GlitchMr: really
16:26 GlitchMr ok...
16:26 GlitchMr rakudo: (1..10)».say
16:26 p6eval rakudo 190477: OUTPUT«2␤10␤3␤5␤9␤1␤4␤7␤6␤8␤»
16:26 moritz GlitchMr: don't just assume things about the language. If you 're surprised by some behavior, first read its documentation
16:26 GlitchMr ...
16:26 GlitchMr Actually, this optimization makes sense
16:26 sorear also, why did you run the same thing three times
16:26 tadzik it's a feature
16:26 GlitchMr ... if I'm making things like »+=10
16:27 GlitchMr :)
16:27 GlitchMr perl6: rakudo: (1..10)».say
16:27 GlitchMr ... lol
16:27 p6eval rakudo 190477: OUTPUT«===SORRY!===␤Confused at line 1, near "rakudo: (1"␤»
16:27 p6eval ..niecza v10-61-gbacff10: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
16:27 p6eval ..pugs b927740: OUTPUT«decodeUTF8': bad data: '\187'␤2␤3␤4␤5␤6␤7␤8␤9␤10␤1␤»
16:27 GlitchMr perl6: (1..10)».say
16:27 p6eval rakudo 190477: OUTPUT«10␤6␤1␤7␤3␤2␤8␤4␤9␤5␤»
16:27 p6eval ..niecza v10-61-gbacff10: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
16:27 p6eval ..pugs b927740: OUTPUT«decodeUTF8': bad data: '\187'␤2␤3␤4␤5␤6␤7␤8␤9␤10␤1␤»
16:29 dalek niecza/serialize: bd7b975 | sorear++ | lib/NieczaCLR.cs:
16:29 dalek niecza/serialize: Make CLR wrapper cache properly follow the ContainerGlobal contract
16:29 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/bd7b975611
16:29 GlitchMr perl6: (1..10).each.say
16:29 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␤»
16:29 p6eval ..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-…
16:29 p6eval ..pugs b927740: OUTPUT«*** Unimplemented unaryOp: each␤    at /tmp/GlGS6bRlwt line 1, column 1 - line 2, column 1␤»
16:30 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
16:30 GlitchMr OK :)
16:30 GlitchMr Sorry for spamming
16:31 tadzik jnthn: how big is that?
16:31 dalek niecza/serialize: f82b5ae | sorear++ | lib/ (5 files):
16:31 dalek niecza/serialize: s/Container/Compartment/ to avoid confusion with Scalar et al
16:31 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/f82b5ae451
16:32 dalek roast: 5444422 | moritz++ | S03-junctions/autothreading.t:
16:32 dalek roast: test for RT #76422, junctions should not flatten ranges
16:32 dalek roast: review: https://github.com/perl6/roast/commit/5444422301
16:32 jnthn tadzik: 23 megs :)
16:33 Tanktalus joined #perl6
16:35 ab5tract joined #perl6
16:37 * 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:38 moritz Tanktalus: try the 2011.10 release
16:38 sorear Rakudo releases are normally done 3 days after Parrot releases
16:38 Tanktalus I didn't see that on the rakudo front page, moritz.
16:39 sorear Rakudo releases aren't announced on the rakudo front page anymore
16:39 moritz Tanktalus: rakudo.org might need updating
16:39 sorear the rakudo front page lists Star releases only
16:39 Tanktalus ah. That'd drive some confusion :-)
16:39 sorear Star releases include a Parrot; you shouldn't use Star 2011.07 with anything except the bundled Parrot
16:40 Tanktalus sorear: I run on gentoo - and the two are debundled.
16:40 Tanktalus 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 sorear who is the gentoo dev here?
16:43 [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:47 Tanktalus [Coke]: yes and no. I think they just missed it :-P
16:47 im2ee joined #perl6
16:52 [particle] joined #perl6
16:52 dalek rakudo/nom: 732d6cb | jnthn++ | / (2 files):
16:52 dalek rakudo/nom: 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 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/732d6cb742
16:57 jnthn -R subprof + kcachegrind = <3
17:00 ksi joined #perl6
17:05 mkramer joined #perl6
17:09 PerlJam joined #perl6
17:11 tadzik heh, that's what mls designed it for, no?
17:16 jnthn tadzik: Yeah, I've only just got around to giving it a go and seeing how nice it is though :)
17:17 tadzik oh, 5% improvement. That's like 1 second on your machine :P
17:17 jnthn :P
17:19 jnthn Turns out the mandelbrot benchmark is hugely dominated by the mandel sub itself.
17:19 colomon naturally.
17:19 colomon though I seem to recall sorear thought it might be the other way around on niecza.
17:20 jnthn This line:
17:20 jnthn if ($z.abs > 2) {
17:20 jnthn Is surprisingly costly.
17:20 uasi joined #perl6
17:21 jnthn Because the types differ
17:21 jnthn So it ends up calling .Bridge
17:21 colomon oh!  that's an easy fix.
17:22 colomon are you sure that's the slowdown, though?  abs is a relatively complex operation for Complex
17:23 jnthn Yeah, the > is much more expsnive than the .abs here
17:23 kent\n joined #perl6
17:24 colomon so if you switch it to ($z.abs > 2e0), how big a performance difference is there?
17:25 bonsaikitten joined #perl6
17:25 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?
17:25 colomon and does (Real $x as Num) work yet as a signature?
17:26 [Coke] bonsaikitten: happened as compared to what?
17:26 [Coke] and which parts are you finding unpleasant?
17:26 bonsaikitten [Coke]: it fetches random bits from git now and installs stuff in configure
17:26 [Coke] bonsaikitten: if you use --gen-parrot, yes
17:27 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.
17:27 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
17:27 kent\n bonsaikitten: bonsaikitten: if you use --gen-parrot, yes #
17:28 kent\n if you're using --gen-parrot, then stop doing that I guess =)
17:29 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 #perl6
17:30 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:31 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
17:32 [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
17:32 [Coke] bonsaikitten: too many negatives. what?
17:33 bonsaikitten --gen-parrot has nothing to do with nqp as far as I can tell
17:35 wk joined #perl6
17:35 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 ...
17:35 * bonsaikitten had hoped to avoid such insanity
17:36 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:37 bonsaikitten yes, but I'm old and conservative ;)
17:37 * bonsaikitten even likes CVS
17:37 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
17:38 [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
17:38 dalek rakudo/nom: 3fbb574 | jnthn++ | src/Perl6/Actions.pm:
17:38 dalek rakudo/nom: Add an nqp::sqrt_n.
17:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3fbb57434b
17:38 dalek rakudo/nom: 53997c6 | jnthn++ | src/core/Int.pm:
17:38 dalek rakudo/nom: Make Int.Bridge a bit cheaper.
17:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/53997c696f
17:38 dalek rakudo/nom: 10331e0 | jnthn++ | src/core/Num.pm:
17:38 dalek rakudo/nom: Use nqp::sqrt in Num.sqrt.
17:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/10331e0ca6
17:38 dalek rakudo/nom: 84cdffd | jnthn++ | src/core/Complex.pm:
17:38 dalek rakudo/nom: Just use nqp::sqrt in Complex.abs, since we're doing all the other bits with nqp ops.
17:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/84cdffda9e
17:39 jnthn Yes, I don't think it should do any "magic" without asking for it.
17:39 jnthn --with-parrot is the way to say "do it against this Parrot"
17:39 [Coke] it should die at that point with an nqp, I agree.
17:40 [Coke] I assumed you were doing --gen-parrot, in the absence of data.
17:40 [Coke] anyway: looks like someone already cut a release:
17:40 [Coke] https://github.com/perl6/nqp/downloads
17:40 bonsaikitten same result, reading Configure.pl it hard-depends on either external parrot and nqp, or fetching them automatically
17:40 [Coke] I'll open a rakudobug about no magic without --gen-*
17:40 bonsaikitten merci
17:43 jnthn colomon: Yes, the 2e0 change makes a fairly notable difference.
17:44 [Coke] rakudo: say 2e0.WHAT
17:44 p6eval rakudo 730538: OUTPUT«Num()␤»
17:44 jnthn colomon: Like, factor of 7 cheaper
17:44 [Coke] rakudo: say 2.WHAT
17:44 p6eval rakudo 730538: OUTPUT«Int()␤»
17:44 jnthn Though it's not quite so bad now I just made Int.Bridge cheaper.
17:44 [Coke] jnthn: seems like the sort of thing the optimizer could catch, no?
17:44 colomon entire program factor of 7, or just that line?
17:44 jnthn colomon: Just that line
17:44 jnthn Well
17:44 jnthn OK
17:45 jnthn Taht's not true either
17:45 jnthn We spend 7 times less time doing >
17:45 jnthn :)
17:45 colomon [Coke]: in theory, it should be easy to just overload >
17:45 jnthn (optimizer) it's tricky. The program has relatively few type annotations and .abs is a method call.
17:46 [Coke] bonsaikitten: https://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.
17:47 [Coke] so here's your textbook example of how to help the compiler.
17:47 [Coke] (as a program author)
17:53 ab5tract joined #perl6
17:54 supernovus joined #perl6
17:55 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 #perl6
18:03 GlitchMr joined #perl6
18:05 kaleem joined #perl6
18:09 djanatyn joined #perl6
18:09 kmwallio joined #perl6
18:12 im2ee joined #perl6
18:20 replore joined #perl6
18:22 wk joined #perl6
18:25 benabik joined #perl6
18:28 soh_cah_toa joined #perl6
18:34 mj41 joined #perl6
18:43 dalek rakudo/nom: 1fd3f82 | jnthn++ | src/Perl6/Actions.pm:
18:43 dalek rakudo/nom: Make it possible for optimizer to do better with the loop construct (though needs --optimize=3).
18:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1fd3f82968
18:46 djanatyn joined #perl6
18:48 masak good evening, #perl6.
18:48 diakopter o/
18:48 slavik1 afternoon ...
18:48 slavik1 dang europeans not living on american time
18:48 jnthn o/ masak
18:48 colomon \o
18:49 seba__ joined #perl6
18:49 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
18:50 slavik1 haha
18:50 masak :)
18:50 slavik1 imo, we should all be on utc time and not do any time shifts
18:50 slavik1 like the DST crap
18:52 kent\n people with a concept of time and "a day" are weird.
18:52 colomon I vote for Newfoundland time.
18:52 colomon Just because
18:53 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:56 masak as a nomad, I think days and weeks are very homsteading-biased concepts. months and years are fine, though.
18:58 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 Woodi prpbably it is the best to accept that in living in sun light is moust productive (until someone practice other vy few years)...
19:02 sjohnson heh
19:02 masak bonsaikitten: given your nick, you can tolerate quite a number of things you really shouldn't! :P
19:04 bonsaikitten masak: what, just because I like nutella-salami-pickles sandwiches
19:04 masak *lol*
19:04 tadzik good evening
19:05 masak good tadzik, evening.
19:05 moritz good \o/ everybody
19:05 colomon \o
19:05 tadzik o/
19:06 masak truly, a good \o/ it is.
19:06 sjohnson (=゚ω゚=)
19:07 moritz sjohnson: that disappointingly Latin-1-ish :-9
19:07 moritz .u ゚
19:07 phenny U+FF9F HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK (゚)
19:07 moritz erm, not
19:07 moritz sorry :-)
19:07 tadzik ( `ー´)
19:07 moritz I thought it was a mere °
19:13 * masak .oO( The Day I Thought a ゚ was a mere ° )
19:14 kent\n "sunlight is most productive" # what
19:14 tadzik but... but everyone bothers you during sunlight!
19:15 kent\n sunlight = people awake = noise = distractions = lack of focus = nothing gets done
19:15 tadzik sunlight = sun in the garden
19:15 tadzik (sun in the garden)++
19:15 kent\n sunlight = excessive heat = already overloaded brain cooks = you're fucked
19:15 tadzik I have this pic of me workstation somewhere
19:15 dukeleto joined #perl6
19:15 gfldex very true tadzik, leave the sunlight to the plants
19:16 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.
19:16 tadzik http://imgur.com/nD0Hn
19:16 * kent\n feels IT folk don't really fall into "generally speaking" so often.
19:16 tadzik this is how *I* roll :)
19:16 tadzik sunlight++
19:16 moritz jnthn: your patches brought the regular mandelbrot benchmark to 34s
19:17 jnthn moritz: From?
19:17 gfldex can you see anything on that screen?
19:17 tadzik gfldex: yes
19:17 jnthn moritz: How is it with --optimize=3?
19:17 masak dukeleto: any chance you can, like, turn it off?
19:17 tadzik there's a reason for sitting in a shadow
19:17 gfldex eagle eyes you got there :)
19:17 moritz jnthn: 39s iirc
19:17 dukeleto masak: turn what off? My proxy?
19:17 masak ...yes...?
19:18 masak 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 ;)
19:18 moritz jnthn: 33s with --optimize=3
19:19 jnthn moritz: OK...well, guess that fits with the profile output I just saw though.
19:21 sjohnson moritz: uTF-8!
19:22 sjohnson :)
19:25 [Coke] moritz: is there a pretty graph to show the speed of mandelbrot ?
19:25 [Coke] speed *improvements*
19:25 moritz [Coke]: nope
19:29 donri joined #perl6
19:29 * kent\n nominates somebody other than himself to make a check-in-build-and-benchmark agent that graphs runtime vs commit =p
19:32 molaf joined #perl6
19:41 JodaZ joined #perl6
19:44 im2ee My task for the next time: read the official documentation carefully. :)
19:47 benabik joined #perl6
19:47 masak what official documentation...?
19:49 Kivutarrr joined #perl6
19:51 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:53 benabik_ joined #perl6
19:53 tadzik nom: sub foo { state $a = 5; say $a++ }; foo; foo; foo #state NYI?
19:53 p6eval nom 1fd3f8: OUTPUT«5␤5␤5␤»
19:53 tadzik b: sub foo { state $a = 5; say $a++ }; foo; foo; foo #state NYI?
19:54 p6eval b 1b7dd1: OUTPUT«===SORRY!===␤"state" not yet implemented at line 22, near "= 5; say $"␤»
19:54 tadzik heh, ok
19:54 tadzik or am I doing it wrong?
19:55 benabik nom: sub foo { state $a; say ++$a }; foo; foo; foo
19:55 p6eval nom 1fd3f8: OUTPUT«1␤2␤3␤»
19:55 benabik tadzik: I'm guessing that state $a = 5 is either wrong in nom or not doing what you expect.
19:55 tadzik I suppose so
19:56 benabik nom: sub foo { state $a; BEGIN { $a = 5 }; say $a++ }; foo; foo; foo
19:56 p6eval nom 1fd3f8: OUTPUT«5␤6␤7␤»
19:56 [Coke] benabik++
19:56 tadzik ha, nice
19:56 [Coke] I was trying to type that out in english. ;)
19:56 tadzik is that how it should work though?
19:56 tadzik I mean, is BEGIN necesarry?
19:57 masak no.
19:57 masak nom: sub foo { state $a = 5; say $a++ }; foo; foo; foo
19:57 p6eval nom 1fd3f8: OUTPUT«5␤5␤5␤»
19:57 benabik nom: sub foo { BEGIN state $a = 5; say $a++ }; foo; foo; foo
19:57 p6eval nom 1fd3f8: OUTPUT«5␤6␤7␤»
19:57 masak I'm pretty sure that's a bug.
19:57 * masak submits rakudobug
19:58 [Coke] masak: where in the spec do you see that state $a = 5; should only be invoked once?
19:58 [Coke] S04 doesn't seem to imply that.
19:58 benabik And `BEGIN state` seems to DTRT
19:58 flussence S04:1415: But C<state> automatically applies "start" semantics to any initializer,
19:59 flussence but you're right, it doesn't explicitly say BEGIN there...
19:59 PerlJam also, S03:4894
19:59 flussence (imo, it should)
19:59 flussence oh wait, START does wiw
20:00 masak what flussence++ said.
20:01 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)␤»
20:01 benabik And nom doesn't do START, apparently.
20:02 benabik nom: sub foo { state $a will start { $a = 5 }; say $a++ }; foo; foo; foo
20:02 p6eval nom 1fd3f8: OUTPUT«0␤1␤2␤»
20:02 tadzik woot
20:02 benabik Fun times.
20:02 tadzik wth is that syntax :)
20:02 [Coke] PerlJam: fair enough. Thanks.
20:04 masak tadzik: it's right there in S04! :P
20:05 tadzik and I just started to like the BEGIN :) fair enough
20:05 benabik nom: my $x will foobar { say 'hi' }
20:05 p6eval nom 1fd3f8:  ( no output )
20:05 benabik Okay, nom just ignores unknown traits.  Fair enough.
20:05 benabik tadzik: It's supposed to be START, not BEGIN, but nom doesn't grok that.  BEGIN is a reasonable workaround for now, I think.
20:05 [Coke] nom: my $x will $x {};
20:05 p6eval nom 1fd3f8: OUTPUT«===SORRY!===␤Confused at line 1, near "my $x will"␤»
20:06 flussence is that lowercase "start" mentioned anywhere besides example code? looks a bit weird to me.
20:06 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.
20:06 [Coke] masak: I would call that a [TODO] not a [BUG]
20:07 [Coke] (perl #102070)
20:07 im2ee masak, http://perlcabal.org/syn/ - this Documentation. :)
20:07 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?
20:08 [Coke] cognominal: to allow user overrides?
20:08 * [Coke] is only guessing.
20:08 PerlJam cognominal: future-proofing?
20:08 jnthn Not so much override as addition.
20:09 cognominal ok, that makes sense.
20:09 jnthn (state) the state $x = ... thing being done at START time is NYI
20:09 jnthn There's some pondering that the way assignments to declarators are handled in the grammar will change though...
20:09 jnthn And if that happens it'll make that rather cleaner to implement.
20:12 kfo joined #perl6
20:13 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:14 PerlJam cognominal: well ... define "many"  :)
20:14 cognominal ..meaning people not interested in the implementation
20:15 cognominal but only getting the job done.
20:16 Tanktalus my definition: me and my corporate lawyers :-P
20:17 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:19 masak im2ee: it's not documentation, really. unless you're an implementor. it *is* a pretty good read, though.
20:22 masak moritz: a Perl 6 workshop! \o/
20:22 masak moritz: I'll definitely try to be there!
20:25 jnthn masak: In Germany? :)
20:25 jnthn oh, I see the mail now
20:25 * jnthn reads
20:25 jnthn nice
20:25 jnthn German beer! \o/
20:26 cognomore joined #perl6
20:26 * jnthn tries to find the date
20:27 * tadzik tries to find a date
20:27 jnthn ah, 5-7 mar. Hm.
20:27 slavik1 will it be online?
20:27 slavik1 hmm
20:27 slavik1 next year
20:27 slavik1 maybe I will take a vacation :)
20:27 jnthn tadzik: ;)
20:27 tadzik during the week? OH COME ON
20:27 slavik1 I need a perl something so all of you can sign it :D
20:27 slavik1 lol
20:27 im2ee masak, i think it will improve my skills. :)
20:28 masak im2ee: I think I've been reading it three times at this point :)
20:39 cognominal in which mail list is it announced?
20:40 cognominal https://www.iis.se/en/pressmeddelanden/perl-6-workshop-hos-se-2 # is this past or future?
20:45 masak I think that's 2.5 years ago...
20:51 tadzik gee, testing MuEvent is harder than writing it in the first place
20:51 mj41 joined #perl6
20:55 drbean joined #perl6
20:59 cognominal perl6 -e 'say "a"' -e 'say "b"'  # execute only the first part.
21:00 cognominal in Perl 5. It seems it concatenates the parts before evaluationting the resulting string
21:01 masak there's an RT ticket for that, I think.
21:01 cognominal perl -E 'say "a' -e '";say "b"' #  :)
21:02 cognominal one cannot bundle options either   echo toto | perl6 -ne 'BEGIN  my $a=1 '
21:06 Kivutarrr left #perl6
21:06 [Coke] there is an too-big "perl6's flags don't work like perl5's" ticket.
21:06 tadzik loliblug: http://ttjjss.wordpress.com/2011/10/24/muevent-anyevent-lookalike-for-perl-6/
21:06 masak [Coke]: there is? close it, it makes no sense.
21:07 masak tadzik++ # blog post!
21:07 cognominal [Coke]: you mean a thicket? :)
21:07 tadzik the blog post forced me to write docs and tests :P
21:07 [Coke] masak: you opened it, and I may be overstating the case.
21:07 tadzik also, I need something to show off on #phasers :P
21:07 tadzik which, by the way, collides with my classes :/
21:08 [Coke] ugh. got the thread on the server that doesn't know what Search?Results.html
21:08 [Coke] is
21:08 masak [Coke]: the title doesn't sound promising...
21:09 [Coke] ah. rt.perl.org/rt3 generates bad urls: rt.perl.org/rt3/ does not.
21:10 [Coke] https://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 [Coke] masak++
21:11 masak damn. Nicholas Clark mocking us on p6c! :)
21:11 masak this cannot stand!
21:11 cognominal I must say I don't like the string  concatenating behavior of successive perl 5 -e
21:11 tadzik I don
21:11 tadzik 't see it
21:11 tadzik damnit, enter, lose some weight
21:12 benabik tadzik: http://www.nntp.perl.org/group/perl.perl6.compiler/2011/10/msg7724.html
21:13 masak tadzik: https://rt.perl.org/rt3/Ticket/Display.html?id=102070#txn-995478
21:13 tadzik which one to choose, hmm
21:13 benabik I was first.  :-D
21:13 masak I was just going to sleep, but now I want to implement STATE semantics instead!
21:14 tadzik heh
21:14 flussence RT is considerably more utf-8 friendly...
21:14 masak er, START semantics.
21:17 * masak comes to his senses and goes to bed
21:17 tadzik don't! don't! :P
21:18 masak I'm not sure how far I would get anyway, with pmichaud AFK and jnthn temporarily incapacitated...
21:19 masak 'night, #p6
21:20 masak dream of proper START semantics... like in Perl 5...
21:21 jnthn tadzik++ # MuEvent
21:23 im2ee Good night !:)
21:27 [Coke] masak: you should just reply to perl5 tickets saying how much better p6 is!
21:27 tadzik ;P
21:37 mj41_nb joined #perl6
21:48 tokuhiro_ joined #perl6
21:51 soh_cah_toa joined #perl6
21:57 REPLeffect joined #perl6
21:57 colomon joined #perl6
22:25 Chillance joined #perl6
22:29 donri joined #perl6
22:39 envi_ joined #perl6
22:43 dorlamm joined #perl6
22:44 sftp joined #perl6
22:49 franek joined #perl6
22:50 bluescreen10 joined #perl6
23:29 benabik joined #perl6
23:30 nornagest Good night!
23:39 cognominal haskell amuse bouche : http://www.youtube.com/watch?v=b9FagOVqxmI
23:39 sorear good * #perl6
23:43 whiteknight joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo