Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-11-01

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:04 dalek 6model: f0f4a57 | diakopter++ | lua/compiler/ (4 files):
00:04 dalek 6model: more DNST->LST renaming
00:04 dalek 6model: review: https://github.com/diakopter/6model/commit/f0f4a574e2
00:04 mkramer joined #perl6
00:19 mkramer joined #perl6
00:19 sorear grr.  eval_dies_ok has stopped working for no clear reason
00:19 sorear it crashes before it even gets to &eval; fetching the lexical &no-control in Test is NREing now that mainlines are being run
00:20 Exodist joined #perl6
00:20 jnthn sorear: Seems like a day for bizzare bugs... :S
00:21 carlin joined #perl6
00:21 replore joined #perl6
00:22 * jnthn decides its time for some rest
00:22 jnthn *it's
00:22 jnthn night &
00:26 dalek niecza: 8cfcd18 | sorear++ | lib/Builtins.cs:
00:26 dalek niecza: Fix warning in compiling Builtins
00:26 dalek niecza: review: https://github.com/sorear/niecza/commit/8cfcd1810c
00:27 * diakopter looks forward to the niecza Halloween release
00:27 dalek niecza: 81deb74 | sorear++ | lib/Kernel.cs:
00:27 dalek niecza: Fix just-in-time sub compilation to not overwrite parts of the protopad
00:27 dalek niecza: review: https://github.com/sorear/niecza/commit/81deb7406e
00:27 dalek niecza: 122ac5d | sorear++ | lib/ (2 files):
00:27 dalek niecza: Run mainlines of modules at BEGIN time
00:27 dalek niecza: review: https://github.com/sorear/niecza/commit/122ac5d042
00:27 sorear _now_ BEGIN semantics should be properly in.
00:27 diakopter o_O
00:28 diakopter evalbot rebuild niecza
00:28 p6eval NOT OK (maybe a rebuild is already in progress?)
00:28 sorear except for a couple corner cases like class Foo is ::(<A B>.pick) { ... }
00:28 sorear *a few
00:29 diakopter niecza: BEGIN { BEGIN { say 4 } }
00:29 p6eval niecza v10-254-g122ac5d: OUTPUT«4␤»
00:29 sorear also BEGIN still doesn't return a value.
00:30 sorear 122ac5d will be the release, if it can pass reboot and spectest
00:30 sorear (except I still need to write the ann)
00:42 * [Coke] survived Halloween!
01:04 sorear 3 files failed.
01:19 wolfman2000 joined #perl6
01:33 thou joined #perl6
01:43 drbean joined #perl6
01:56 woosley joined #perl6
02:12 odoacre_ joined #perl6
02:16 [Coke] /install/bin/perl6 foo1.p6
02:16 [Coke] PARROT VM: Could not initialize new interpreter
02:16 [Coke] PackFile_Header_validate: This Parrot cannot read bytecode files with version 11.0.
02:16 [Coke] er, ./install/...
02:19 * [Coke] tries a fresh co of parrot.
02:23 IngisKahn joined #perl6
03:00 [Coke] was just me.
03:15 dalek roast: f926610 | sorear++ | S02-magicals/progname.t:
03:15 dalek roast: [S02-magicals/progname] Make both tests equally forgiving
03:15 dalek roast: review: https://github.com/perl6/roast/commit/f9266108ca
03:16 dalek niecza: 86d2c1d | sorear++ | t/spectest.data:
03:16 dalek niecza: Disable two incidentally broken test files
03:16 dalek niecza: review: https://github.com/sorear/niecza/commit/86d2c1dc94
03:22 kaleem joined #perl6
03:27 sorear [Coke]: 89960a0 "alpha sort test listing." # careful trying to maintain a sort, even within ASCII sort order is strongly influenced by LC_ALL
03:28 sorear at various times I've committed spectest.data files that are sorted according to LC_ALL=C and LC_ALL=en_US
03:28 sorear I guess LC_COLLATE
03:36 dalek 6model: 9e66595 | diakopter++ | lua/compiler/ (5 files):
03:37 dalek 6model: first cut at emitting Lua. generates functions with more than 200 locals.  will have to workaround by storing all locals in a table.  <sigh>
03:37 dalek 6model: review: https://github.com/diakopter/6model/commit/9e66595126
03:39 dayangkun joined #perl6
03:47 f00li5h joined #perl6
03:49 f00li5h joined #perl6
03:56 dalek niecza: 7f133f9 | sorear++ | docs/announce.v11:
03:56 dalek niecza: Add v11 announce
03:56 dalek niecza: review: https://github.com/sorear/niecza/commit/7f133f9ad2
03:56 sorear looking-over requested.
03:58 diakopter looks good to me
04:03 benabik joined #perl6
04:06 [Coke] +1
04:08 ruz joined #perl6
04:09 huf joined #perl6
04:09 djanatyn|afk joined #perl6
04:15 envi_ joined #perl6
04:17 envi_ joined #perl6
04:26 japhb sorear, announce looks good to me too.
04:27 alester joined #perl6
04:27 _jaldhar joined #perl6
04:29 dalek 6model: 3fbbe7d | diakopter++ | lua/compiler/ (2 files):
04:29 dalek 6model: NQPSetting.lua actually compiles.  only things I know of remaining: while loops that don't use labels, and try/finally (try/catch already done).
04:29 dalek 6model: review: https://github.com/diakopter/6model/commit/3fbbe7de56
04:30 diakopter heh, a 24,000 line lua file compiles and runs in 0.053s
04:33 diakopter that's annoying; I can't have more than 200 "local"s in the same function, but I can have 783 named closures declared in a function (that are accessible and scoped just like locals)
04:35 diakopter aww, I can't gist the whole file ;)
04:35 diakopter 413 Request Entity Too Large
04:36 sorear diakopter: lua is designed that way
04:36 sorear unification of concepts: "We don't need a deserializer, we can just make the normal parser/interpreter fast on huge files"
04:37 diakopter I'm using luajit, btw
04:39 diakopter 'night
04:39 sorear 'night
04:45 dalek niecza: 60f5921 | sorear++ | src/NieczaFrontendSTD.pm6:
04:45 dalek niecza: One more tiny fix to get bootstrap working again
04:45 dalek niecza: review: https://github.com/sorear/niecza/commit/60f59214fc
04:56 alester joined #perl6
05:01 aloha joined #perl6
05:01 dalek niecza: e1b9adf | sorear++ | FETCH_URL:
05:02 dalek niecza: Update bootstrap for v11
05:02 dalek niecza: review: https://github.com/sorear/niecza/commit/e1b9adf525
05:02 sorear mail sent.
05:06 alc joined #perl6
05:08 mkramer left #perl6
05:13 orafu joined #perl6
05:13 simcop2387 joined #perl6
05:29 lrnperl joined #perl6
05:42 sorear What sort of niecza backend would people most like to see next?
05:42 kaare_ joined #perl6
05:51 TiMBuS llvm :3
05:53 TiMBuS or did i misinterpret what you meant by backend
06:03 sorear TiMBuS: that is the sort of thing I look for
06:04 sorear hrm, I should spend time this month trying to figure out why the niecza parser is so slowww
06:08 TiMBuS well in that case, i vote llvm again. its fast, allows jitting, doesnt need mono. with a lot of effort could even make native binaries from perl6
06:09 woosley left #perl6
06:09 TiMBuS ignoring how huge they would be
06:25 dayangkun joined #perl6
06:26 koban joined #perl6
06:37 mj41 joined #perl6
06:38 * sorear -> sleep
06:47 zby_home_ joined #perl6
06:48 japhb phenny, tell sorear Perhaps one of the command-line capable JS engines.  Would be nice to see how well Niecza's design fits into that type of VM, and whether the way that JS VMs are tunes can work well with the kind of generated code Niecza would throw at it.
06:48 phenny japhb: I'll pass that on when sorear is around.
06:49 moritz \o
06:51 lrnperl left #perl6
06:58 koban joined #perl6
07:01 dayangkun_ joined #perl6
07:14 moritz nom: class A { method m() is is_hidden_from_backtrace { } }; A.new.m; say 'alive'
07:14 p6eval nom ee1a1c: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Attribute $attr, Any $rw)␤:(Attribute $attr, Any $readonly)␤:(Routine $r, Any $rw)␤:(Routine $r, Any $default)␤:(Routine $r, Any $info, Any $inlinable)␤:(Param…
07:15 moritz nom: say Method ~~ Routine
07:15 p6eval nom ee1a1c: OUTPUT«Bool::True␤»
07:17 moritz nom: class A { method m() is hidden_from_backtrace { } }; A.new.m; say 'alive'
07:17 p6eval nom ee1a1c: OUTPUT«alive␤»
07:19 dalek rakudo/nom: 8780040 | moritz++ | src/core/ (2 files):
07:19 dalek rakudo/nom: throw the first typed exception from within the setting
07:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8780040ae2
07:46 drbean joined #perl6
07:55 grondilu joined #perl6
07:55 grondilu perl6: my $foo; sub test { say $bar and test for (my $bar = $foo++) ?? () !! ^2 }; test();
07:55 p6eval rakudo ee1a1c: OUTPUT«0␤1␤»
07:55 p6eval ..pugs b927740: OUTPUT«*** ␤    Unexpected " and"␤    expecting "::"␤    Variable "$bar" requires predeclaration or explicit package name␤    at /tmp/gaJOa5hlgD line 1, column 29␤»
07:55 p6eval ..niecza v11: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Variable $bar is not predeclared at /tmp/23sUQOtOje line 1:â�¤------> [32mmy $foo; sub test { say [33mâ��[31m$bar and test for (my $bar = $foo++) ?? [0mâ�¤â�¤Potential difficulties:â�¤  $bar is declared but not used at /tmp/23sUQOtOje line 1:…
07:56 moritz known rakudobug
07:56 grondilu perl6: my $foo; sub test { my $bar = $foo++; say $bar and test for $bar ?? () !! ^2 }; test();
07:56 p6eval niecza v11: OUTPUT«Any()␤Any()␤»
07:56 p6eval ..pugs b927740: OUTPUT«0␤0␤»
07:56 p6eval ..rakudo ee1a1c: OUTPUT«0␤1␤»
07:57 grondilu perl6: my $foo; sub test { { my $bar = $foo++; say $bar and test } for $bar ?? () !! ^2 }; test();
07:57 p6eval rakudo ee1a1c: OUTPUT«===SORRY!===␤Symbol '$bar' not predeclared in test (/tmp/6NGeuYLE_r:1)␤»
07:57 p6eval ..niecza v11: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Variable $bar is not predeclared at /tmp/q1B1mx8h9q line 1:â�¤------> [32m $bar = $foo++; say $bar and test } for [33mâ��[31m$bar ?? () !! ^2 }; test();[0mâ�¤â�¤â�¤Unhandled Exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.sett…
07:57 p6eval ..pugs b927740: OUTPUT«*** Undeclared variable: ("$bar",MkPad (padToList [("$_",PELexical {pe_type = (mkType "Scalar"), pe_proto = <Scalar:0x7f294e4e03b1>, pe_flags = MkEntryFlags {ef_isContext = True}, pe_store = <ref:0x7f294e4e1eb1>}),("@_",PELexical {pe_type = (mkType "Array"), pe_prot…
07:57 grondilu perl6: my $foo; sub test { my $bar = $foo++; { say $bar and test } for $bar ?? () !! ^2 }; test();
07:57 p6eval rakudo ee1a1c: OUTPUT«0␤0␤»
07:57 p6eval ..pugs b927740, niecza v11:  ( no output )
07:58 grondilu perl6: my $foo; sub test { my $bar = $foo++; for $bar ?? () !! ^2 { say $bar and test } ; test();
07:58 p6eval pugs b927740: OUTPUT«*** ␤    Unexpected end of input␤    expecting ";" or "}"␤    at /tmp/TSGYTxhNmD line 2, column 1␤»
07:58 p6eval ..niecza v11: OUTPUT«[31m===[0mSORRY![31m===[0m��Unable to parse block at /tmp/Y12WfuY3QW line 1:�------> [32mmy $foo; sub test {[33m�[31m my $bar = $foo++; for $bar ?? () !! ^2 [0m�Couldn't find final '}'; gave up at /tmp/Y12WfuY3QW line 1 (EOF):�------> [32m() !! ^2 { say $bar …
07:58 p6eval ..rakudo 878004: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 1␤»
07:58 grondilu perl6: my $foo; sub test { my $bar = $foo++; for $bar ?? () !! ^2 { say $bar and test } } ; test();
07:58 p6eval niecza v11: OUTPUT«Any()␤Any()␤»
07:58 p6eval ..pugs b927740, rakudo 878004: OUTPUT«0␤0␤»
07:59 grondilu perl6: my $foo; sub test { my $bar = $foo++; say $bar and test for $bar ?? () !!^2 }; test();
07:59 p6eval niecza v11: OUTPUT«Any()␤Any()␤»
07:59 p6eval ..pugs b927740: OUTPUT«0␤0␤»
07:59 p6eval ..rakudo 878004: OUTPUT«===SORRY!===␤Cannot negate ^ because it is not iffy enough at line 1, near "2 }; test("␤»
07:59 grondilu perl6: my $foo; sub test { my $bar = $foo++; say $bar and test for $bar ?? () !! ^2 }; test();
07:59 p6eval niecza v11: OUTPUT«Any()␤Any()␤»
07:59 p6eval ..pugs b927740: OUTPUT«0␤0␤»
07:59 p6eval ..rakudo 878004: OUTPUT«0␤1␤»
07:59 grondilu isn't 'foo and bar for @array' supposed to be the same as 'for @array { foo and bar }' ?
08:01 moritz grondilu: it's hard for me to see what your point is among all the p6eval output above
08:03 grondilu it's something I come up with trying to implement the sudoku algorithm on rosetta.org.   On rakudo 'do_this and do_that for @array' does NOT behave as { do_this and do_that } for @array'
08:04 grondilu nom: my $foo; sub test { my $bar = $foo++; say $bar and test for $bar ?? () !! ^2 }; test();  # with no {}
08:04 p6eval nom 878004: OUTPUT«0␤1␤»
08:04 grondilu nom: my $foo; sub test { my $bar = $foo++; { say $bar and test } for $bar ?? () !! ^2 }; test();  # with {}
08:04 p6eval nom 878004: OUTPUT«0␤0␤»
08:04 grondilu see ?
08:05 moritz nom: my $foo; sub test { my $bar = $foo++; (say $bar and test) for $bar ?? () !! ^2 }; test();
08:05 p6eval nom 878004: OUTPUT«0␤1␤»
08:05 moritz nom: my $foo; my $bar = $foo++; (say $bar and test) for $bar ?? () !! ^2
08:05 p6eval nom 878004: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&test' called (line 1)␤»
08:06 moritz nom: my $foo; sub test { my $bar = $foo++; do { say $bar and test } for $bar ?? () !! ^2 }; test();
08:06 p6eval nom 878004: OUTPUT«===SORRY!===␤Unsupported use of do...for; in Perl 6 please use repeat...for at line 1, near "}; test();"␤»
08:07 moritz nom: my $foo; sub test { my $bar = $foo++; repeat { say $bar and test } for $bar ?? () !! ^2 }; test();
08:07 p6eval nom 878004: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&repeat' called (line 1)␤»
08:07 moritz meh
08:07 moritz sorry, I'm not yet awake enough to comment on it
08:08 moritz the code has too many interdependencies for my sleepy brain :-)
08:08 grondilu no worries, feel free to look at it when you have time
08:08 GlitchMr joined #perl6
08:09 grondilu there is definitely something wrong anyway, at least since pugs and rakudo give a different output
08:09 grondilu perl6: my $foo; sub test { my $bar = $foo++; say $bar and test for $bar ?? () !! ^2 }; test();  # with no {}
08:09 p6eval niecza v11: OUTPUT«Any()␤Any()␤»
08:09 p6eval ..pugs b927740: OUTPUT«0␤0␤»
08:09 p6eval ..rakudo 878004: OUTPUT«0␤1␤»
08:09 grondilu ^ as you can see here
08:12 moritz what would you expect?
08:12 grondilu 0 0
08:13 moritz right, if $bar is 1, then the for-loop shouldn't run
08:13 moritz so, rakudobug
08:14 grondilu the verbose explanation, and how this is related to the sudoku algorithm:  http://pastebin.com/7bnjmjAu
08:25 mj41 joined #perl6
08:32 zby_home__ joined #perl6
08:39 drbean joined #perl6
08:43 masak morgn, #perl6
08:43 masak sorear++ # bugfix
08:43 moritz good m\w+n, masak
08:43 masak :)
08:46 geekosaur "mrfl"
08:46 masak geekosaur: sounds like a typical pre-coffee sound... :)
08:47 geekosaur exactly :)
08:47 masak sorear++ # release
08:48 masak moritz: did you submit the above rakudobug?
08:48 masak shall I?
08:48 moritz masak: I didn't. Please do.
08:48 * masak submits rakudobug
08:49 moritz nom: my $foo; sub test { my $bar = $foo++; say "bar: $bar" repeat { say $bar and test } for $bar ?? () !! ^2 }; test();
08:49 p6eval nom 878004: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 1␤»
08:49 snearch joined #perl6
08:50 moritz nom: my $foo; sub test { my $bar = $foo++; say "bar: $bar"; say $bar and test  for $bar ?? () !! ^2 }; test();
08:50 p6eval nom 878004: OUTPUT«bar: 0␤0␤bar: 1␤1␤bar: 2␤»
08:50 moritz nom: do { } for 1
08:50 p6eval nom 878004: OUTPUT«===SORRY!===␤Unsupported use of do...for; in Perl 6 please use repeat...for at line 1, near ""␤»
08:50 moritz nom: repeat { } for 1
08:50 p6eval nom 878004: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&repeat' called (line 1)␤»
08:50 moritz masak: care to submit that one too?
08:50 moritz std: repeate { } for 1
08:50 p6eval std be1f10e: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'repeate' used at line 1�Check failed�FAILED 00:01 120m�»
08:50 moritz std: repeat { } for 1
08:50 p6eval std be1f10e: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'repeat' used at line 1�Check failed�FAILED 00:01 120m�»
08:51 moritz it seems that 'repeat { } for ...' isn't supposed to work, but then the error message shouldn't recommend it
08:51 moritz std: do { } for 1
08:51 p6eval std be1f10e: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of do...for; in Perl 6 please use repeat...for at /tmp/_Qqd8qDiST line 1 (EOF):�------> [32mdo { } for 1[33m�[31m<EOL>[0m�Parse failed�FAILED 00:01 120m�»
08:51 * masak submits rakudobug
08:51 moritz oh, and stdbug too
08:51 * moritz submits STDbug
08:51 masak moritz++
08:54 moritz TimToady: https://github.com/perl6/std/issues/1
08:56 tadzik good morning
08:57 masak morning, tadzik! \o/
09:23 * masak laughs at the suggestion in http://www.perlmonks.org/index.pl?node_id=542341 that it's males that are the "XY problem"
09:28 tadzik ( ° ー°)
09:29 masak unless you're a bird, then males are the ZZ problem.
09:30 masak (yes, in birds it's males that are the homogametic sex)
09:33 tadzik . o O ( I wish I was a bird, 'cus if I were a bird... )
09:38 masak :)
09:46 huf hmm? dont leave me hanging like that tadzik
09:48 masak huf: http://bwong.com/lj/IWishIWere.htm
09:49 huf ahhh
09:49 masak (Da Vinci's Notebook)++
09:51 tadzik :P
09:52 daniel-s_ joined #perl6
09:56 masak recently I've come across lots of things that are "Schwarzian" in nature -- that is, do some computation (like sorting, say) on a list of "secondary" values, but the final result should be the "primary" values.
09:57 masak this seems like a recurring pattern in some sense.
09:58 masak for example, sometimes I'm more interested in the keys of an array, and sometimes more in the values.
09:58 masak for the latter case I can use .grep and .first, but not so easily for the former case.
10:03 im2ee joined #perl6
10:03 fsergot joined #perl6
10:04 im2ee left #perl6
10:06 Chillance joined #perl6
10:13 DarthGandalf joined #perl6
10:21 TiMBuS masak, i often wish perl (5) had a way to foreach over a list but also give me the index
10:22 huf i wish it had for my ($k, $v) (%hash) { ... }
10:22 huf or something like that
10:22 TiMBuS yeah
10:22 huf and yeah, same would be nice with arrays, altho how that'd work...
10:22 huf also how it'd work with sorting the hash before iterating.. *shrug*
10:23 masak I guess utility subs would go a long way.
10:23 TiMBuS huf, in p6 its easy wnough for arrays
10:23 masak but in Perl 6 we solved the iteration things nicely.
10:23 TiMBuS wait, its easy for all of that!
10:23 huf :)
10:24 masak rakudo: for <a b c>.kv -> $k, $v { say "$k: $v" }
10:24 p6eval rakudo 878004: OUTPUT«0: a␤1: b␤2: c␤»
10:24 huf still i wish p5 stole those features back :)
10:24 TiMBuS me too
10:24 huf of course, it feels a bit too fundamental to be easily backported
10:24 TiMBuS alternate wish: i wish rakudo was "ready"
10:24 * TiMBuS ducks
10:24 huf :)
10:24 masak I guess what I'm saying is I wish there were grep :kv and first :key and things like that :)
10:24 masak TiMBuS: we all do :)
10:28 ggoebel joined #perl6
10:28 flussence .oO( in hindsight maybe I shouldn't have picked a regex-heavy module to maintain... )
10:28 masak Woodi: the perils of not explicitly declaring your variables: http://blog.meloncard.com/post/12175941935/how-one-missing-var-ruined-our-launch
10:29 masak corresponding HN thread: http://news.ycombinator.com/item?id=3179505
10:37 kboga good morning all
10:38 masak kboga: mornin'
10:38 kboga uhm, here is a quick hack to unbreak the rakudo build with optimizer on level 3: http://pastebin.com/z669WzH7
10:39 kboga it seems like some spectest fail tho
10:40 kboga (that is using the nqp reprapi2 branch and rakudo reprapi2 branch)
10:41 kboga ah, the spectests seem to fail because i got debug output in the optimizer left (removing that)
10:43 jnthn morning, #perl6
10:44 kboga hi jnthn, i think i found the reason why the build on reprapi2 is broken
10:44 jnthn kboga: just saw the patch
10:44 jnthn Thanks!
10:44 kboga np :)
10:44 jnthn kboga: I suspect your patch actually points at a more general issue, but it pretty much tells me exactly where to look for it. :)
10:46 kboga yea, its just a quick hack, i figured that in some cases the $!inline_info attribute was never set
10:46 cognominal_ joined #perl6
10:49 fridim_ joined #perl6
11:15 wk joined #perl6
11:38 kaleem joined #perl6
11:38 Psyche^ joined #perl6
11:44 benabik joined #perl6
12:02 koban joined #perl6
12:09 Chillance joined #perl6
12:20 zby_home joined #perl6
12:21 bbkr1 joined #perl6
12:39 daniel-s joined #perl6
12:39 dalek nqp/reprapi2: 42c18a2 | jnthn++ | src/6model/reprs/P6opaque.c:
12:39 dalek nqp/reprapi2: Add missing initialization logic. Thanks to kboga++ for the hint that led me to this issue.
12:39 dalek nqp/reprapi2: review: https://github.com/perl6/nqp/commit/42c18a2d03
12:41 fridim_ joined #perl6
12:42 lestrrat joined #perl6
12:44 fsergot Hi!
12:44 bbkr1 hello
12:46 jnthn yay, reprapi2 branches of nqp and Rakudo are now both in shape :)
12:47 jnthn 21 files changed, 908 insertions(+), 930 deletions(-)
12:47 jnthn ...22 lines more is a small price for the underpinnings of compact structs etc :)
12:48 bbkr1 another Segmentation fault happened for me in Buf code, but this one is a hard case to track down :(
12:49 jnthn bbkr1: Ah, maybe you've run into the issue that is why the Parrot ticket is still open...
12:49 jnthn bbkr1: Where's the segfault?
12:50 jnthn grr, Parrot build fails here
12:50 jnthn alarm.c
12:50 jnthn src/alarm.c(22) : fatal error C1083: Cannot open include file: 'sys/time.h': No
12:50 jnthn such file or directory
12:50 jnthn :(
12:50 bbkr1 I cannot find it yet. It happens for me in MongoDB driver, which has tons of Buf opeartions and socket communication.
12:51 jnthn bbkr1: I meant, do you have a gdb backtrace?
12:51 bbkr1 how do I obtain one?
12:52 replore_ joined #perl6
12:54 jnthn hm
12:54 jnthn iirc
12:54 jnthn gdb perl6
12:54 jnthn r yourscript.p6
12:54 jnthn wait for it to crash
12:54 jnthn then
12:54 jnthn bt
12:54 jnthn moritz: ping
12:54 bbkr1 checking it now...
12:55 * [Coke] yawns.
12:56 * [Coke] apologizes to jnthn for not testing the parrot build on win32 for the green_threads merge.
12:56 [Coke] (not that I said I'd do it, but I/m one of the few obvious candidates ;)
12:57 jnthn [Coke]: Yeah, it looks like that
12:57 jnthn There's no easy fix that I can see either
12:57 felher joined #perl6
12:58 [Coke] we're fixing it now. Please hold. Your HLL is important to us, and all bugs will be answers in the ordered they are received.
12:58 bbkr1 jnthn: http://bbkr.org/~bbkr/segfault/mongo_segfault_backtrace - does it look familiar to the already known segfault issue?
12:59 jnthn [Coke]: Created an issue: https://github.com/parrot/parrot/issues/189
13:00 jnthn bbkr1: No, that looks new.
13:01 jnthn OK, this is kinda a mess.
13:04 stepnem joined #perl6
13:06 bbkr1 jnthn: how can I help to track it down? any way to make backtrace more verbose? I can also create devel account with code that causes bug if you want to analyze it.
13:08 pernatiy joined #perl6
13:10 dalek nqp: a743c97 | jnthn++ | src/ (9 files):
13:10 dalek nqp: Toss clone from the REPR API; it's just implementable in terms of the more primitive allocate and copy_to.
13:10 dalek nqp: review: https://github.com/perl6/nqp/commit/a743c97fab
13:10 dalek nqp: e4e4bb4 | jnthn++ | src/6model/ (8 files):
13:10 dalek nqp: Add gc_cleanup to REPR API; none of the current reprs need it, but bigint will. Not yet called.
13:11 jnthn heuristic merge detection fail ;)
13:11 dalek joined #perl6
13:11 jnthn moritz, mls: Bad news. The green threads branch of Parrot won't build on my platform and the fix doesn't look easy at all. I've reverted a couple of Parrot revision bumps to get things back to a working state.
13:47 stepnem joined #perl6
13:54 dalek rakudo/nom: 6daf5d1 | jnthn++ | tools/build/NQP_REVISION:
13:54 dalek rakudo/nom: Bump to NQP revision that provides reprapi2.
13:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6daf5d1ed2
13:54 dalek rakudo/nom: 95135c3 | jnthn++ | / (9 files):
13:54 dalek rakudo/nom: Merge reprapi2 into nom.
13:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/95135c3394
13:54 dalek rakudo/nom: 666f399 | jnthn++ | src/core/Num.pm:
13:54 dalek rakudo/nom: After the repr updates, we correctly have native num attrs initialized to NaN. However, Num.new() seems to be expected to give back zero, so add an explicit new that makes this happen. Means we regress no spectests now after reprapi2.
13:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/666f399783
13:55 bluescreen10 joined #perl6
13:58 mtk joined #perl6
14:06 thou joined #perl6
14:06 koban left #perl6
14:08 alester joined #perl6
14:31 stepnem joined #perl6
15:19 moritz \o
15:19 moritz jnthn: pong
15:24 lrnperl joined #perl6
15:24 jnthn moritz: see backlog, but basically, I had to take us back a few Parrot revisions.
15:25 moritz ok
15:25 jnthn moritz: There's a Parrot ticket to track the issue.
15:26 jnthn moritz: I'm doing a bit on my talk at the moment, but will update bigint branch for reprapi2 later today.
15:27 dalek rakudo/nom: 0f941b3 | moritz++ | src/core/Exception.pm:
15:27 dalek rakudo/nom: hide Exception.throw and .rethrow from backtrace
15:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0f941b306a
15:31 [Coke] jnthn: the temporary fix from whiteknight will basically avoid the issue; I'm sure parrot could use an actual windows developer to do it right.
15:31 [Coke] (not that I am suggesting you have spare time. ;)
15:36 * moritz just discovered a case where TDD fails
15:37 moritz when it takes longer to compile rakudo than to write down the first version of thing you wanted to write :-)
15:37 frettled joined #perl6
15:44 TimToady sorear: pseudo assigment to a 'my' acts as an assignment only if the signature can be turned into a parcel of lvalues without loss of information; anything signature-y leaves it as a binding (I believe this is how rakudo has done it historically)
15:46 masak moritz: TDD is very dependent on short test runs.
15:46 masak moritz: that's why I try to develop ourside of CORE when I write things for CORE, for example.
15:49 flussence nom: 'abc'.indent(4)
15:49 p6eval nom 666f39: OUTPUT«Method 'indent' not found for invocant of class 'Str'␤  in block <anon> at /tmp/x4Y_skY1GM:1␤  in <anon> at /tmp/x4Y_skY1GM:1␤»
15:50 flussence nom: Str.^add_method('indent', method (Int $a) { say ' ' x $a ~ self }); say 'abc'.indent(4)
15:50 p6eval nom 666f39: OUTPUT«    abc␤Bool::True␤»
15:50 flussence that looks a *lot* easier for messing around than the whole "use MONKEY_TYPING" thing
15:50 thou joined #perl6
15:51 cognominal___ joined #perl6
15:51 flussence how can I add multi methods that way? Or does it "know" somehow?
15:52 masak flussence: it's too easy to add methods that way. probably shouldn't work without MONKEY_TYPING
15:53 flussence it feels very javascripty...
15:54 jnthn flussence: Be very clever about adding multis that way.
15:55 jnthn flussence: If you do, you'll need to .^add_multi_method instead, and you should explicitly declared the invocant type.
15:55 jnthn And then call .^compose
15:55 jnthn flussence: You really should use augment if it's enough
15:55 flussence invocant is that thing with the colon in the signature, right?
15:56 moritz right
15:56 moritz the object that the method is being called on
15:56 jnthn masak: You're only getting that if you make every use of .HOW and .^ forbidden without use MONKEY_TYPING.
15:56 jnthn masak: I don't want that.
15:56 jnthn And I suspect most people don't
15:56 moritz called "reciver" in the languages that tink of method calls as messages
15:56 moritz "receiver"
15:57 jnthn masak: And no, saying "we'll only allow the introspecty ones" doesn't fly. We don't know them all in advance and the MOP is under no obligation to give you copies of stuff.
15:57 tyatpi_ joined #perl6
15:57 masak *nod*
15:58 masak ok, then it sounds like the restriction will have to be cultural.
15:58 jnthn I think if you argue that you need a pragma to do meta-model operations, then we can just as easily argue you need one to write macros or do other things that change the syntax.
15:58 masak in some sense, MOP usage is "just as bad" (as in powerful, potentially damaging, anti-social) as MONKEY_TYPING
15:59 jnthn Well, in a sense it's more dangerous.
15:59 jnthn Take the multi example above.
15:59 jnthn There are 3 things you have to know to get right.
16:00 masak aye.
16:00 fsergot joined #perl6
16:02 masak oh well. with great power comes great responsibility :)
16:02 masak people will probably create wild and wonderful things with the MOP in this way.
16:02 masak but I don't consider it one jot more social to Str.^add_method than to augment Str.
16:03 moritz and probably also wild and not-so-wonderful things :-)
16:03 jnthn masak: No, it's no more social.
16:03 GlitchMr joined #perl6
16:03 flussence masak: in this case .indent's a spec function, so I'm just doing it for my own experimentation. hopefully nobody will need to care what way it's written :)
16:04 flussence (this could be an interesting way to make a module autoload functions on first use...)
16:04 masak flussence: making it in your non-module code is more than fine.
16:05 masak flussence: that's why we're talking about "social" vs "anti-social", because the danger is in when the code is shared.
16:05 flussence oh, I know all about the problems of screwing with other people's modules from Javascript doing it :)
16:06 jnthn .oO( I knew being socialble was dangerous... )
16:06 jnthn *sociable
16:06 flussence (I'll say nothing about this ruby thing people talk about since I've never really used it)
16:07 daniel___ joined #perl6
16:08 jnthn moritz: I guess since you committed a moment ago, I can assume current HEAD builds fine for you?
16:09 moritz jnthn: yes
16:10 moritz (the chain of logic doesn't hold, I had tested the commit earlier and forgot to push, and didn't re-test, but it does build for me :-)
16:10 jnthn ;)
16:10 jnthn Great
16:11 jnthn That was a slightly fiddly set of refactors.
16:11 * jnthn will do a blog post explaining them today, if he gets time
16:11 masak \o/ jnthn++
16:12 masak wow, 'my' classes rock.
16:16 GlitchMr joined #perl6
16:17 felher yeah, jnthn++ :)
16:18 GlitchMr joined #perl6
16:24 wk joined #perl6
16:33 masak perl6: say 1i; say i
16:33 p6eval niecza v11: OUTPUT«0+1i␤0+1i␤»
16:33 p6eval ..pugs b927740: OUTPUT«0 + 1i␤*** No such subroutine: "&i"␤    at /tmp/pisCFJQz2y line 1, column 13 - line 2, column 1␤»
16:33 p6eval ..rakudo 0f941b: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&i' called (line 1)␤»
16:34 jnthn std: i
16:34 masak who's right? Niecza, or Pugs&Rakudo?
16:34 p6eval std be1f10e: OUTPUT«ok 00:01 118m␤»
16:34 masak Niecza, apparently :)
16:34 * jnthn wonders what std parses that as
16:34 mkramer joined #perl6
16:34 masak though I'm just reading things on HN that makes me thing '1i' is good and 'i' is slightly dangerous.
16:34 masak maybe we should be thinking about disallowing 'i'.
16:35 masak I was reading this: http://news.ycombinator.com/item?id=3179628
16:35 masak now, this isn't an *immediate* problem in Perl because we have sigils.
16:36 masak but we also have 'constant' declarations, and soon maybe those weird backspace thingies :)
16:36 masak std: constant foo = 42; { constant foo = 5 }
16:36 p6eval std be1f10e: OUTPUT«ok 00:01 121m␤»
16:37 masak std: class A {}; { constant A = 5 }
16:37 p6eval std be1f10e: OUTPUT«ok 00:01 121m␤»
16:37 masak "all is fair if you do it in an inner scope"?
16:40 masak std: constant foo = 42; { constant foo = OUTER::foo - 37; }
16:40 p6eval std be1f10e: OUTPUT«ok 00:01 121m␤»
16:47 dual joined #perl6
16:48 GlitchMr42 joined #perl6
16:51 alester joined #perl6
16:55 daniel-s joined #perl6
16:59 stepnem joined #perl6
17:00 * masak decommutes
17:12 kaleem joined #perl6
17:38 moritz funnily enough, matlab allows a bare i as the complex unit, but its static code analysis tool points out that 1i is much more efficient
17:41 MayDaniel joined #perl6
17:46 molaf joined #perl6
17:48 moritz nom: say Bool.pick
17:48 p6eval nom 0f941b: OUTPUT«Bool::True␤»
17:49 [Coke] nom: say 1..i.perl
17:49 p6eval nom 0f941b: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&i' called (line 1)␤»
18:00 fridim_ joined #perl6
18:00 daniel-s joined #perl6
18:07 dalek 6model: b501c7f | diakopter++ | / (3 files):
18:07 dalek 6model: minor fixes
18:07 dalek 6model: review: https://github.com/diakopter/6model/commit/b501c7f9e0
18:07 dalek 6model: b501c7f | diakopter++ | / (3 files):
18:07 dalek 6model: minor fixes
18:07 dalek 6model: review: https://github.com/diakopter/6model/commit/b501c7f9e0
18:07 tlocalhos joined #perl6
18:08 diakopter sorear: weird, b501c7f got double reported
18:10 moritz double karma for diakopter++
18:12 GlitchMr joined #perl6
18:18 zby_home__ joined #perl6
18:22 GlitchMr joined #perl6
18:33 simcop2387 joined #perl6
18:40 bloonix joined #perl6
18:52 masak \o/
18:59 zby_home joined #perl6
19:04 moritz nom: my %a;␤sub m() { }␤%a<b> = 1;
19:04 p6eval nom 0f941b: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&a' called (line 3)␤»
19:04 moritz nom: my %a;␤sub m() { };␤%a<b> = 1;
19:04 p6eval nom 0f941b:  ( no output )
19:04 moritz the absence of a ; makes the line after the it misparse
19:05 moritz std: my %a;␤sub m() { }␤%a<b> = 1;
19:05 p6eval std be1f10e: OUTPUT«ok 00:01 124m␤»
19:05 moritz doesn't need to be called m either
19:07 mj41 joined #perl6
19:08 jnthn nom: my @a;␤sub m() { }␤@a<b> = 1;
19:08 p6eval nom 0f941b: OUTPUT«Method 'at_key' not found for invocant of class 'Array'␤  in method postcircumfix:<{ }> at src/gen/CORE.setting:1031␤  in block <anon> at /tmp/NsOQobq6hu:3␤  in <anon> at /tmp/NsOQobq6hu:1␤»
19:09 wolfman2000 joined #perl6
19:09 jnthn Yeah...% is an infix. Must be some oddity there.
19:18 fieldsa joined #perl6
19:20 fieldsa how to slurp in ISO-8599-1?  I have set :raw but that doesn't help, I get UTF-8 encoding input error
19:21 moritz fieldsa: you need to .read and then decode the result as latin-1
19:21 moritz (at least that should work in current rakudo)
19:21 fieldsa thanks, will try that.
19:21 moritz nom: say $*IN.read(2**30).decode('ISO-8859-1').substr(0, 20)
19:21 p6eval nom 0f941b: OUTPUT«Failed allocation of 1073741824 bytes␤Parrot VM: PANIC: Out of mem!␤C file src/gc/gc_gms.c, line 1823␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot.  Use parrotbug (located in par…
19:22 moritz nom: say $*IN.read(1024).decode('ISO-8859-1').substr(0, 20)
19:22 p6eval nom 0f941b: OUTPUT«Land der Berge, Land␤»
19:22 dalek rakudo/nom: 0f582d8 | jnthn++ | src/core/metaops.pm:
19:22 dalek rakudo/nom: Couple of small optimizations to meat-ops.
19:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0f582d82ff
19:23 dalek rakudo/nom: 0f582d8 | jnthn++ | src/core/metaops.pm:
19:23 dalek rakudo/nom: Couple of small optimizations to meat-ops.
19:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0f582d82ff
19:23 flussence double word score!
19:23 jnthn ...huh, I only did one commit
19:23 jnthn oh darn, I typo'd it too
19:25 cognominal___ provocation against vegan programmers.
19:30 cooper joined #perl6
19:35 tadzik question for time ninjas: in how many hours is #phasers?
19:36 tadzik I never know with this DST
19:37 fsergot joined #perl6
19:38 SHODAN joined #perl6
19:40 diakopter lol meat-ops
19:43 moritz tadzik: erm, it's tomorrow
19:43 moritz tadzik: it's 18:30 in my time zone, which is probably the same as yours
19:52 japhb jnthn, why is it an optimization to change 'if @l[$i]' to 'if @l[$i].gimme(1)'?
19:52 MayDaniel joined #perl6
19:53 tadzik moritz: I know it's tomorrow :) I'm just wondering whether I have a chance to attend it in the next 4 months, or is it just in the middle of my lectures. Is it ~20:52 on your clock now?
19:53 masak been a long time since we had a semicolon-at-the-end-of-a-line parsing bug. moritz++
19:53 masak tadzik: yes.
19:53 moritz tadzik: yes
19:54 jnthn japhb: We know that it's a List
19:54 tadzik okay, to it's just in the middle of my lecture, just like before the DST :)
19:54 tadzik I'll pre-report and stumble in the 15 minute break on 19:00 then
19:54 jnthn japhb: List.Bool isn't one of the cheap boolification cases and all it does in .Bool for list is call .gimme(1)
19:55 carlin joined #perl6
19:55 jnthn japhb: If you're doing that in a tight loop, then you save a method dispatch every time around.
19:55 masak obviously meat-ops are a perfect match for spaghetti code.
19:56 jnthn :P
19:56 * colomon just discovered two ancient, embarrassing bugs in his $work code, which only came to light because of a instigating bug in someone else's code.
19:57 japhb jnthn, also, it feels like METAOP_CROSS is overgeneralized, by which I mean it was coded to handle the general case, with no fast paths for common simpler cases.  For example, in my code, replacing '@A X~ @B' with 'fcc(@A, @B)' where fcc is: 'sub fcc (@a, @b) { gather { for @a -> $a { for @b -> $b { take $a ~ $b } } } }' resulted in a *big* speedup when generating my Str.Numeric() stress test strings.
19:58 japhb jnthn, ah, OK, so you're essentially just manually inlining the .gimme(1), since that's all that happens anyway.
19:58 jnthn japhb: Yeah, I've been looking at why it's slow.
19:58 jnthn japhb: It seems that we reify the same list over and over again too.
20:00 japhb perl6: say 0XF00D;
20:00 p6eval pugs b927740: OUTPUT«*** ␤    Unexpected "XF00D"␤    expecting "x", octal digit, "o", "b", fraction, exponent, term postfix, operator, ":" or ","␤    at /tmp/VUm1rt5rSr line 1, column 6␤»
20:00 p6eval ..rakudo 0f582d: OUTPUT«===SORRY!===␤Confused at line 1, near "say 0XF00D"␤»
20:00 p6eval ..niecza v11: OUTPUT«[31m===[0mSORRY![31m===[0m��Whitespace is required between alphanumeric tokens at /tmp/TEXjb1vTiI line 1:�------> [32msay 0[33m�[31mXF00D;[0m��Whitespace is required between alphanumeric tokens at /tmp/TEXjb1vTiI line 1:�------> [32msay 0X[33m�[31mF00D;[0m…
20:01 japhb std: say 0XF00D;
20:01 p6eval std be1f10e: OUTPUT«[31m===[0mSORRY![31m===[0m�Whitespace is required between alphanumeric tokens at /tmp/DkD5vviz3L line 1:�------> [32msay 0[33m�[31mXF00D;[0m�Whitespace is required between alphanumeric tokens at /tmp/DkD5vviz3L line 1:�------> [32msay 0X[33m�[31mF00D;[0m�…
20:01 japhb ENOPHENNY
20:02 japhb TimToady, since recent Perl 5 supports 0B, 0O, 0D, 0X in addition to 0b, 0o, 0d, 0x, do you have an objection to supporting that in Perl 6 as well?
20:03 masak "it's ugly"? :P
20:03 masak ...and somewhat visually non-distinctive...
20:04 japhb masak, I'm not saying recommend it.  I'm saying DTRT when you try to use Str.Numeric() on an uppercase radix-notated int.
20:04 japhb (I don't disagree with you, BTW, I just think the DWIM argument is stronger in this case.)
20:05 cooper joined #perl6
20:06 benabik nom: say 0xF00D
20:06 p6eval nom 0f582d: OUTPUT«61453␤»
20:06 japhb BTW, is there a non-historical reason that std: is not part of perl6: ?
20:06 moritz yes
20:06 moritz it only parses
20:06 moritz the other compilers try to compile and run the code
20:07 moritz so in case of success, std will always differ
20:07 japhb moritz, I only ask because I often see people get mixed failures with the compilers, and then ask STD who parsed it correctly.
20:08 japhb .oO( Maybe include STD whenever on or more of the others parsefail?)
20:08 jnthn brb, dinner
20:08 japhb *one or more
20:09 Trashlord joined #perl6
20:12 bbkr1 joined #perl6
20:18 mj41 joined #perl6
20:19 GlitchMr42 joined #perl6
20:20 thou joined #perl6
20:22 p6eval joined #perl6
20:25 moritz std: $x
20:26 tokuhiro_ joined #perl6
20:28 moritz std: $x
20:28 moritz http://www.perlmonks.org/?node_id=935178 people are complaining that we don't catch post-declared variables
20:29 jnthn oh
20:29 jnthn Really should fix that one.
20:29 moritz I guess it shouldn't be too hard these days, should it?
20:30 jnthn no
20:31 Ingis joined #perl6
20:33 dalek rakudo/nom: 9fc3eb2 | jnthn++ | src/core/IO.pm:
20:33 dalek rakudo/nom: A couple of IO performance improvements. .say for @some_list_of_strings now runs in under half the time, and we shave a little bit off the spectest runtime too.
20:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9fc3eb254f
20:33 p6eval std be1f10e: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable $x is not predeclared at /tmp/kwZrqpiH7P line 1:�------> [32m<BOL>[33m�[31m$x[0m�Check failed�FAILED 00:01 119m�»
20:33 p6eval std be1f10e: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable $x is not predeclared at /tmp/3WJ6M1h7Nq line 1:�------> [32m<BOL>[33m�[31m$x[0m�Check failed�FAILED 00:01 119m�»
20:33 dalek rakudo/nom: 9fc3eb2 | jnthn++ | src/core/IO.pm:
20:33 dalek rakudo/nom: A couple of IO performance improvements. .say for @some_list_of_strings now runs in under half the time, and we shave a little bit off the spectest runtime too.
20:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9fc3eb254f
20:34 __sri joined #perl6
20:34 diakopter 5 minute p6eval delay?
20:34 moritz woah.
20:34 ashleydev joined #perl6
20:34 moritz something is very wrong with that box
20:34 tadzik dalek!
20:34 moritz or the programs running on it
20:34 diakopter poor, poor host04
20:35 * jnthn quickly gets more coding done while it's 2-for-1 on karma
20:36 diakopter maybe someone's DOSing p6eval
20:36 moritz nope
20:37 tyatpi_ joined #perl6
20:38 moritz load average is pretty low
20:40 ksi joined #perl6
20:43 moritz nqp: say($<foo>)
20:44 dalek 6model: 0496bb8 | diakopter++ | lua/runtime/Try.lua:
20:44 dalek 6model: add try/finally emulation; untested.
20:44 dalek 6model: review: https://github.com/diakopter/6model/commit/0496bb8bf5
20:44 dalek 6model: 0496bb8 | diakopter++ | lua/runtime/Try.lua:
20:44 dalek 6model: add try/finally emulation; untested.
20:44 dalek 6model: review: https://github.com/diakopter/6model/commit/0496bb8bf5
20:45 tadzik jnthn: 4 in 1, dalek counts #perl6 AND #parrot :)
20:45 tadzik I noticed that when I wanted to have my 666 karma, and it jumped from 665 to 667 :(
20:45 moritz tadzik: need a -- ? :-)
20:46 p6eval nqp: OUTPUT«Symbol '$/' not predeclared in <anonymous>␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 154 (compilers/pct/src/PCT/HLLCompiler.pir:111)␤»
20:47 tadzik moritz: it's too late already :P
20:47 donaldh joined #perl6
20:49 * moritz finds that he doesn't understand lexicals handling well enough to catch undeclared variables
20:56 jnthn It probably wants a .is_declared in SymbolTable
20:56 jnthn Which goes looking through the blocks.
20:58 jnthn japhb: ah, I was wrong. In Xop way over 50% of the time is spent in this line: if $i >= $n { my @x = @v; take $rop(|@x); }
21:00 tadzik ftr: make install  653.33s user 9.07s system 110% cpu 10:00.30 total
21:00 tadzik timing spectest now
21:12 thowe joined #perl6
21:12 y3llow joined #perl6
21:12 pothos_ joined #perl6
21:15 dalek rakudo/nom: f71cff1 | jnthn++ | src/core/GatherIter.pm:
21:15 dalek rakudo/nom: Avoid a more expensive ! in GatherIter; remove some Q:PIR.
21:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f71cff18a0
21:15 dalek rakudo/nom: cb63745 | jnthn++ | src/core/metaops.pm:
21:15 dalek rakudo/nom: When crossing two lists, we don't need to shove the op through METAOP_REDUCE; it's a binary op already. Just use it.
21:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cb63745f00
21:15 dalek rakudo/nom: f71cff1 | jnthn++ | src/core/GatherIter.pm:
21:15 dalek rakudo/nom: Avoid a more expensive ! in GatherIter; remove some Q:PIR.
21:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f71cff18a0
21:15 dalek rakudo/nom: cb63745 | jnthn++ | src/core/metaops.pm:
21:15 dalek rakudo/nom: When crossing two lists, we don't need to shove the op through METAOP_REDUCE; it's a binary op already. Just use it.
21:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cb63745f00
21:15 pothos_ joined #perl6
21:15 daniel-s joined #perl6
21:16 jnthn With those patches, "my @a = 'AA'..'ZZ'; my @b = 1..100; .say for @a X~ @b;" now runs in half the time it used to.
21:16 jnthn (er, "those" includes the IO ones I did earlier)
21:17 jnthn Plus I have a real world worked example for my optimization talk :)
21:21 moritz nom: grammar A { token TOP { foo } }; A.parse('foo').print
21:21 p6eval nom 9fc3eb: OUTPUT«foo»
21:24 dalek roast: 261cff6 | moritz++ | S16-io/say.t:
21:24 dalek roast: test Match.print
21:24 dalek roast: review: https://github.com/perl6/roast/commit/261cff60bd
21:24 dalek roast: 261cff6 | moritz++ | S16-io/say.t:
21:24 dalek roast: test Match.print
21:24 dalek roast: review: https://github.com/perl6/roast/commit/261cff60bd
21:28 moritz nom: say Mu ~ Mu
21:28 p6eval nom 9fc3eb: OUTPUT«No applicable candidates found to dispatch to for 'infix:<~>'. Available candidates are:␤:(Any $x)␤:(Str $a, Str $b)␤:(Buf $a, Buf $b)␤:(Any $a, Any $b)␤␤  in block <anon> at /tmp/VjE0GuoD_F:1␤  in <anon> at /tmp/VjE0GuoD_F:1␤»
21:29 dalek roast: 0b7f0f0 | moritz++ | S04-statements/for.t:
21:29 dalek roast: test for RT #60780, odd sized list and two iteration variables
21:29 dalek roast: review: https://github.com/perl6/roast/commit/0b7f0f096c
21:29 dalek roast: 0b7f0f0 | moritz++ | S04-statements/for.t:
21:29 dalek roast: test for RT #60780, odd sized list and two iteration variables
21:29 dalek roast: review: https://github.com/perl6/roast/commit/0b7f0f096c
21:41 plobsing joined #perl6
21:56 dalek 6model: 37485f2 | diakopter++ | lua/compiler/ (4 files):
21:56 dalek 6model: implement while/until/repeat_while/repeat_until without using labels/gotos :/
21:56 dalek 6model: review: https://github.com/diakopter/6model/commit/37485f2631
21:56 dalek 6model: 37485f2 | diakopter++ | lua/compiler/ (4 files):
21:56 dalek 6model: implement while/until/repeat_while/repeat_until without using labels/gotos :/
21:56 dalek 6model: review: https://github.com/diakopter/6model/commit/37485f2631
22:21 daniel-s joined #perl6
22:22 donaldh perl6: Str.^attributes
22:22 p6eval rakudo cb6374:  ( no output )
22:22 p6eval ..pugs b927740: OUTPUT«*** No such method in class Class: "&attributes"␤    at /tmp/OUhywkhuFI line 1, column 1 - line 2, column 1␤»
22:22 p6eval ..niecza v11: OUTPUT«␤Unhandled Exception: Unable to resolve method attributes in class ClassHOW␤  at /tmp/Mo0v8KCnuL line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2223 (ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2224 (module-CORE @ 58) ␤  at /home/p…
22:29 japhb jnthn++ # optimizing
22:29 japhb jnthn, how does the time for that test compare to using the fcc() sub that I posted earlier rather than X~ ?
22:30 japhb (I would think it would be totally dominated by the IO)
22:30 jnthn japhb: Didn't try that yet; have been trying to get some slides done for upcoming workshops ;)
22:30 japhb Oh, well don't let me stop you then.  ;-)
22:33 japhb BTW, I tried doing various lower-level nqp:: variants of fcc(), rather than the pure-Perl 6 code I posted earlier, but most of them actually slowed it down.  The only one that was a win was replacing '$a ~ $b' by the appropriate nested nqp:: ops, and then only by about 5% or so.  Rakudo++ for not forcing every optimization task to be about writing horrendous strings of ultra-low-level code!
22:57 diakopter one definition of insanity is continuing to try to define insanity the same way, and failing.
22:59 cognominal___ I thought Perl 6 was about to take Perl insanity to another level, the same way but another level.
23:07 masak 'night, #perl6
23:07 tadzik 'night
23:09 jnthn Sleep time for me...gotta $dayjob tomorrow morning.
23:09 tadzik g'night as well
23:09 jnthn Didn't get the bigint stuff updated for the new repr api :( But at least my optimization talk is getting there... :)
23:09 tadzik I can't sleep, I have to keep dividing animal food
23:09 tadzik optimizing, they say
23:09 jnthn ;)
23:09 jnthn night o/
23:10 tadzik o/
23:16 danishman joined #perl6
23:21 domidumont joined #perl6
23:23 benabik joined #perl6

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

Perl 6 | Reference Documentation | Rakudo