»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
japhb timotimo: I thought that case was already optimized when lizmat++ was reworking :exists and friends a few months ago ...? 00:00
00:02 lue joined
timotimo i *think* we still create objects with the WHENCE property when descending into the hash 00:03
whereas if we knew we wouldn't allow autovivification, we could just use throwaway Any objects or something
it's probably not worth much
and i should go to bed :)
o/ 00:04
japhb Sleep well, timotimo!
00:10 rurban1 joined 00:13 ren1us left 00:18 thou left 00:24 raiph left 00:46 BenGoldberg joined
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
so the only place such a pragma might be useful is in passing to a late-bound parameter
and I suspect we might find a way to optimize those too 00:53
such pragmas are always kinda smelly
one could turn a cascade of subscripts into a thunk, for instance, and delay evaluation till we know how it will be bound 00:55
00:56 ventica left
TimToady WHENCE is really just a workaround to get correct behavior in the absence of a brilliant compiler 00:56
which rakudo is starting to show signs of :) 00:57
japhb \o/ # Flashes of brilliance! 00:58
BenGoldberg offers the bulbs from his flashlight to make rakudo brighter ;) 01:02
TimToady
.oO(Light Emitting Developers)
01:04
japhb
.oO( Organic Light Emitting Developers )
01:05
BenGoldberg That's easy -- just wear glow in the dark clothing.
01:05 rurban1 left
japhb I emit lots of light -- it's just mostly in the infrared region of the spectrum 01:06
01:06 anaeem1 left 01:09 raiph joined
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.
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.
BenGoldberg: Of course, like a CPU, I'm more efficient when cool. :-)
BenGoldberg I said skin temp, not core body temp. Your skin temp is probably close to 70F.
japhb In fact, in body-temperature surroundings, I'm probably not coding at all.
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:15
01:15 mattp_ left 01:22 kurahaupo_ left 01:24 nbrown joined, FROGGS_ joined 01:28 mattp_ joined, FROGGS left
dalek ast/S26-WHY: 6347fe1 | (Rob Hoelz)++ | S26-documentation/why-both.t:
Start testing POD block stuff
01:29
ast/S26-WHY: ec01d1c | (Rob Hoelz)++ | S26-TODO.md:
Tabularize coverage matrix
kudo/S26-WHY: 1006e4f | (Rob Hoelz)++ | src/ (2 files):
Fix up POD blocks for why-both
hoelzro *much* prettier: github.com/perl6/roast/blob/S26-WH...d-by-tests
japhb Yeah, that's a big improvement 01:37
01:41 noganex joined 01:43 noganex_ left 01:45 coffeeyy left, coffeeyy joined 01:48 klapperl_ joined 01:51 klapperl left 01:52 thou joined 01:57 thou left 02:06 guest_____ joined, guest_____ left 02:07 nbrown left 02:16 BenGoldberg left 02:23 Ben__ joined 02:28 Colby` joined 02:30 Pleiades` left, Colby` is now known as Pleiades` 02:35 Ben__ left, BenGoldberg joined 02:38 Akagi201 joined 02:43 raiph left 02:50 thou joined 02:54 noganex_ joined 02:57 noganex left 03:13 xragnar_ joined, xragnar is now known as Guest80081, Guest80081 left, xragnar_ is now known as xragnar 03:14 hagiri joined, chenryn joined
dalek ast/S26-WHY: 56268dc | (Rob Hoelz)++ | S26-documentation/why-both.t:
Fill out why-both tests a bit
03:49
ast/S26-WHY: 36d1e91 | (Rob Hoelz)++ | S26-TODO.md:
Fill out matrix a bit
03:50 hagiri left
hoelzro are macros installed into the lex pad/symbol table for runtime introspection? 03:51
it just occurred to me that they might not be...
03:52 BenGoldberg left
hoelzro ah, it seems like it does 03:56
dalek ast/S26-WHY: db83983 | (Rob Hoelz)++ | S26- (4 files):
Test documentation on macros
04:04
ast/S26-WHY: 2bb7d87 | (Rob Hoelz)++ | S26-TODO.md:
Start coming up with a "merge back to nom" plan
04:04 kaare_ joined 04:17 [Sno] left
dalek kudo/S26-WHY: 1fb5236 | (Rob Hoelz)++ | src/Perl6/Grammar.nqp:
Fix trailing docs for macros
04:27
04:39 chenryn left 04:40 rurban1 joined 04:47 ren1us joined 04:48 rurban1 left 04:56 chenryn joined 05:02 dayangkun left 05:05 khisanth_ joined, khisanth_ is now known as Guest18234 05:07 Khisanth left 05:10 Guest18234 left, Khisanth joined 05:29 fling joined, gfldex joined 05:36 ChoHag left 05:38 [Sno] joined 05:48 kaleem joined, gfldex left 05:50 ChoHag joined 06:08 denis_boyun joined 06:14 chenryn left 06:20 PotatoGim joined 06:21 ventica_desktop joined 06:22 ren1us left 06:23 chenryn joined 06:34 anaeem1 joined, ventica joined 06:39 dayangkun joined 06:43 Mouq joined
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:57 FROGGS_ is now known as FROGGS
masak morning, #perl6 06:58
moritz \o masak, *
07:00 molaf joined 07:01 thou left
Mouq o/ masak, just now I added Perl 6 to that wiki article you mentioned a few days ago: en.wikipedia.org/w/index.php?title...=618329590 07:01
though maybe s/subroutine/function/? 07:02
07:03 SamuraiJack joined
Mouq I'll do that and add a snippit of syntax, I suppose 07:04
07:07 darutoko joined
Mouq Hmmm... Looking for a simple and accessible example from core.setting... 07:08
Mouq goes with multi infix:<+>(Int:D $x, Date:D $d) 07:11
07:11 chenryn left
masak Mouq++ 07:12
Mouq: I think "subroutine" is Perl lingo, and "function" is more broadly used.
07:15 ventica_desktop left 07:19 gamo joined 07:20 dmol joined
gamo How do I shuffle a list in perl6? 07:20
Mouq m: say (2,3,4).pick(*) 07:21
camelia rakudo-moar 969e6c: OUTPUT«2 4 3␤»
Mouq m: say (1..100).pick(*)
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, kurahaupo joined
gamo thanks 07:22
Mouq np :) 07:25
masak: How's it look now?
Mouq has to get on a plane in a few hours 07:26
Mouq thought his flight was on Friday until a few days ago, isn't quite in a "pack up and leave" mindset yet :/ 07:27
07:29 ventica_desktop joined
masak Mouq: slightly distracted, sorry. mid-commute. 07:29
Mouq masak: np, no rush :) if nothing else I'll probably see it in the backlogs 07:30
dalek ecs: 22d8cd4 | Mouq++ | S03-operators.pod:
Generalize ~~ calls to be on Setty, Baggy, & Mixy

  (To account for {Set,Bag,Mix}Hash)
07:34
07:38 Mouq left 07:40 itz_ joined 07:42 itz left 07:53 Pleiades` left 07:58 Pleiades` joined 08:26 ventica_desktop left 08:31 dakkar joined, ventica_desktop joined 08:34 SamuraiJack left
masak Mouq++ # en.wikipedia.org/wiki/Operator_ove...ding#2000s 08:38
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...ml?id=2000
masak no, synopsebot, you silly.
Mouq: looks very nice.
08:39 thou joined 08:43 thou left 08:50 fhelmberger joined 08:55 chenryn left 09:01 salv0 left 09:14 slavik left 09:17 salv0 joined
colomon lizmat++ 09:19
github and/or my e-mail just dumped days' worth of specs commits to my inbox... 09:20
09:21 gamo left 09:23 gamo joined 09:25 chenryn joined 09:26 gamo1 joined 09:28 gamo left, slavik joined 09:31 ssutch left, itz joined, ssutch joined 09:32 chenryn left 09:33 itz_ left 09:34 spider-mario joined
masak the spec emails tend to come in clumps, for some reason. 09:35
lizmat I'm pretty sure someone needs to OK them 09:36
nwc10 they've hit the list moderator
lizmat suspects TimToady
nwc10 Delivered-To: moderator for [email@hidden.address]
dalek ecs: e6fda2f | (Elizabeth Mattijsen)++ | S03-operators.pod:
Alas, mutable Set/Bag/Mix follow different rules

This reverts commit 22d8cd42ba02f242489a466d8e2377974cbb1cb5.
09:38
lizmat m: say <a b>.SetHash === <a b>.SetHash
camelia rakudo-moar 969e6c: OUTPUT«False␤»
09:38 anaeem1 left
lizmat m: say <a b>.SetHash ~~ <a b>.SetHash # something fishy here 09:39
camelia rakudo-moar 969e6c: OUTPUT«True␤»
09:39 anaeem1_ joined
masak lizmat: looks right to me. 09:39
analogous to this:
lizmat m: say <a b>.Set ~~ <a b>.Set
camelia rakudo-moar 969e6c: OUTPUT«True␤»
masak m: say <a b> === <a b>
camelia rakudo-moar 969e6c: OUTPUT«False␤»
masak m: say <a b> ~~ <a b>
camelia rakudo-moar 969e6c: OUTPUT«True␤»
lizmat well, then this line in the table is incorrect: 09:40
Set Set identical sets $_ === X
for the Setty case
masak I'm... not sure I'd want that semantics, no.
lizmat it works for Set, as it is immutable and value based 09:41
masak oh, right.
probably not the sane thing for mutable/reference types. 09:42
09:42 fhelmberger_ joined 09:44 fhelmberger left, fhelmberger_ left, fhelmberger joined, cosimo_ joined, cosimo left
tadzik computer, messages 09:54
yoleaux 12 Aug 2014 23:11Z <ren1us> tadzik: gist.github.com/ren1us/01d724255dd57bbaab31 # panda issues
tadzik this is the closest thing to a Star Trek world that I have :o 09:55
ChoHag Perl just said this: µx@®¢-£y٭B¨B(¢- 09:56
It's not supposed to do that!
masak ChoHag: luckily, this is #perl6. which does not have that particular failure mode, AFAIK. 09:57
(we aim for different mistakes) :) 09:58
ChoHag Whether you aimed for that or not, that's what just got spat out. 09:59
10:00 ggoebel1111115 left, aoseki left, erkan left, amkrankruleuen left, baest left
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:00
masak .oO( I think my code does what I think it does ) 10:01
ChoHag sic 10:04
dalek ecs: 5c86418 | (Elizabeth Mattijsen)++ | S03-operators.pod:
Hopefully correctly map Setty/Baggy/Mixy in ~~

  Mouq++ for pointing out to me I forget the xHash cases.
10:05
jnthn
.oO( Grammar errors make me [sic] )
masak ooh, it's actually Perl 6-related? I didn't get that part until now.
ChoHag Well I did. Now I made the mistake of not changing anything so it's started blowing up every time.
masak well, hope you manage to golf and submit the thread bug.
jnthn ChoHag++ passed me the code last night 10:06
So I'll reproduce when I get chance and try to fix it...
lunch &
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, aoseki joined, erkan joined, amkrankruleuen joined, baest joined 10:12 molaf left 10:17 thistuso- joined 10:20 thistusooa left 10:23 ggoebel1111115 left, aoseki left, erkan left, amkrankruleuen left, baest left 10:26 chenryn joined 10:27 thou joined 10:30 ggoebel1111115 joined, aoseki joined, erkan joined, amkrankruleuen joined, baest joined 10:32 thou left 10:34 dayangkun left
dalek kudo/nom: 4e28c75 | (Elizabeth Mattijsen)++ | lib/Test.pm:
Make isnt a bit more verbose on failure, like is
10:37
timotimo to err is human. to err well is butterfly. 10:42
10:45 anaeem1_ left 10:46 anaeem1_ joined, ventica_desktop left 10:47 chenryn left 10:58 FROGGS[mobile] joined 10:59 ventica_desktop joined
lizmat jnthn, moritz: puzzled by following lines in lib/Test.pm 11:05
# XXX no regexes yet in nom
my $bad_death = $ee.Str.index('Null PMC access ').defined;
feels like a fossil, is it?
FROGGS[mobile] yeah
jnthn yes, looks like :) 11:06
lizmat ok, will clean up and run spectest :)
11:08 pecastro left 11:10 chenryn joined
lizmat also, it feels like dies_ok and eval_dies_ok could be merged 11:10
just like throws_like, which can take a Str or a Callable
dalek kudo/nom: 42dfe38 | (Elizabeth Mattijsen)++ | lib/Test.pm:
Remove fossil from eval_dies_ok
11:11
11:13 ventica_desktop left
lizmat actually, same for lives_ok and eval_lives_ok 11:14
it would also seem we need to change a lot of (eval_|)dies_ok to throws_like 11:15
FROGGS[mobile] that makes sense 11:16
... and might be the cause for ten more tickets
11:21 ventica_desktop joined
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
So I run it again and it refuses to do anything other than trip over thread bugs while I watch.
11:24 fhelmberger left
ChoHag I think I need to put a sticker over the camera so the computer can't tell when I'm watching. 11:24
lizmat cycling& 11:30
sergot o/ 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?
sergot timotimo: you are right, there is a requirement
timotimo: I just did a longer break before the last post about this project. :) 11:32
made
had 11:33
...
:)
masak "did", "made" and "had" all work there.
but they mean slightly different things :)
11:35 PotatoGim left
sergot yeah, made is the best one here I think 11:35
:)
masak oh, and "took" is also possible :) 11:37
11:48 thistuso- is now known as thistusooa, thistusooa left, thistusooa joined 11:57 pecastro joined 12:15 mr-foobar left 12:16 mr-foobar joined, thou joined 12:18 ssutch left 12:20 thou left 12:21 mr-foobar left, mr-foobar joined
moritz taken 12:24
12:27 jdurand joined 12:35 guru joined, fhelmberger joined, guru is now known as Guest54088, Guest54088 is now known as ajr_
dalek ast/S26-WHY: ea34542 | (Rob Hoelz)++ | S26-TODO.md:
Move variables row down

Since I don't intend to implement it until later
12:39
ast/S26-WHY: e05a1fa | (Rob Hoelz)++ | S26- (4 files):
Test more S26 things
12:42 jnap joined 12:44 chenryn left 12:46 pmurias joined
dalek kudo-star-daily: 5d9a65d | coke++ | log/ (14 files):
today (automated commit)
12:53
12:57 kaleem left 12:59 ajr_ left 13:07 prevost joined
dalek blets: a067826 | (Herbert Breunung)++ | docs/ (3 files):
straighten out operator related terms
13:08
13:09 colomon left 13:12 ajr joined 13:13 ajr is now known as Guest7534, Guest7534 is now known as ajr_
pmichaud good morning, #perl6 13:14
nwc10 steals someone else's line 13:17
good Am, Pm 13:18
"too slow"
(that being my usual line at london.pm when running off to the bar)
13:20 kaleem joined 13:22 ajr_ left 13:24 guru joined, guru is now known as Guest96486, Guest96486 is now known as ajr_ 13:26 rurban1 joined
masak g'day, pm 13:26
13:31 FROGGS_ joined 13:32 FROGGS left 13:42 treehug88 joined
[Coke] pmichaud: hio 13:47
pmichaud: good day! 13:48
13:48 jdurand left 13:56 kaleem left 13:57 JimmyZ joined 13:58 gamo1 left 13:59 fhelmberger left 14:03 treehug88 left 14:04 thou joined
pmichaud [Coke]: o/ 14:05
A good day to you too, sir!
sjn pmichaud: happy survived-another-trip-around-the-sun day for you, sir. :) 14:11
masak oh, is it today_ 14:18
?
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 rurban1 left
masak jnthn++ # metaops for great congrats! 14:20
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␤»
masak factored out the pmichaud ;)
PerlJam masak: he's been factored out far too much lately. We need him factored in more :-) 14:22
masak oops, sorry :)
PerlJam pmichaud: Happy Birthday! :)
pmichaud: you're 31 this year, n'est pas? :) 14:24
masak m: say 0x31
camelia rakudo-moar 42dfe3: OUTPUT«49␤»
pmichaud Oui, j'ai 31 ans. 14:26
masak .oO( nice ans-wer )
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:27
moritz pmichaud.age++, pmichaud++ 14:30
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? :)
geekosaur yes, in fact I was kinda sideways referring to it 14:33
14:34 jnap left 14:36 prevost left 14:37 brrt joined 14:39 chenryn joined, rurban1 joined 14:42 ggoebel1111116 joined 14:45 ggoebel1111115 left 14:46 sivoais left 14:47 egrep is now known as en, chenryn left, sftp left 14:48 chenryn joined, sivoais joined, sftp joined, telex left 14:50 telex joined
hoelzro morning #perl6 14:51
14:52 chenryn left 15:03 brrt left, treehug88 joined
TimToady doesn't moderate mailing lists, only RosettaCode, and that sporadically 15:05
PerlJam has had to use "stty sane" twice this week (for the first time in years) 15:08
15:13 denis_boyun left 15:18 chenryn joined 15:21 treehug88 left 15:23 JimmyZ left
japhb PerlJam: That begs the question of exactly what is making your TTY insane. 15:24
15:26 jnap joined
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:27
TimToady gah, the smartmatch table has evolved into a complete mess 15:28
15:29 klaas-janstol joined, SamuraiJack joined
TimToady thinks about how to clean it up 15:29
dalek rl6-roast-data: 732d17c | coke++ | / (6 files):
today (automated commit)
15:31
TimToady you can't use === between the keys of hashes/sets like that 15:32
there's no guarantee the keys come out in the same order 15:33
15:42 daxim_ is now known as daxim 15:44 iarna joined
dalek p-js: ae705ed | (Pawel Murias)++ | / (9 files):
Basic variable support.

Start creating a revised runtime in src/vm/js/nqp-runtime. Implement the bind opo. QAST::Call with a single QAST::BVal argument. 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
15:59 chenryn left 16:07 SamuraiJack left 16:23 denis_boyun joined 16:26 brrt joined, ventica_desktop left
dalek ecs: b99ecf4 | TimToady++ | S03-operators.pod:
whack down the smartmatch table

The semantics of smartmatches should largely be inferable from the X argument, and should not imply heavy run-time processing of the X value. In general, smartmatches should not be providing implicit any/all semantics except in a few cases where no other interpretation is possible. Since we now have Sets, Hash smartmatch no longer needs to emulate sets, and can be eqv identity. Regex on LHS now considered too magical, but we provide provide Callable escape value for reverse match of Associative and Positional. (Reverse Regex match on keys can be written { .keys.any ~~ /.../ } ~~ %hash for instance.) c58b918 | TimToady++ | S03-operators.pod: put back non-slice hash item lookups
These seem obvious, and work well with junctions on the LHS.
16:30
16:30 kaleem joined 16:31 ventica_desktop joined 16:36 dmol left
TimToady there's little point in having a smartmatch table that you have to look things up in constantly 16:38
16:38 ajr_ left
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
and that will force the any/all intent to be made clear
16:51 akaseki joined, aoseki left 16:52 dmol joined, [Sno] left 16:57 treehug88 joined
dalek ecs: 629dbe9 | TimToady++ | S03-operators.pod:
hash smartmatching just shouldn't try to guess

With our lovely junctions available for clarity, we should just force the user to be clear.
17:04
TimToady now feels he has some small hope of remembering most of the smartmatch table 17:10
and this might even help spesh a bit, with fewer types flopping all over the floor of the boat 17:12
17:12 kaleem left
TimToady so basically, @list ~~ Hash or @list ~~ Regex will now tell you to clarify the LHS with any/all/cat/join 17:15
17:17 dmol left
TimToady smartmatching is really stupidmatching when both the computer and the user are guessing 17:19
17:19 dakkar left 17:36 pecastro left 17:39 rurban1 left 17:46 guru joined, guru is now known as Guest49997, Guest49997 is now known as ajr_ 17:55 ventica_desktop left 17:58 anaeem1_ left, anaeem1_ joined
masak TimToady: +1 to all of the above 18:00
18:04 dmol joined 18:05 treehug88 left 18:06 Rotwang joined 18:08 treehug88 joined 18:10 [Sno] joined 18:12 anaeem1_ left 18:14 anaeem1_ joined, dmol left 18:15 anaeem___ joined, anaeem1_ left
FROGGS_ o/ 18:17
18:17 anaeem1_ joined 18:18 SamuraiJack joined, FROGGS_ is now known as FROGGS, dmol joined 18:19 anaeem___ left, anaeem1_ left, anaeem1 joined 18:20 anaeem1 left, anaeem1_ joined 18:22 denis_boyun left 18:24 anaeem1_ left 18:29 ren1us joined 18:32 anaeem1_ joined 18:33 [particle]1 joined, [Sno]_ joined 18:34 isacloud____ joined 18:35 dmol left, Psyche^ joined 18:36 SamuraiJack left, anaeem1_ left, coffeeyy_ joined 18:38 spider-mario_ joined 18:39 spider-mario left, spider-mario_ is now known as spider-mario 18:41 isacloud___ left, synopsebot left, [Sno] left, coffeeyy left, Psyche^_ left, [particle] left, yakudzo left, [Sno]_ is now known as [Sno], pecastro joined 18:42 synopsebot joined, isacloud____ is now known as isacloud___ 18:46 kshannon joined 18:47 yakudzo joined 18:49 gfldex joined 18:50 Rotwang left
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 ( no output )
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
camelia nqp-moarvm: OUTPUT«awesome␤»
FROGGS rakudo tries to call a:sym<<foo>> 18:53
ChoHag God damn it. Switched to freebsd and now my terminal doesn't understand unicode, so this channel always looks funky. 18:54
FROGGS :«(
eww, that was not intended to look that germish >.< 18:55
18:55 molaf joined 19:02 darutoko left 19:03 anaeem1_ joined, brrt left, anaeem1_ left 19:04 anaeem1 joined
moritz 19:05
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␤»
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:08 anaeem1 left
PerlJam lizmat: oh, good question. I tend towards "yes" 19:09
(but who would be relying on it now?)
lizmat someone with a wrong understanding of smartmatch ?
19:11 klaas-janstol left
cognome I am not smart enough to use that. 19:15
PerlJam cognome: sounds like you're smart enough to use it appropriately then! :) 19:16
(i.e. not at all)
cognome does that constitute a right understanding? 19:17
PerlJam possibly.
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:25
*with 19:26
huf the golden age? :) 19:27
19:28 molaf left, jnap left
TimToady well, I wouldn't trade vim for the old vi... 19:32
for one thing, vim understands Unicode :D 19:34
lizmat and unlimited undo across sessions :-) 19:35
dalek kudo/nom: daf80f8 | (Elizabeth Mattijsen)++ | lib/Test.pm:
Kill another fossil: no such thing as a bad death
19:36
TimToady hates it when he undoes too far and ends up in some other random file
lizmat was taught that anything with "too" in it, is generally no good 19:37
TimToady too true
lizmat is just glad it's not TimToody :-) 19:38
carlin "There's little wrong with the BSDs" ~ Larry Wall, 2014 19:39
:p
BinGOs TomTiady 19:41
19:42 Ven joined
Ven moritz: yeah, I know the learnxiny has some quirks atm 19:43
I'm on holidays atm, no wifi, but I'm going to download it now to change some stuff
lizmat Ven++ 19:44
Ven err, 3 days without checking them full-time, and already 121 github notifs. 19:45
[Coke] wonders how lizmat found these fossils!
lizmat [Coke]: going back through the Synopses, checking S24 for validity against the source of lib/Test.pm 19:46
[Coke] dedication.
Ven does @<foo> work (s05) ?
TimToady not yet, I think
jnthn I thought it got impl'd a month or so ago... 19:47
lizmat there are plenty of spectests with @< in them 19:48
TimToady m: $_ = "a:b:c"; /$<foo>=\w % ':'/; say @<foo>
camelia rakudo-moar 42dfe3: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter % (must be quoted to match literally)␤at /tmp/nu2id1sa_9:1␤------> $_ = "a:b:c"; /$<foo>=\w ⏏% ':'/; say @<foo>␤Unable to parse regex; couldn't find final '/'␤at…»
TimToady m: $_ = "a:b:c"; /$<foo>=\w+ % ':'/; say @<foo>
camelia rakudo-moar 42dfe3: OUTPUT«␤»
Ven my rakudo is two weeks old
not that one, TimToady 19:49
m: my $_ = 'a:b:c'; / @<foo>=[ \w ':' ] /; say $/; my $_ = 'a:b:c'; / $<foo>=[ \w ':' ] /; say $/
camelia rakudo-moar 42dfe3: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $_␤ at /tmp/erNpyt6bMs:1␤ ------> my $_ ⏏= 'a:b:c'; / @<foo>=[ \w ':' ] /; say $/␤ Redeclaration of symbol $_␤ at /tmp/erNpyt6bMs:1␤ ------> '; / @<foo…»
FROGGS @<foo> compiles to $<foo>.list 19:50
(right now)
Ven FROGGS: not that @<foo>
I mean @<foo> inside of a regexp
FROGGS ahh 19:51
k
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" ?
camelia rakudo-moar 42dfe3: OUTPUT«Unhandled exception: Stub code executed␤ at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:12986 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.mo…»
Ven I probably don't have a markdown converter tho
lizmat m: use Test; dies_ok {die}, "foo" # and this doesn't?
camelia rakudo-moar 42dfe3: OUTPUT«ok 1 - foo␤»
lizmat not really important, just wondering
sjn Ven: apologies for not doing it, I've been rather distracted :-\ 19:53
Ven sjn: well, it'd have been fine doing the little nitpicks, I mostly wanted a rebase so that I could merge 19:54
now I'll do it by hand, cause my little phone internet won't handle the pulling etc :p
(where "by hand" means "using vim") 20:00
20:02 iarna left
sjn vim ftw :) 20:04
20:05 klaas-janstol joined
timotimo for the vim! 20:11
20:20 Ven left 20:25 ventica_desktop joined, donaldh joined, iarna joined
dalek kudo/nom: 88326ed | (Elizabeth Mattijsen)++ | lib/Test.pm:
Make (dies|lives)_ok also take nonCallable to EVAL
20:35
lizmat moritz: in Test.pm, shouldn't "die_on_fail" also be "is export" ? 20:39
or is "die_on_fail" a fossil (does not seem to be used in roast)
moritz: asking you has git blame has your name on it :-) 20:40
*as
20:41 grondilu joined
grondilu tried to translate rosettacode.org/wiki/The_ISAAC_Cipher from C to Perl 6 but failed 20:41
grondilu is to lazy to insist but in case someone wants to go on: gist.github.com/grondilu/0f5ab49ae102f73c01b4 20:42
s/to/too/
20:46 klaas-janstol left 20:51 klaas-janstol joined
hoelzro lizmat: I noticed the same 20:51
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 ?
hoelzro adding is export 20:54
20:56 kaare_ left
lizmat Actually, I'm wondering whether that shouldn't be read from an %*ENV variable 20:57
20:59 anaeem1 joined
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
I'm trying to think of a "Perl 6y" way to do it
any insights (from lizmat or others) would be appreciated!
lizmat that's about where to report errors in your own test routines, right ? 21:01
couldn't that be handled by "is hidden_from_backtrace" ? 21:02
21:03 anaeem1 left
hoelzro I tried that, didn't work =/ 21:04
I don't think callframe respects that 21:05
lizmat hmmm....
dalek blets: 779af62 | (Herbert Breunung)++ | docs/ (3 files):
update op tables
21:06
21:12 mathw left, ChoHag left, ggherdov left, flussence left, mls left, mls joined, ChoHag joined 21:13 mathw joined, flussence joined, firnsy left, firnsy joined, firnsy left, firnsy joined, FROGGS left 21:14 FROGGS joined 21:15 dmol joined, ggherdov joined 21:24 spider-mario left
dalek p: a5f15a2 | (Timo Paulssen)++ | src/NQP/Optimizer.nqp:
can also integerize mod_n, neg_n and abs_n.
21:29
21:36 ventica_desktop left, spider-mario joined 21:37 rurban1 joined 21:39 BenGoldberg joined
dalek blets: e93f403 | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
repairing smartmatch table
21:41
blets: af68469 | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
repair Associativity table
21:42
21:43 rurban1 left 21:45 Vlavv left, gfldex left 21:50 klaas-janstol left
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?
donaldh oh, has it been that long.
timotimo hey donaldh 21:52
nice to see you again :)
donaldh Found a worthwhile performance improvement in serialization: gist.github.com/donaldh/1c7b535762d6dc3f8997
timotimo holy hell!
that is a *nice* win
donaldh Stage jast : 56.511 becomes 15.708
21:52 ventica_desktop joined
jnthn omg 21:53
donaldh++!
donaldh Turns out that indexOf is the culprit for getting sc ids.
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*
A hash is a nice solution for now though
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.
timotimo did you use a specific tool to figure this out?
donaldh timotimo: I've been reading your status reports, yes. But I don't know any of the details.
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.
timotimo i remember having that problem myself
donaldh So I've resorted to using -Xprof
21:57 Vlavv joined
donaldh If you wonder what the impact of turning off JIT is: gist.github.com/donaldh/a9af6bb2422027982042 21:57
4911.95 secs to compile the CORE.setting 21:58
jnthn o.O
diakopter hee
timotimo oooooooh
wow.
donaldh Well, that's -Xint which might do more than just turn off JIT.
21:59 rurban1 joined
BenGoldberg After you've applied your optimization, what does that profile with -Xprof look like? 22:00
donaldh which, the -Xint one? 22:01
BenGoldberg Yeah
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.
Hmm... can you run with -Xprof without -Xint?
lizmat good night, #perl6! 22:03
BenGoldberg G'night lizmat :)
timotimo gnite lizmat!
jnthn o/ lizmat
donaldh Yeah, but you get split numbers some before JIT kicks in, some after. 22:04
donaldh is running it ATM
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.
possibly -Xbatch which does all the JIT. That comes at a huge cost too :-( 22:06
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.
BenGoldberg :) 22:08
donaldh should have an -Xint -Xprof list in 20min or so. 22:10
22:11 ajr_ left
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:12
timotimo yes. but there are even bigger wins to be had once the jvm is taught how these new optimizations work 22:13
22:13 treehug88 left
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:15
I never got my head around how to do it the MoarVM way. 22:16
timotimo neither have i
donaldh that one requires jnthn fu 22:17
timotimo :)
it's a tiny bit disappointing that turning on moarvm's jit for compiling rakudo is a tiny bit slower than without 22:19
but that *does* mean we're getting the time spent jitting code back by having slightly faster code execute often enough ... OSLT 22:21
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
timotimo that's right
jnthn Plus what TimToady said
If you run the JIT on loopy things it can handle, it's quite a win.
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 :)
TimToady or feed the jit-me signal back to the original somehow
jnthn timotimo: The one I posted the other day that was a big win was directly out of perl6-bench :)
timotimo oh? 22:24
does that mean i should run perl6-bench against moar-jit now?
jnthn Well, you might want to wait while I work on bigint ops a bit
timotimo oh! :)
jnthn add_I being jittable will probably helps some other benchmarks :)
BenGoldberg It's too bad you can't cache the jit-ed code between runs.
timotimo do we actually need to change that much?
jnthn timotimo: No
And it's not that hard 22:25
timotimo ah, so the same kind of deal i've been doing all along :)
jnthn A little code-reorg is all
We can actually use type info to do better at these in the future too
TimToady could think about how to integrate that with an incremental compiler in the future
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?
jnthn timotimo: Eventually yes
Well, probably
It needs an allocation though
So I dunno
The extra code size we'd produce in doing it may not be a win over the function call
timotimo OK 22:27
TimToady JIT might prefer pushing smallbigints all the way back into the original pointer
like most LISPs do
then you get smallbigints that are nearly your pointer size
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
Inside the Int body
timotimo that's true, but we still need a bit of "flag" data to signal it's not a regular big int
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 :)
Yes, that's true, but 32 bits should be enough for anyone :P
timotimo except 64bit would be much better! :)
jnthn Could have 63 and use the LSB, then bit-shift by 1... :) 22:30
TimToady that gets you a sign for free
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?
jnthn Oh, yeah...the overflow check...
22:31 Psyche^_ joined
TimToady multiplication overflow is harder 22:31
timotimo i meant to, then i got distracted and then i got more distracted
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
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
japhb I think I did some perl6-bench commits since your last one, but I haven't checked.
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!
TimToady
.oO("I wonder as I wander"?)
japhb But I must admit to mostly being a consumer rather than producer as far as p6weekly content is concerned ...
hoelzro the matrix is almost complete =D
timotimo :)
jnthn timotimo: And async process stuff, and JIT improvements, and JIT merge... :)
hoelzro github.com/perl6/roast/blob/S26-WH...d-by-tests
japhb Oh right, the JIT merge happened this week!
hoelzro wow, only subsets and constants left 22:34
maybe I'll try to squeeze in variables
jnthn timotimo: I think there were some other compile time opts too...
japhb Also, (async process stuff)++
timotimo oh, i had "jit" mentioned in that sentence and then restructured it and it got missed :\
hoelzro gah, multi methods too =/
TimToady timotimo: I made large pushes like 4 times faster
japhb timotimo: git log --reverse --since=<previous-p6weekly-date> 22:35
:-)
22:35 Psyche^ left
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)
one almost wants to implement 0 xx $large with that now 22:36
japhb TimToady: Is there a perl6-bench test for that now?
TimToady notyet
been fighting the hardware wars at home
not to mention the wetware wars...
japhb
.oO( Sega v. Nintendo? )
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:37
it's now a series of tubes :) 22:38
japhb Your brother-in-law is the Internet now?
TimToady and we no longer have extension cords running down the hallway because I grounded the outlet in his bedroom now
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...
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 gist.github.com/donaldh/1f4449171070ce390e20
22:40 pmurias left
timotimo wow, isinstance, eh? 22:41
TimToady is that like :D or somethin'? 22:42
japhb TimToady: From name I'd guess that it's $object ~~ Type
timotimo oh
that's right, japhb 22:43
japhb So either we do that A LOT, or the implementation in the JVM is slow.
Or both.
timotimo i think we really do that a lot
TimToady hoist spesh up to nqp now? 22:44
timotimo we may be doing that a whole lot in the ops
TimToady or copy spesh over into JVM support?
22:45 rurban1 left
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
timotimo we can only do a tiny amount of that in nqp's optimizer
TimToady I suspect we could do better with subscripting not delegating to at_pos and such
timotimo especially since we have monkey typing and subclassing
22:47 spider-mario left
TimToady that's why S12:2172 22:48
synopsebot Link: perlcabal.org/syn/S12.html#line_2172
TimToady at FINAL time you can start to make assumptions
timotimo hmm 22:49
TimToady we've thank a lot about optimizability over the years
not that FINAL is implemented yet... 22:50
22:50 dmol left
timotimo our optimizer can run earlier than that, right? 22:50
for example when we precompile
TimToady FINAL might be a misleading name, I suppose
timotimo actually ... also when we just "use" a class and it gets compiled for us
TimToady well, you can do a lot at CHECK time, but really, this is LINK time 22:51
so maybe we should call it LINK instead of FINAL
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
jnthn TimToady: The problem is that it's application level, meaning that by then - unless you precompiled - modules have already been compiled 22:52
TimToady: Thus it really is in the realm of dynamic opt to take the FINAL and do stuff based on it
TimToady but that includes, like, throwing away guards, n'est pa?
and jitting to code that does at_pos directly rather than delegating 22:53
jnthn Are we talking REPR-level at_pos here? 22:54
That is already elligible for de-virtualization
Just not actually implemented yet
TimToady I'm talking about the at_pos called all over the place in List.pm
jnthn Potentially, at_pos can be inlined into whatever is calling it. 22:55
Trouble is that it's quite sizable 22:56
timotimo do we have too many checks? 22:57
TimToady though I think we'll get more immediate win from static analysis of lvalue vs rvalue vs unknown 22:59
22:59 anaeem1 joined
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:00
timotimo donaldh: did you look for any actual isInstance calls in the RakudoOps.java? 23:01
donaldh None exist.
timotimo oh
TimToady actually, I was thinking more of staticalizing a lot of the dispatch decisions in array_slice.pm 23:02
timotimo oh
i meant instanceof
do you think that compiles to the same thing?
23:04 anaeem1 left
donaldh nope, instanceof is done at compiletime. 23:06
timotimo oh? 23:07
donaldh sorry, statically. It's an op or someting.
timotimo OK
so the isInstance thing is an even more "late-bound" version of instanceof 23:08
or something like that
donaldh java.lang.Class.isInstance gets called for dynamic cast decisions, when LHS and RHS are both objects
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.
timotimo oh, mhm
donaldh e.g. all the MethodHandle.invoke* methods 23:11
timotimo the next java is supposed to be better at indy, right?
or was that the current one@s
?
23:12 grondilu left
dalek ecs: 3071eed | TimToady++ | S (3 files):
s/FINAL/LINK/ for clarity

We don't want people confusing this with any other kind of finalization.
23:15
timotimo is off to bed 23:16
dalek d: de015ef | TimToady++ | viv:
avoid a new experimental warning in P5
23:20
d: 81e0d07 | TimToady++ | STD.pm6:
s/FINAL/LINK/ to match spec
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:22
jnthn ugh, such tired... 23:27
jnthn slept badly the last 2 nights
Let's see if tonight works out better... :)
o/
japhb TimToady: Hmmm, sounds like I need to do something to make it easier to install perl6-bench then. 23:29
Good luck, jnthn
TimToady japhb: oh, and niecza breaks with my current mono :/ 23:33
(v3.2.8) 23:34
23:35 donaldh left
TimToady gist.github.com/anonymous/bd3bea04ce9ce249aa40 if anyone's interested in the failure to install niecza on mono 3.2.8 23:37
(3.2.8 being what comes from Ubuntu these days) 23:39
japhb Ubuntu 14.04? 23:49
23:53 colomon joined 23:57 dayangkun joined