Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-08-13

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:00 japhb timotimo: I thought that case was already optimized when lizmat++ was reworking :exists and friends a few months ago ...?
00:02 lue joined #perl6
00:03 timotimo i *think* we still create objects with the WHENCE property when descending into the hash
00:03 timotimo whereas if we knew we wouldn't allow autovivification, we could just use throwaway Any objects or something
00:03 timotimo it's probably not worth much
00:03 timotimo and i should go to bed :)
00:03 timotimo o/
00:04 japhb Sleep well, timotimo!
00:10 rurban1 joined #perl6
00:46 BenGoldberg joined #perl6
00:52 TimToady we could do a lot better by propagating known lvalue and rvalue contexts downward, where rvalue context includes passing to any known parameter that isn't rw
00:52 TimToady so the only place such a pragma might be useful is in passing to a late-bound parameter
00:53 TimToady and I suspect we might find a way to optimize those too
00:53 TimToady such pragmas are always kinda smelly
00:55 TimToady one could turn a cascade of subscripts into a thunk, for instance, and delay evaluation till we know how it will be bound
00:56 TimToady WHENCE is really just a workaround to get correct behavior in the absence of a brilliant compiler
00:57 TimToady which rakudo is starting to show signs of :)
00:58 japhb \o/  # Flashes of brilliance!
01:02 * BenGoldberg offers the bulbs from his flashlight to make rakudo brighter ;)
01:04 TimToady .oO(Light Emitting Developers)
01:05 japhb .oO( Organic Light Emitting Developers )
01:05 BenGoldberg That's easy -- just wear glow in the dark clothing.
01:06 japhb I emit lots of light -- it's just mostly in the infrared region of the spectrum
01:09 raiph joined #perl6
01:10 BenGoldberg But if the average surface temperature of your surroundings is the same as your skin temp, you will absorb the same amount of infrared light as you emit.
01:10 japhb If that was the case, it would either be a very hot room, or a very cold me.
01:10 BenGoldberg So you can't be said to be a luminous software developer, unless you're working in a cold room.
01:11 japhb ... and the fans on my desktop would be going crazy in the former case.
01:11 japhb BenGoldberg: Of course, like a CPU, I'm more efficient when cool.  :-)
01:11 BenGoldberg I said skin temp, not core body temp.  Your skin temp is probably close to 70F.
01:11 japhb In fact, in body-temperature surroundings, I'm probably not coding at all.
01:15 japhb Hmmm, just looked it up, skin is relatively warmer than surroundings, varying by location and amount/type of clothing, with bare feet being perhaps the closest to external temperature.
01:24 nbrown joined #perl6
01:24 FROGGS_ joined #perl6
01:28 mattp_ joined #perl6
01:29 dalek roast/S26-WHY: 6347fe1 | (Rob Hoelz)++ | S26-documentation/why-both.t:
01:29 dalek roast/S26-WHY: Start testing POD block stuff
01:29 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/6347fe1a8c
01:29 dalek roast/S26-WHY: ec01d1c | (Rob Hoelz)++ | S26-TODO.md:
01:29 dalek roast/S26-WHY: Tabularize coverage matrix
01:29 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/ec01d1cc6e
01:29 dalek rakudo/S26-WHY: 1006e4f | (Rob Hoelz)++ | src/ (2 files):
01:29 dalek rakudo/S26-WHY: Fix up POD blocks for why-both
01:29 dalek rakudo/S26-WHY: review: https://github.com/rakudo/rakudo/commit/1006e4f785
01:29 hoelzro *much* prettier: https://github.com/perl6/roast/blob/​S26-WHY/S26-TODO.md#make-sure-all-de​claration-types-are-covered-by-tests
01:37 japhb Yeah, that's a big improvement
01:41 noganex joined #perl6
01:45 coffeeyy joined #perl6
01:48 klapperl_ joined #perl6
01:52 thou joined #perl6
02:06 guest_____ joined #perl6
02:23 Ben__ joined #perl6
02:28 Colby` joined #perl6
02:35 BenGoldberg joined #perl6
02:38 Akagi201 joined #perl6
02:50 thou joined #perl6
02:54 noganex_ joined #perl6
03:13 xragnar_ joined #perl6
03:14 hagiri joined #perl6
03:14 chenryn joined #perl6
03:49 dalek roast/S26-WHY: 56268dc | (Rob Hoelz)++ | S26-documentation/why-both.t:
03:49 dalek roast/S26-WHY: Fill out why-both tests a bit
03:49 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/56268dc057
03:49 dalek roast/S26-WHY: 36d1e91 | (Rob Hoelz)++ | S26-TODO.md:
03:49 dalek roast/S26-WHY: Fill out matrix a bit
03:49 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/36d1e91723
03:51 hoelzro are macros installed into the lex pad/symbol table for runtime introspection?
03:51 hoelzro it just occurred to me that they might not be...
03:56 hoelzro ah, it seems like it does
04:04 dalek roast/S26-WHY: db83983 | (Rob Hoelz)++ | S26- (4 files):
04:04 dalek roast/S26-WHY: Test documentation on macros
04:04 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/db83983bb7
04:04 dalek roast/S26-WHY: 2bb7d87 | (Rob Hoelz)++ | S26-TODO.md:
04:04 dalek roast/S26-WHY: Start coming up with a "merge back to nom" plan
04:04 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/2bb7d874ac
04:04 kaare_ joined #perl6
04:27 dalek rakudo/S26-WHY: 1fb5236 | (Rob Hoelz)++ | src/Perl6/Grammar.nqp:
04:27 dalek rakudo/S26-WHY: Fix trailing docs for macros
04:27 dalek rakudo/S26-WHY: review: https://github.com/rakudo/rakudo/commit/1fb52366e0
04:40 rurban1 joined #perl6
04:47 ren1us joined #perl6
04:56 chenryn joined #perl6
05:05 khisanth_ joined #perl6
05:10 Khisanth joined #perl6
05:29 fling joined #perl6
05:29 gfldex joined #perl6
05:38 [Sno] joined #perl6
05:48 kaleem joined #perl6
05:50 ChoHag joined #perl6
06:08 denis_boyun joined #perl6
06:20 PotatoGim joined #perl6
06:21 ventica_desktop joined #perl6
06:23 chenryn joined #perl6
06:34 anaeem1 joined #perl6
06:34 ventica joined #perl6
06:39 dayangkun joined #perl6
06:43 Mouq joined #perl6
06:43 Mouq FROGGS: Yay! :)
06:43 yoleaux 12 Aug 2014 19:08Z <FROGGS> Mouq: nice! and yes, this makes the Slangish module easier design wise...
06:58 masak morning, #perl6
06:58 moritz \o masak, *
07:00 molaf joined #perl6
07:01 Mouq o/ masak, just now I added Perl 6 to that wiki article you mentioned a few days ago: https://en.wikipedia.org/w/index.p​hp?title=Operator_overloading&amp;​diff=621022565&amp;oldid=618329590
07:02 Mouq though maybe s/subroutine/function/?
07:03 SamuraiJack joined #perl6
07:04 Mouq I'll do that and add a snippit of syntax, I suppose
07:07 darutoko joined #perl6
07:08 Mouq Hmmm... Looking for a simple and accessible example from core.setting...
07:11 * Mouq goes with multi infix:<+>(Int:D $x, Date:D $d)
07:12 masak Mouq++
07:12 masak Mouq: I think "subroutine" is Perl lingo, and "function" is more broadly used.
07:19 gamo joined #perl6
07:20 dmol joined #perl6
07:20 gamo How do I shuffle a list in perl6?
07:21 Mouq m: say (2,3,4).pick(*)
07:21 camelia rakudo-moar 969e6c: OUTPUT«2 4 3␤»
07:21 Mouq m: say (1..100).pick(*)
07:21 camelia rakudo-moar 969e6c: OUTPUT«96 10 86 39 75 4 6 19 90 38 11 58 21 29 85 81 62 78 54 80 73 83 12 30 18 44 82 36 49 45 5 97 61 25 67 98 70 32 48 35 24 57 76 9 15 92 51 26 23 13 7 34 3 31 42 77 47 100 74 89 66 28 69 27 94 55 46 93 17 22 59 41 40 37 63 79 87 60 52 65 1 8 84 95 56 91 64 2 …»
07:21 chenryn joined #perl6
07:21 kurahaupo joined #perl6
07:22 gamo thanks
07:25 Mouq np :)
07:25 Mouq masak: How's it look now?
07:26 * Mouq has to get on a plane in a few hours
07:27 * Mouq thought his flight was on Friday until a few days ago, isn't quite in a "pack up and leave" mindset yet :/
07:29 ventica_desktop joined #perl6
07:29 masak Mouq: slightly distracted, sorry. mid-commute.
07:30 Mouq masak: np, no rush :) if nothing else I'll probably see it in the backlogs
07:34 dalek specs: 22d8cd4 | Mouq++ | S03-operators.pod:
07:34 dalek specs: Generalize ~~ calls to be on Setty, Baggy, & Mixy
07:34 dalek specs:
07:34 dalek specs: (To account for {Set,Bag,Mix}Hash)
07:34 dalek specs: review: https://github.com/perl6/specs/commit/22d8cd42ba
07:40 itz_ joined #perl6
07:58 Pleiades` joined #perl6
08:31 dakkar joined #perl6
08:31 ventica_desktop joined #perl6
08:38 masak Mouq++ # https://en.wikipedia.org/wik​i/Operator_overloading#2000s
08:38 synopsebot Link: https://rt.perl.org/rt3//Pub​lic/Bug/Display.html?id=2000
08:38 masak no, synopsebot, you silly.
08:38 masak Mouq: looks very nice.
08:39 thou joined #perl6
08:50 fhelmberger joined #perl6
09:17 salv0 joined #perl6
09:19 colomon lizmat++
09:20 colomon github and/or my e-mail just dumped days' worth of specs commits to my inbox...
09:23 gamo joined #perl6
09:25 chenryn joined #perl6
09:26 gamo1 joined #perl6
09:28 slavik joined #perl6
09:31 itz joined #perl6
09:31 ssutch joined #perl6
09:34 spider-mario joined #perl6
09:35 masak the spec emails tend to come in clumps, for some reason.
09:36 lizmat I'm pretty sure someone needs to OK them
09:36 nwc10 they've hit the list moderator
09:36 * lizmat suspects TimToady
09:36 nwc10 Delivered-To: moderator for perl6-language@perl.org
09:38 dalek specs: e6fda2f | (Elizabeth Mattijsen)++ | S03-operators.pod:
09:38 dalek specs: Alas, mutable Set/Bag/Mix follow different rules
09:38 dalek specs:
09:38 dalek specs: This reverts commit 22d8cd42ba02f242489a466d8e2377974cbb1cb5.
09:38 dalek specs: review: https://github.com/perl6/specs/commit/e6fda2fe3d
09:38 lizmat m: say <a b>.SetHash === <a b>.SetHash
09:38 camelia rakudo-moar 969e6c: OUTPUT«False␤»
09:39 lizmat m: say <a b>.SetHash ~~ <a b>.SetHash   # something fishy here
09:39 camelia rakudo-moar 969e6c: OUTPUT«True␤»
09:39 anaeem1_ joined #perl6
09:39 masak lizmat: looks right to me.
09:39 masak analogous to this:
09:39 lizmat m: say <a b>.Set ~~ <a b>.Set
09:39 camelia rakudo-moar 969e6c: OUTPUT«True␤»
09:39 masak m: say <a b> === <a b>
09:39 camelia rakudo-moar 969e6c: OUTPUT«False␤»
09:39 masak m: say <a b> ~~ <a b>
09:39 camelia rakudo-moar 969e6c: OUTPUT«True␤»
09:40 lizmat well, then this line in the table is incorrect:
09:40 lizmat Set       Set       identical sets          $_ === X
09:40 lizmat for the Setty case
09:40 masak I'm... not sure I'd want that semantics, no.
09:41 lizmat it works for Set, as it is immutable and value based
09:41 masak oh, right.
09:42 masak probably not the sane thing for mutable/reference types.
09:42 fhelmberger_ joined #perl6
09:44 fhelmberger joined #perl6
09:44 cosimo_ joined #perl6
09:54 tadzik computer, messages
09:54 yoleaux 12 Aug 2014 23:11Z <ren1us> tadzik: https://gist.github.com/re​n1us/01d724255dd57bbaab31 # panda issues
09:55 tadzik this is the closest thing to a Star Trek world that I have :o
09:56 ChoHag Perl just said this: µx@®¢-£y٭B¨B(¢-
09:56 ChoHag It's not supposed to do that!
09:57 masak ChoHag: luckily, this is #perl6. which does not have that particular failure mode, AFAIK.
09:58 masak (we aim for different mistakes) :)
09:59 ChoHag Whether you aimed for that or not, that's what just got spat out.
10:00 ChoHag Most frustratingly, I *think* my code now does more or less what I think it does, but it keeps tripping over moar thread bugs so I can't tell what's my fault and what's not.
10:01 * masak .oO( I think my code does what I think it does )
10:04 ChoHag sic
10:05 dalek specs: 5c86418 | (Elizabeth Mattijsen)++ | S03-operators.pod:
10:05 dalek specs: Hopefully correctly map Setty/Baggy/Mixy in ~~
10:05 dalek specs:
10:05 dalek specs: Mouq++ for pointing out to me I forget the xHash cases.
10:05 dalek specs: review: https://github.com/perl6/specs/commit/5c86418824
10:05 jnthn .oO( Grammar errors make me [sic] )
10:05 masak ooh, it's actually Perl 6-related? I didn't get that part until now.
10:05 ChoHag Well I did. Now I made the mistake of not changing anything so it's started blowing up every time.
10:05 masak well, hope you manage to golf and submit the thread bug.
10:06 jnthn ChoHag++ passed me the code last night
10:06 jnthn So I'll reproduce when I get chance and try to fix it...
10:06 jnthn lunch &
10:06 ChoHag This one's common: death by Internal error: inconsistent bind result:   in method Stringy at src/gen/m-CORE.setting:5777
10:07 ggoebel1111115 joined #perl6
10:07 aoseki joined #perl6
10:07 erkan joined #perl6
10:07 amkrankruleuen joined #perl6
10:07 baest joined #perl6
10:17 thistuso- joined #perl6
10:26 chenryn joined #perl6
10:27 thou joined #perl6
10:30 ggoebel1111115 joined #perl6
10:30 aoseki joined #perl6
10:30 erkan joined #perl6
10:30 amkrankruleuen joined #perl6
10:30 baest joined #perl6
10:37 dalek rakudo/nom: 4e28c75 | (Elizabeth Mattijsen)++ | lib/Test.pm:
10:37 dalek rakudo/nom: Make isnt a bit more verbose on failure, like is
10:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4e28c750f1
10:42 timotimo to err is human. to err well is butterfly.
10:46 anaeem1_ joined #perl6
10:58 FROGGS[mobile] joined #perl6
10:59 ventica_desktop joined #perl6
11:05 lizmat jnthn, moritz: puzzled by following lines in lib/Test.pm
11:05 lizmat # XXX no regexes yet in nom
11:05 lizmat my $bad_death = $ee.Str.index('Null PMC access ').defined;
11:05 lizmat feels like a fossil, is it?
11:05 FROGGS[mobile] yeah
11:06 jnthn yes, looks like :)
11:06 lizmat ok, will clean up and run spectest  :)
11:10 chenryn joined #perl6
11:10 lizmat also, it feels like dies_ok and eval_dies_ok could be merged
11:10 lizmat just like throws_like, which can take a Str or a Callable
11:11 dalek rakudo/nom: 42dfe38 | (Elizabeth Mattijsen)++ | lib/Test.pm:
11:11 dalek rakudo/nom: Remove fossil from eval_dies_ok
11:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/42dfe3845a
11:14 lizmat actually, same for lives_ok and eval_lives_ok
11:15 lizmat it would also seem we need to change a lot of (eval_|)dies_ok to throws_like
11:16 FROGGS[mobile] that makes sense
11:16 FROGGS[mobile] ... and might be the cause for ten more tickets
11:21 ventica_desktop joined #perl6
11:23 ChoHag Every time I run this thing and then get caught up doing something else, I come back to find the log of a clean run through, suggesting that my bugs are mostly of the cosmetic variety.
11:23 ChoHag So I run it again and it refuses to do anything other than trip over thread bugs while I watch.
11:24 ChoHag I think I need to put a sticker over the camera so the computer can't tell when I'm watching.
11:30 lizmat cycling&
11:31 sergot o/ http://filip.sergot.pl/en/blog/perl6/gsoc_status/
11:31 yoleaux 11 Aug 2014 10:10Z <timotimo> sergot: you haven't posted to your blog about the gsoc for quite a while; isn't there some kind of requirement (possibly not strict) to have a public progress report on a biweekly basis?
11:31 sergot timotimo: you are right, there is a requirement
11:32 sergot timotimo: I just did a longer break before the last post about this project. :)
11:32 sergot made
11:33 sergot had
11:33 sergot ...
11:33 sergot :)
11:33 masak "did", "made" and "had" all work there.
11:33 masak but they mean slightly different things :)
11:35 sergot yeah, made is the best one here I think
11:35 sergot :)
11:37 masak oh, and "took" is also possible :)
11:48 thistusooa joined #perl6
11:57 pecastro joined #perl6
12:16 mr-foobar joined #perl6
12:16 thou joined #perl6
12:21 mr-foobar joined #perl6
12:24 moritz taken
12:27 jdurand joined #perl6
12:35 guru joined #perl6
12:35 fhelmberger joined #perl6
12:39 dalek roast/S26-WHY: ea34542 | (Rob Hoelz)++ | S26-TODO.md:
12:39 dalek roast/S26-WHY: Move variables row down
12:39 dalek roast/S26-WHY:
12:39 dalek roast/S26-WHY: Since I don't intend to implement it until later
12:39 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/ea345429a8
12:39 dalek roast/S26-WHY: e05a1fa | (Rob Hoelz)++ | S26- (4 files):
12:39 dalek roast/S26-WHY: Test more S26 things
12:39 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/e05a1fa2ac
12:42 jnap joined #perl6
12:46 pmurias joined #perl6
12:53 dalek rakudo-star-daily: 5d9a65d | coke++ | log/ (14 files):
12:53 dalek rakudo-star-daily: today (automated commit)
12:53 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/5d9a65de53
13:07 prevost joined #perl6
13:08 dalek tablets: a067826 | (Herbert Breunung)++ | docs/ (3 files):
13:08 dalek tablets: straighten out operator related terms
13:08 dalek tablets: review: https://github.com/perl6/tablets/commit/a067826ca4
13:12 ajr joined #perl6
13:14 pmichaud good morning, #perl6
13:17 * nwc10 steals someone else's line
13:17 nwc10 good Am, Pm
13:18 nwc10 "too slow"
13:18 nwc10 (that being my usual line at london.pm when running off to the bar)
13:20 kaleem joined #perl6
13:24 guru joined #perl6
13:26 rurban1 joined #perl6
13:26 masak g'day, pm
13:31 FROGGS_ joined #perl6
13:42 treehug88 joined #perl6
13:47 [Coke] pmichaud: hio
13:47 [Coke] pmichaud: good day!
13:57 JimmyZ joined #perl6
14:04 thou joined #perl6
14:05 pmichaud [Coke]: o/
14:05 pmichaud A good day to you too, sir!
14:11 sjn pmichaud: happy survived-another-trip-around-the-sun day for you, sir. :)
14:18 masak oh, is it today_
14:18 masak ?
14:20 jnthn m: say join ', ', 'Happy birthday ' <<~<< ('to you' xx 2, 'pmichaud', 'to you')
14:20 camelia rakudo-moar 42dfe3: OUTPUT«Happy birthday to you, Happy birthday to you, Happy birthday pmichaud, Happy birthday to you␤»
14:20 masak jnthn++ # metaops for great congrats!
14:21 masak m: say join ', ', 'Happy birthday ' <<~<< ('to you' xx 2, $_, 'to you') given 'pmichaud'
14:21 camelia rakudo-moar 42dfe3: OUTPUT«Happy birthday to you, Happy birthday to you, Happy birthday pmichaud, Happy birthday to you␤»
14:21 masak factored out the pmichaud ;)
14:21 PerlJam masak: he's been factored out far too much lately.  We need him factored in more  :-)
14:22 masak oops, sorry :)
14:22 PerlJam pmichaud: Happy Birthday!  :)
14:24 PerlJam pmichaud: you're 31 this year, n'est pas? :)
14:24 masak m: say 0x31
14:24 camelia rakudo-moar 42dfe3: OUTPUT«49␤»
14:25 pmichaud Oui, j'ai 31 ans.
14:26 * masak .oO( nice ans-wer )
14:27 pmichaud Yes, I survived another trip around the sun... but there are an awful lot of rocks in this neighborhood.  I guess one can say I had a rocky start.
14:30 moritz pmichaud.age++, pmichaud++
14:32 geekosaur well, that's 3 so far (including one coworker). not enough days in a year, I guess :)
14:32 masak geekosaur: ever heard of the birthday paradox? :)
14:33 geekosaur yes, in fact I was kinda sideways referring to it
14:37 brrt joined #perl6
14:38 chenryn joined #perl6
14:39 rurban1 joined #perl6
14:42 ggoebel1111116 joined #perl6
14:48 chenryn joined #perl6
14:48 sivoais joined #perl6
14:48 sftp joined #perl6
14:50 telex joined #perl6
14:51 hoelzro morning #perl6
15:03 treehug88 joined #perl6
15:05 * TimToady doesn't moderate mailing lists, only RosettaCode, and that sporadically
15:08 * PerlJam has had to use "stty sane" twice this week  (for the first time in years)
15:18 chenryn joined #perl6
15:23 japhb PerlJam: That begs the question of exactly what is making your TTY insane.
15:26 jnap joined #perl6
15:27 PerlJam japhb: git and perl6 apparently.  (though, the time it was perl 6, I really just needed to turn echo back on, so maybe that doesn't count as "insane")
15:28 TimToady gah, the smartmatch table has evolved into a complete mess
15:28 klaas-janstol joined #perl6
15:29 SamuraiJack joined #perl6
15:29 * TimToady thinks about how to clean it up
15:31 dalek perl6-roast-data: 732d17c | coke++ | / (6 files):
15:31 dalek perl6-roast-data: today (automated commit)
15:31 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/732d17c47d
15:32 TimToady you can't use === between the keys of hashes/sets like that
15:33 TimToady there's no guarantee the keys come out in the same order
15:44 iarna joined #perl6
15:58 dalek nqp-js: ae705ed | (Pawel Murias)++ | / (9 files):
15:58 dalek nqp-js: Basic variable support.
15:58 dalek nqp-js:
15:58 dalek nqp-js: Start creating a revised runtime in src/vm/js/nqp-runtime.
15:58 dalek nqp-js: Implement the bind opo.
15:58 dalek nqp-js: QAST::Call with a single QAST::BVal argument.
15:58 dalek nqp-js: Add some mini tests to t/js/mini (They don't all produce tap so they are not yet run by a harness)
15:58 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/ae705ed92a
16:23 denis_boyun joined #perl6
16:26 brrt joined #perl6
16:30 dalek specs: b99ecf4 | TimToady++ | S03-operators.pod:
16:30 dalek specs: whack down the smartmatch table
16:30 dalek specs:
16:30 dalek specs: The semantics of smartmatches should largely be inferable from the
16:30 dalek specs: X argument, and should not imply heavy run-time processing of the
16:30 dalek specs: X value.  In general, smartmatches should not be providing implicit
16:30 dalek specs: any/all semantics except in a few cases where no other interpretation
16:30 dalek specs: is possible.  Since we now have Sets, Hash smartmatch no longer needs
16:30 dalek specs: to emulate sets, and can be eqv identity.  Regex on LHS now considered
16:30 dalek specs: too magical, but we provide provide Callable escape value for reverse
16:30 dalek specs: match of Associative and Positional.  (Reverse Regex match on keys
16:30 dalek specs: can be written { .keys.any ~~ /.../ } ~~ %hash for instance.)
16:30 kaleem joined #perl6
16:31 ventica_desktop joined #perl6
16:38 TimToady there's little point in having a smartmatch table that you have to look things up in constantly
16:41 TimToady arguably the hash slice existence tests should be thrown out as well, since they can be done with the Callable escape valve
16:41 TimToady and that will force the any/all intent to be made clear
16:51 dalek specs: c58b918 | TimToady++ | S03-operators.pod:
16:51 dalek specs: put back non-slice hash item lookups
16:51 dalek specs:
16:51 dalek specs: These seem obvious, and work well with junctions on the LHS.
16:51 dalek specs: review: https://github.com/perl6/specs/commit/c58b91883a
16:51 akaseki joined #perl6
16:52 dmol joined #perl6
16:57 treehug88 joined #perl6
17:03 dalek specs: 629dbe9 | TimToady++ | S03-operators.pod:
17:03 dalek specs: hash smartmatching just shouldn't try to guess
17:03 dalek specs:
17:03 dalek specs: With our lovely junctions available for clarity, we should just force the user to be clear.
17:03 dalek specs: review: https://github.com/perl6/specs/commit/629dbe9af6
17:09 * TimToady now feels he has some small hope of remembering most of the smartmatch table
17:12 TimToady and this might even help spesh a bit, with fewer types flopping all over the floor of the boat
17:15 TimToady so basically, @list ~~ Hash or @list ~~ Regex will now tell you to clarify the LHS with any/all/cat/join
17:18 TimToady smartmatching is really stupidmatching when both the computer and the user are guessing
17:46 guru joined #perl6
17:58 anaeem1_ joined #perl6
18:00 masak TimToady: +1 to all of the above
18:04 dmol joined #perl6
18:06 Rotwang joined #perl6
18:08 treehug88 joined #perl6
18:10 [Sno] joined #perl6
18:14 anaeem1_ joined #perl6
18:15 anaeem___ joined #perl6
18:17 FROGGS_ o/
18:17 anaeem1_ joined #perl6
18:17 SamuraiJack joined #perl6
18:18 dmol joined #perl6
18:19 anaeem1 joined #perl6
18:20 anaeem1_ joined #perl6
18:29 ren1us joined #perl6
18:32 anaeem1_ joined #perl6
18:33 [particle]1 joined #perl6
18:33 [Sno]_ joined #perl6
18:34 isacloud____ joined #perl6
18:35 Psyche^ joined #perl6
18:36 coffeeyy_ joined #perl6
18:38 spider-mario_ joined #perl6
18:41 pecastro joined #perl6
18:42 synopsebot joined #perl6
18:46 kshannon joined #perl6
18:47 yakudzo joined #perl6
18:49 gfldex joined #perl6
18:52 FROGGS m: grammar G { token TOP { <a> }; proto token a {*}; token a:sym«<foo>» { <sym> } }; class A { method a:sym«<foo>»($/) { say("awesome") } }; G.parse("<foo>", :actions(A) ) # bug
18:52 camelia rakudo-moar 42dfe3: ( no output )
18:52 FROGGS nqp-m: grammar G { token TOP { <a> }; proto token a {*}; token a:sym«<foo>» { <sym> } }; class A { method a:sym«<foo>»($/) { say("awesome") } }; G.parse("<foo>", :actions(A) ) # no bug
18:52 camelia nqp-moarvm: OUTPUT«awesome␤»
18:53 FROGGS rakudo tries to call a:sym<<foo>>
18:54 ChoHag God damn it. Switched to freebsd and now my terminal doesn't understand unicode, so this channel always looks funky.
18:54 FROGGS :«(
18:55 FROGGS eww, that was not intended to look that germish >.<
18:55 molaf joined #perl6
19:03 anaeem1_ joined #perl6
19:03 brrt left #perl6
19:04 anaeem1 joined #perl6
19:05 moritz
19:06 lizmat r: my @a = <a b c>; my %h = (a => 1, b => 2, d => 3); say @a; say %h; say @a ~~ %h  # something that should fail from now on
19:06 camelia rakudo-{parrot,jvm,moar} 42dfe3: OUTPUT«a b c␤("a" => 1, "b" => 2, "d" => 3).hash␤True␤»
19:08 PerlJam Seems like LHF modulo the wording of the fail message.
19:08 lizmat should we do a deprecation cycle for these now failing smartmatch combo's ?
19:09 PerlJam lizmat: oh, good question.   I tend towards "yes"
19:09 PerlJam (but who would be relying on it now?)
19:09 lizmat someone with a wrong understanding of smartmatch ?
19:15 cognome I am not smart enough to use that.
19:16 PerlJam cognome: sounds like you're smart enough to use it appropriately then!  :)
19:16 PerlJam (i.e. not at all)
19:17 cognome does that constitute a right understanding?
19:17 PerlJam possibly.
19:25 TimToady There's little wrong with the BSDs that cannot be explained by the fact that they're still mostly competing wity System V.
19:26 TimToady *with
19:27 huf the golden age? :)
19:32 TimToady well, I wouldn't trade vim for the old vi...
19:34 TimToady for one thing, vim understands Unicode :D
19:35 lizmat and unlimited undo across sessions  :-)
19:36 dalek rakudo/nom: daf80f8 | (Elizabeth Mattijsen)++ | lib/Test.pm:
19:36 dalek rakudo/nom: Kill another fossil: no such thing as a bad death
19:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/daf80f8fc6
19:36 * TimToady hates it when he undoes too far and ends up in some other random file
19:37 * lizmat was taught that anything with "too" in it, is generally no good
19:37 TimToady too true
19:38 * lizmat is just glad it's not TimToody  :-)
19:39 carlin "There's little wrong with the BSDs" ~ Larry Wall, 2014
19:39 carlin :p
19:41 BinGOs TomTiady
19:42 Ven joined #perl6
19:43 Ven moritz: yeah, I know the learnxiny has some quirks atm
19:43 Ven I'm on holidays atm, no wifi, but I'm going to download it now to change some stuff
19:44 lizmat Ven++
19:45 Ven err, 3 days without checking them full-time, and already 121 github notifs.
19:45 * [Coke] wonders how lizmat found these fossils!
19:46 lizmat [Coke]: going back through the Synopses, checking S24 for validity against the source of lib/Test.pm
19:46 [Coke] dedication.
19:46 Ven does @<foo> work (s05) ?
19:46 TimToady not yet, I think
19:47 jnthn I thought it got impl'd a month or so ago...
19:48 lizmat there are plenty of spectests with @< in them
19:48 TimToady m: $_ = "a:b:c"; /$<foo>=\w % ':'/; say @<foo>
19:48 camelia rakudo-moar 42dfe3: OUTPUT«[31m===[0mSORRY![31m===[0m�Unrecognized regex metacharacter % (must be quoted to match literally)�at /tmp/nu2id1sa_9:1�------> [32m$_ = "a:b:c"; /$<foo>=\w [33m�[31m% ':'/; say @<foo>[0m�Unable to parse regex; couldn't find final '/'�at…»
19:48 TimToady m: $_ = "a:b:c"; /$<foo>=\w+ % ':'/; say @<foo>
19:48 camelia rakudo-moar 42dfe3: OUTPUT«␤»
19:48 Ven my rakudo is two weeks old
19:49 Ven not that one, TimToady
19:49 Ven m: my $_ = 'a:b:c'; / @<foo>=[ \w ':' ] /; say $/; my $_ = 'a:b:c'; / $<foo>=[ \w ':' ] /; say $/
19:49 camelia rakudo-moar 42dfe3: OUTPUT«Potential difficulties:â�¤    Redeclaration of symbol $_â�¤    at /tmp/erNpyt6bMs:1â�¤    ------> [32mmy $_ [33mâ��[31m= 'a:b:c'; / @<foo>=[ \w ':' ] /; say $/[0mâ�¤    Redeclaration of symbol $_â�¤    at /tmp/erNpyt6bMs:1â�¤    ------> [32m'; / @<foo…»
19:50 FROGGS @<foo> compiles to $<foo>.list
19:50 FROGGS (right now)
19:50 Ven FROGGS: not that @<foo>
19:50 Ven I mean @<foo> inside of a regexp
19:51 FROGGS ahh
19:51 FROGGS k
19:52 Ven well, I'll manually merge sjn++'s PR now, and fix the remaining stuff
19:52 lizmat m: use Test; dies_ok {...}, "foo"   # why does this go outside of the "dies_ok" ?
19:52 camelia rakudo-moar 42dfe3: OUTPUT«Unhandled exception: Stub code executed␤   at <unknown>:1  (/home/p6eval/rakudo-inst-1/languages/perl6/r​untime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:12986  (/home/p6eval/rakudo-inst-1/languag​es/perl6/runtime/CORE.setting.mo…»
19:52 Ven I probably don't have a markdown converter tho
19:52 lizmat m: use Test; dies_ok {die}, "foo"   # and this doesn't?
19:52 camelia rakudo-moar 42dfe3: OUTPUT«ok 1 - foo␤»
19:52 lizmat not really important, just wondering
19:53 sjn Ven: apologies for not doing it, I've been rather distracted :-\
19:54 Ven sjn: well, it'd have been fine doing the little nitpicks, I mostly wanted a rebase so that I could merge
19:54 Ven now I'll do it by hand, cause my little phone internet won't handle the pulling etc :p
20:00 Ven (where "by hand" means "using vim")
20:04 sjn vim ftw :)
20:05 klaas-janstol joined #perl6
20:11 timotimo for the vim!
20:24 ventica_desktop joined #perl6
20:25 donaldh joined #perl6
20:25 iarna joined #perl6
20:35 dalek rakudo/nom: 88326ed | (Elizabeth Mattijsen)++ | lib/Test.pm:
20:35 dalek rakudo/nom: Make (dies|lives)_ok also take nonCallable to EVAL
20:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/88326ed52c
20:39 lizmat moritz: in Test.pm, shouldn't "die_on_fail" also be "is export" ?
20:39 lizmat or is "die_on_fail" a fossil (does not seem to be used in roast)
20:40 lizmat moritz: asking you has git blame has your name on it  :-)
20:40 lizmat *as
20:41 grondilu joined #perl6
20:41 * grondilu tried to translate http://rosettacode.org/wiki/The_ISAAC_Cipher from C to Perl 6 but failed
20:42 * grondilu is to lazy to insist but in case someone wants to go on:  https://gist.github.com/gro​ndilu/0f5ab49ae102f73c01b4
20:42 grondilu s/to/too/
20:51 klaas-janstol joined #perl6
20:51 hoelzro lizmat: I noticed the same
20:52 hoelzro I was going to fix it as a part of my test-betterer branch
20:52 lizmat how?  by adding the "is export", or by removing it ?
20:54 hoelzro adding is export
20:57 lizmat Actually, I'm wondering whether that shouldn't be read from an %*ENV variable
20:59 anaeem1 joined #perl6
21:00 hoelzro lizmat: as long as you're thinking about Test.pm, I've been thinking about how best to emulate P5's $Test::Builder::Level in P6
21:00 hoelzro I'm trying to think of a "Perl 6y" way to do it
21:00 hoelzro any insights (from lizmat or others) would be appreciated!
21:01 lizmat that's about where to report errors in your own test routines, right ?
21:02 lizmat couldn't that be handled by "is hidden_from_backtrace" ?
21:04 hoelzro I tried that, didn't work =/
21:05 hoelzro I don't think callframe respects that
21:05 lizmat hmmm....
21:06 dalek tablets: 779af62 | (Herbert Breunung)++ | docs/ (3 files):
21:06 dalek tablets: update op tables
21:06 dalek tablets: review: https://github.com/perl6/tablets/commit/779af625da
21:13 mls joined #perl6
21:13 ChoHag joined #perl6
21:13 mathw joined #perl6
21:13 flussence joined #perl6
21:13 firnsy joined #perl6
21:13 firnsy joined #perl6
21:13 FROGGS joined #perl6
21:15 dmol joined #perl6
21:15 ggherdov joined #perl6
21:29 dalek nqp: a5f15a2 | (Timo Paulssen)++ | src/NQP/Optimizer.nqp:
21:29 dalek nqp: can also integerize mod_n, neg_n and abs_n.
21:29 dalek nqp: review: https://github.com/perl6/nqp/commit/a5f15a2911
21:36 spider-mario joined #perl6
21:37 rurban1 joined #perl6
21:39 BenGoldberg joined #perl6
21:41 dalek tablets: e93f403 | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
21:41 dalek tablets: repairing smartmatch table
21:41 dalek tablets: review: https://github.com/perl6/tablets/commit/e93f403cb4
21:42 dalek tablets: af68469 | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
21:42 dalek tablets: repair Associativity table
21:42 dalek tablets: review: https://github.com/perl6/tablets/commit/af68469377
21:51 * donaldh finally got around to looking for performance bottlenecks on JVM backend.
21:51 yoleaux 17 Jul 2014 19:35Z <[Coke]> donaldh: - can you add some notes to the README for perl6-eclipse-plugin about how to install it in eclipse?
21:51 donaldh oh, has it been that long.
21:52 timotimo hey donaldh
21:52 timotimo nice to see you again :)
21:52 donaldh Found a worthwhile performance improvement in serialization: https://gist.github.com/do​naldh/1c7b535762d6dc3f8997
21:52 timotimo holy hell!
21:52 timotimo that is a *nice* win
21:52 donaldh Stage jast       :  56.511  becomes 15.708
21:52 ventica_desktop joined #perl6
21:53 jnthn omg
21:53 jnthn donaldh++!
21:53 donaldh Turns out that indexOf is the culprit for getting sc ids.
21:54 donaldh I'm storing indexes in a hash just now, but maybe it would be better to just push the indexes into SixModelObject, a bit like Moar does.
21:54 jnthn *nod*
21:54 jnthn A hash is a nice solution for now though
21:55 timotimo donaldh: did you follow the changes jnthn has been doing to MoarVM and the jit project brrt did for GSoC?
21:55 donaldh Well I'll clean it up a bit and commit it. Probs tomorrow now.
21:55 timotimo did you use a specific tool to figure this out?
21:55 donaldh timotimo: I've been reading your status reports, yes. But I don't know any of the details.
21:56 timotimo details: MoarVM starts up quite a bit faster and uses quite a bit less RAM for simpler programs in perl6
21:56 donaldh Well I've been getting frustrated with jvisualvm profiling actually crashing the JVM.
21:56 timotimo i remember having that problem myself
21:56 donaldh So I've resorted to using -Xprof
21:57 Vlavv joined #perl6
21:57 donaldh If you wonder what the impact of turning off JIT is: https://gist.github.com/do​naldh/a9af6bb2422027982042
21:58 donaldh 4911.95 secs to compile the CORE.setting
21:58 jnthn o.O
21:58 diakopter hee
21:58 timotimo oooooooh
21:58 timotimo wow.
21:58 donaldh Well, that's -Xint which might do more than just turn off JIT.
21:59 rurban1 joined #perl6
22:00 BenGoldberg After you've applied your optimization, what does that profile with -Xprof look like?
22:01 donaldh which, the -Xint one?
22:01 BenGoldberg Yeah
22:02 donaldh I haven't run it yet. I t  t a k e s  a  w h i l e
22:02 BenGoldberg Presumably something other than ArrayList.indexof tops the list.
22:02 BenGoldberg Hmm... can you run with -Xprof without -Xint?
22:03 lizmat good night, #perl6!
22:03 BenGoldberg G'night lizmat :)
22:03 timotimo gnite lizmat!
22:03 jnthn o/ lizmat
22:04 donaldh Yeah, but you get split numbers some before JIT kicks in, some after.
22:04 * donaldh is running it ATM
22:05 BenGoldberg Considering the gargantuan speed difference between jit vs interpreted, there ought to be some way to first warm up the JVM (including getting JIT done), then start profiling.
22:05 donaldh Oh, -noverify gives a 2s improvement in startup  on my machine.
22:06 donaldh possibly -Xbatch which does all the JIT. That comes at a huge cost too :-(
22:07 * BenGoldberg wonders whether -Xbatch or -Xint is costlier.
22:07 donaldh I think what I have identified is that a gazillion calls to indexOf is slow when JITed and mindbogglingly slow when interpreted.
22:08 BenGoldberg :)
22:10 * donaldh should have an -Xint -Xprof list in 20min or so.
22:12 donaldh timotimo: I'm guessing some of the MoarVM performance gains are present on other backends too - parse and optimise stages are certainly faster on JVM.
22:13 timotimo yes. but there are even bigger wins to be had once the jvm is taught how these new optimizations work
22:15 donaldh Well jvm still has the priorInvocation thing in StaticCodeInfo which I think causes it to retain a lot more in heap than necessary.
22:16 donaldh I never got my head around how to do it the MoarVM way.
22:16 timotimo neither have i
22:17 donaldh that one requires jnthn fu
22:17 timotimo :)
22:19 timotimo it's a tiny bit disappointing that turning on moarvm's jit for compiling rakudo is a tiny bit slower than without
22:21 timotimo but that *does* mean we're getting the time spent jitting code back by having slightly faster code execute often enough ... OSLT
22:22 jnthn The other thing is that if you profile the CORE.setting compile, only around 30% or so of the time is actually spent in the interpreter itself doing small ops.
22:22 TimToady well, a compiler runs lots of different bits of code a few times, so it's not where you'd see a lot of gain from a JIT anyway
22:22 timotimo that's right
22:22 jnthn Plus what TimToady said
22:22 jnthn If you run the JIT on loopy things it can handle, it's quite a win.
22:23 TimToady for a compiler, you'd wanna snapshot the JIT at some point to make it a precompile
22:23 timotimo jnthn: yeah, and then the frustrating thing is that we don't get to see the wins in perl6-bench yet :)
22:23 TimToady or feed the jit-me signal back to the original somehow
22:23 jnthn timotimo: The one I posted the other day that was a big win was directly out of perl6-bench :)
22:24 timotimo oh?
22:24 timotimo does that mean i should run perl6-bench against moar-jit now?
22:24 jnthn Well, you might want to wait while I work on bigint ops a bit
22:24 timotimo oh! :)
22:24 jnthn add_I being jittable will probably helps some other benchmarks :)
22:24 BenGoldberg It's too bad you can't cache the jit-ed code between runs.
22:24 timotimo do we actually need to change that much?
22:24 jnthn timotimo: No
22:25 jnthn And it's not that hard
22:25 timotimo ah, so the same kind of deal i've been doing all along :)
22:25 jnthn A little code-reorg is all
22:25 jnthn We can actually use type info to do better at these in the future too
22:25 TimToady could think about how to integrate that with an incremental compiler in the future
22:26 TimToady oh, this routine is the same, *WHAM*
22:26 timotimo do you think we can in-line the "smallbigint" computation in the jit and drop back into the "full" function if we're above 16 bit integers?
22:26 jnthn timotimo: Eventually yes
22:26 jnthn Well, probably
22:26 jnthn It needs an allocation though
22:26 jnthn So I dunno
22:26 jnthn The extra code size we'd produce in doing it may not be a win over the function call
22:27 timotimo OK
22:27 TimToady JIT might prefer pushing smallbigints all the way back into the original pointer
22:27 TimToady like most LISPs do
22:27 TimToady then you get smallbigints that are nearly your pointer size
22:28 timotimo well, if the code knows the number is actually inside the pointer and it can properly emit overflow checks, that would sound like a good improvement
22:28 jnthn We already do union the smallint with the mp_int pointer, iirc
22:28 jnthn Inside the Int body
22:28 timotimo that's true, but we still need a bit of "flag" data to signal it's not a regular big int
22:29 timotimo we can't have full 64bit for the smallbigint for that reason iirc
22:29 jnthn We already have that; that's how it knows today that it's a smallbigint :)
22:29 jnthn Yes, that's true, but 32 bits should be enough for anyone :P
22:29 timotimo except 64bit would be much better! :)
22:30 jnthn Could have 63 and use the LSB, then bit-shift by 1... :)
22:30 TimToady that gets you a sign for free
22:31 TimToady though you'd like a spare bit up top for fast addition overflow check
22:31 japhb timotimo: Are you planning a p6weekly this week?
22:31 jnthn Oh, yeah...the overflow check...
22:31 Psyche^_ joined #perl6
22:31 TimToady multiplication overflow is harder
22:31 timotimo i meant to, then i got distracted and then i got more distracted
22:32 japhb sub distract() { think; wander; sit; distract; }
22:32 timotimo japhb: do you have suggestions? because all i can think of this week is some more spec work lizmat did, the improvements jnthn did to memory usage and sergot's newest blog post
22:32 japhb I think I did some perl6-bench commits since your last one, but I haven't checked.
22:32 TimToady but for something like static multi-dim array calculations, you can pretty much guarantee that your indices are not going to approach 2^60 any time soon
22:33 japhb There's been all of hoelzro's work, but as it's not merged to nom yet, I don't know if you would include that or not.
22:33 timotimo i think i should!
22:33 TimToady .oO("I wonder as I wander"?)
22:33 japhb But I must admit to mostly being a consumer rather than producer as far as p6weekly content is concerned ...
22:33 hoelzro the matrix is almost complete =D
22:33 timotimo :)
22:33 jnthn timotimo: And async process stuff, and JIT improvements, and JIT merge... :)
22:33 hoelzro https://github.com/perl6/roast/blob/​S26-WHY/S26-TODO.md#make-sure-all-de​claration-types-are-covered-by-tests
22:33 japhb Oh right, the JIT merge happened this week!
22:34 hoelzro wow, only subsets and constants left
22:34 hoelzro maybe I'll try to squeeze in variables
22:34 jnthn timotimo: I think there were some other compile time opts too...
22:34 japhb Also, (async process stuff)++
22:34 timotimo oh, i had "jit" mentioned in that sentence and then restructured it and it got missed :\
22:34 hoelzro gah, multi methods too =/
22:34 TimToady timotimo: I made large pushes like 4 times faster
22:35 japhb timotimo: git log --reverse --since=<previous-p6weekly-date>
22:35 japhb :-)
22:35 timotimo oh! yes, you did
22:35 TimToady give or take a few orders of magnitude; let's just say it scales much better now when you @a.push(@a)
22:36 TimToady one almost wants to implement 0 xx $large with that now
22:36 japhb TimToady: Is there a perl6-bench test for that now?
22:36 TimToady notyet
22:36 TimToady been fighting the hardware wars at home
22:36 TimToady not to mention the wetware wars...
22:36 japhb .oO( Sega v. Nintendo? )
22:37 TimToady actually, setting up dialysis infrastructure for my brother-in-law so he doesn't have to carry big buckets of fluid around every day
22:38 TimToady it's now a series of tubes :)
22:38 japhb Your brother-in-law is the Internet now?
22:38 TimToady and we no longer have extension cords running down the hallway because I grounded the outlet in his bedroom now
22:39 japhb Good on ya for all of that, especially while recovering from your own med stuff.
22:39 TimToady well, it wasn't too hard on my eye, but I'm still pretty sore from all the crawling under the house...
22:40 * japhb is reminded of an old interview with Michael J. Fox, in which he was asked if he helped out with the kids, and said that in no uncertain terms he was not suddenly absolved from making PB&J sandwiches.
22:40 donaldh Latest -Xprof info for JVM https://gist.github.com/do​naldh/1f4449171070ce390e20
22:41 timotimo wow, isinstance, eh?
22:42 TimToady is that like :D or somethin'?
22:42 japhb TimToady: From name I'd guess that it's $object ~~ Type
22:42 timotimo oh
22:43 timotimo that's right, japhb
22:43 japhb So either we do that A LOT, or the implementation in the JVM is slow.
22:43 japhb Or both.
22:43 timotimo i think we really do that a lot
22:44 TimToady hoist spesh up to nqp now?
22:44 timotimo we may be doing that a whole lot in the ops
22:44 TimToady or copy spesh over into JVM support?
22:45 TimToady well, I guess the guards would still have to check the type...
22:45 japhb TimToady: It does seem like the parts dependent on staticly determined info ought to be caught in the NQP/Rakudo optimizers, not as late as spesh, but waddooIknow
22:45 timotimo we can only do a tiny amount of that in nqp's optimizer
22:45 TimToady I suspect we could do better with subscripting not delegating to at_pos and such
22:45 timotimo especially since we have monkey typing and subclassing
22:48 TimToady that's why S12:2172
22:48 synopsebot Link: http://perlcabal.org/syn/S12.html#line_2172
22:48 TimToady at FINAL time you can start to make assumptions
22:49 timotimo hmm
22:49 TimToady we've thank a lot about optimizability over the years
22:50 TimToady not that FINAL is implemented yet...
22:50 timotimo our optimizer can run earlier than that, right?
22:50 timotimo for example when we precompile
22:50 TimToady FINAL might be a misleading name, I suppose
22:50 timotimo actually ... also when we just "use" a class and it gets compiled for us
22:51 TimToady well, you can do a lot at CHECK time, but really, this is LINK time
22:51 TimToady so maybe we should call it LINK instead of FINAL
22:51 timotimo i wonder how we can actually do optimizations at that point; we usually only have the qasts of very small methods/subroutines at that points
22:52 jnthn TimToady: The problem is that it's application level, meaning that by then - unless you precompiled - modules have already been compiled
22:52 jnthn TimToady: Thus it really is in the realm of dynamic opt to take the FINAL and do stuff based on it
22:52 TimToady but that includes, like, throwing away guards, n'est pa?
22:53 TimToady and jitting to code that does at_pos directly rather than delegating
22:54 jnthn Are we talking REPR-level at_pos here?
22:54 jnthn That is already elligible for de-virtualization
22:54 jnthn Just not actually implemented yet
22:54 TimToady I'm talking about the at_pos called all over the place in List.pm
22:55 jnthn Potentially, at_pos can be inlined into whatever is calling it.
22:56 jnthn Trouble is that it's quite sizable
22:57 timotimo do we have too many checks?
22:59 TimToady though I think we'll get more immediate win from static analysis of lvalue vs rvalue vs unknown
22:59 anaeem1 joined #perl6
23:00 donaldh java.lang.Class.isInstance is being called by any java code that needs a dynamic cast. MethodHandle binding is the first I've found.
23:01 timotimo donaldh: did you look for any actual isInstance calls in the RakudoOps.java?
23:01 donaldh None exist.
23:01 timotimo oh
23:02 TimToady actually, I was thinking more of staticalizing a lot of the dispatch decisions in array_slice.pm
23:02 timotimo oh
23:02 timotimo i meant instanceof
23:02 timotimo do you think that compiles to the same thing?
23:06 donaldh nope, instanceof is done at compiletime.
23:07 timotimo oh?
23:07 donaldh sorry, statically. It's an op or someting.
23:07 timotimo OK
23:08 timotimo so the isInstance thing is an even more "late-bound" version of instanceof
23:08 timotimo or something like that
23:08 donaldh java.lang.Class.isInstance gets called for dynamic cast decisions, when LHS and RHS are both objects
23:09 timotimo ah, so instanceof is only for compile-time-known RHS
23:09 donaldh it gets called pretty much all the time by the invokedynamic stuff.
23:09 timotimo oh, mhm
23:11 donaldh e.g. all the MethodHandle.invoke* methods
23:11 timotimo the next java is supposed to be better at indy, right?
23:11 timotimo or was that the current one@s
23:11 timotimo ?
23:15 dalek specs: 3071eed | TimToady++ | S (3 files):
23:15 dalek specs: s/FINAL/LINK/ for clarity
23:15 dalek specs:
23:15 dalek specs: We don't want people confusing this with any other kind of finalization.
23:15 dalek specs: review: https://github.com/perl6/specs/commit/3071eedd63
23:16 * timotimo is off to bed
23:20 dalek std: de015ef | TimToady++ | viv:
23:20 dalek std: avoid a new experimental warning in P5
23:20 dalek std: review: https://github.com/perl6/std/commit/de015ef7a1
23:20 dalek std: 81e0d07 | TimToady++ | STD.pm6:
23:20 dalek std: s/FINAL/LINK/ to match spec
23:20 dalek std: review: https://github.com/perl6/std/commit/81e0d072e9
23:22 TimToady japhb: also, I didn't want to commit without testing, and it seems there are a lot of prerequisites for getting perl-bench going that I haven't got around to dealing with
23:27 jnthn ugh, such tired...
23:27 * jnthn slept badly the last 2 nights
23:27 jnthn Let's see if tonight works out better... :)
23:27 jnthn o/
23:29 japhb TimToady: Hmmm, sounds like I need to do something to make it easier to install perl6-bench then.
23:29 japhb Good luck, jnthn
23:33 TimToady japhb: oh, and niecza breaks with my current mono :/
23:34 TimToady (v3.2.8)
23:37 TimToady https://gist.github.com/ano​nymous/bd3bea04ce9ce249aa40 if anyone's interested in the failure to install niecza on mono 3.2.8
23:39 TimToady (3.2.8 being what comes from Ubuntu these days)
23:49 japhb Ubuntu 14.04?
23:53 colomon joined #perl6
23:57 dayangkun joined #perl6

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

Perl 6 | Reference Documentation | Rakudo