Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-04-11

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 rurban1 joined #perl6
00:01 segomos ow
00:20 woolfy left #perl6
00:27 mtj_ joined #perl6
00:31 xenoterracide joined #perl6
00:39 doesthiswork joined #perl6
00:40 doesthiswork left #perl6
00:57 araujo joined #perl6
01:25 klapperl joined #perl6
02:03 lustlife joined #perl6
02:03 TimToady http://rosettacode.org/wiki/Forest_fire#Perl_6  <-- a much faster forest fire
02:04 masak morning, #perl6
02:08 lue .oO( http://rosettacode.org/wiki/Smokey_bear#Perl_6 )
02:10 TimToady build it, and they will come
02:13 masak TimToady: how was 北京? are you back from .cn?
02:14 TimToady it was a lot of fun, and we met a lot of nice people
02:14 TimToady and yes, we're back home
02:14 BenGoldberg joined #perl6
02:14 TimToady or I wouldn't be posting to RC, since I couldn't make it work from .cn
02:15 masak huh.
02:15 Ben_Goldberg joined #perl6
02:15 * masak is still in .cn, but business has transitioned to leisure somewhere along the way :)
02:15 TimToady not RC itself, but apparently CloudFlare is a problem
02:15 masak oh, that makes more sense.
02:19 Ben_Goldberg joined #perl6
02:28 xragnar_ joined #perl6
02:30 JimmyZ visiting github is a problem too in cn :)
02:30 masak :/
02:31 TimToady I was able to get there some of the time
02:31 masak while here, one realizes that GFW is not always as simple as shutting you off. there's also (a) slow you down to a crawl, and (b) provide intermittent contact.
02:31 TimToady yes, I saw both of those behaviors
02:32 telex joined #perl6
02:32 JimmyZ yes, it most slows you by block the sub domains
02:33 masak I've always assumed that the underlying reasons were political, but lately I've been wondering if they're not largely commercial.
02:33 JimmyZ so people will think it's the website's issue
02:33 autark joined #perl6
02:33 TimToady yeah, I think that's certainly true wrt google
02:33 masak Baidu and YouKu and Weibo florish within China, and they might not have done so to the same extent had Google and YouTube and Twitter/Facebook worked.
02:34 masak s/might/would/
02:38 dalek ecosystem: 2f6df3b | segomos++ | META.list:
02:38 dalek ecosystem: Update META.list
02:38 dalek ecosystem:
02:38 dalek ecosystem: add web::scraper
02:38 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/2f6df3b4b8
02:39 dayangkun joined #perl6
02:39 JimmyZ well, it's political, baidu works well because contents can be deleted from there. but can't from google youtube github etc
02:42 masak ...for a definition of "works well" which is definitely set by the Chinese authorities :)
02:42 JimmyZ :)
02:43 masak I'll concede that it's impressive, the scale of what they're doing.
02:43 JimmyZ hehe
02:47 bonsaikitten it's quite amusing because it's all "voluntary"
02:48 bonsaikitten but, eh, you wouldn't want to lose your website operator license, eh? EH? :D
02:53 Ben_Goldberg joined #perl6
02:55 Ben_Goldberg joined #perl6
03:06 hoverboard joined #perl6
03:09 plobsing joined #perl6
03:10 anaeem1 joined #perl6
03:21 anaeem1 joined #perl6
03:27 havenwood joined #perl6
03:31 xenoterracide joined #perl6
03:33 dayangkun joined #perl6
03:48 kaare_ joined #perl6
03:54 ziyang joined #perl6
03:54 kivutar joined #perl6
04:11 BenGoldberg_ joined #perl6
04:14 logie_ joined #perl6
04:24 SamuraiJack_ joined #perl6
04:30 Psyche^_ joined #perl6
04:38 cooper joined #perl6
04:38 cooper joined #perl6
04:44 anaeem1 joined #perl6
04:57 dalek roast: c8a5683 | (Andrew Egeler)++ | S06-other/main-usage.t:
04:57 dalek roast: Fix main-usage tests
04:57 dalek roast:
04:57 dalek roast: The order of arguments to is_run look wrong here.
04:57 dalek roast: review: https://github.com/perl6/roast/commit/c8a56836ec
05:06 kaare_ joined #perl6
06:03 vendethiel left #perl6
06:03 vendethiel joined #perl6
06:07 Pleiades` joined #perl6
06:11 AW3i joined #perl6
06:13 isacloud__ joined #perl6
06:16 kaleem joined #perl6
06:48 rurban joined #perl6
06:51 havenwood joined #perl6
06:51 darutoko joined #perl6
07:00 sergot morning !
07:06 telex joined #perl6
07:06 timotimo morning
07:10 Ven_ joined #perl6
07:15 lustlife joined #perl6
07:27 ribasushi joined #perl6
07:28 zakharyas joined #perl6
07:28 denis_boyun_ joined #perl6
07:30 AW3i joined #perl6
07:30 Woodi hallo :)
07:30 timotimo guten morgen woodi
07:34 Woodi pmurias: about Graal: just got such impression: Graal is api to messing with already preprocessed code, just like reflections/MOP. other purpose but infrastructurally it's looks like MOP
07:35 sftp joined #perl6
07:37 lizmat joined #perl6
07:38 dmol joined #perl6
07:40 Woodi also I had shocking/horroring dream... err... backlog... so many native things around so I unconsciously assumed scalars are 1 to 4 bytes, generally, for not collection-like things... but now they are 8 bytes smaller! so how big they realy are ???!! ;)
07:41 timotimo might be huge
07:41 Woodi yea, strings are scalars too :)
07:41 Woodi just wonder about overhead
07:41 timotimo can't find the code for the scalar container right now
07:43 Woodi btw. this morning I was reading about  http://en.wikipedia.org/wiki/Flyweight_pattern  maybe it can help sometimes ? this trade some state for "outside" calculations
07:46 timotimo hmm.
07:46 raiph joined #perl6
07:46 timotimo if we move stuff away behind a pointer so that it can be shared, we get a little indirection every time we access that
07:47 timotimo (unless we access a bunch of them in sequence)
07:48 woolfy joined #perl6
07:50 raiph https://www.youtube.com/playlist?list=PLRuESFRW2Fa77XObvk7-BYVFwobZHdXdK # A freshly curated list of decent Perl 6 videos on YouTube
07:51 Ven_ raiph++ # was looking at some yesterday !
07:51 timotimo oh, cool!
07:52 timotimo hmm. i could use my lovely voice to make some perl6 videos, too
07:53 raiph I've omitted a lot of videos with poor audio, video, presentation style, etc. or that are basically redundant or have too many aspects that are out of date, etc.
07:54 timotimo that's excellent work!
07:54 timotimo now that you've got an overview, do you know what in particular is missing?
07:54 raiph sleep?
07:54 timotimo hahaha :)
07:55 timotimo i meant in terms of videos
07:55 * Ven_ .oO( Just understood the TimToady joke ... )
07:59 lizmat Files=801, Tests=31029, 189 wallclock secs ( 8.24 usr  3.58 sys + 1263.37 cusr 89.76 csys = 1364.95 CPU)
07:59 lizmat yeah, under 190 seconds!
08:00 sftp joined #perl6
08:01 * moritz still gets the non-zero wait status for lots of S17 tests (and one advent test) in m-spectest
08:04 lizmat moritz: is this about t/spec/S17-concurrency/lock.t ?
08:04 lizmat or about thread.t ?
08:05 raiph timotimo: I'll think about that tomorrow
08:05 timotimo thank you kindly :)
08:05 * Ven_ kinda would like more recent perl 6 videos - but then again, one only has so much time
08:06 timotimo well, videos about what exactly? :)
08:06 lizmat jnthn: seems like the thread.t failure is related to changes in ++
08:06 Ven_ timotimo: Perl 6 ;)
08:07 timotimo you know as well as i do that perl 6 is a very big topic :)
08:08 raiph Ven: have you seen http://perlcabal.org/syn/S07.html#Levels_of_laziness ?
08:08 Ven_ that was a way to say "really, anything you have to say about it" -- I'm pretty sure you could talk about how irc logs are made and still make an interesting talk :)
08:08 timotimo ah, so you haven't seen any of my talks then!
08:09 dalek roast: 84c6f41 | (Elizabeth Mattijsen)++ | S17-concurrency/thread.t:
08:09 dalek roast: Skip possibly faulty test on moar
08:09 dalek roast: review: https://github.com/perl6/roast/commit/84c6f411bf
08:09 Ven_ raiph: I have ! (I don't know how much I remember from the synopses, but I've read them all). I just know that on some parts (esp. parts like that), the spec might not match the implem.
08:09 raiph k
08:09 Ven_ timotimo: perl6casts.org o/
08:11 Ven_ Can you consider breaking that could never have worked, a breaking change ?
08:12 Ven_ For example, let's say I had "my Int $a; onlytakesbool($a);" in a sub that's never executed when perl6 didnt check that, does it count as a breaking change ?
08:13 masak p6: class Foo { has $.color }; my $foo = Foo.new :color<blue>; say $foo.color
08:13 camelia rakudo-jvm e49859: OUTPUT«(timeout)»
08:13 camelia ..rakudo-parrot e49859, rakudo-moar e49859, niecza v24-109-g48a8de3: OUTPUT«blue␤»
08:13 masak wow, I'm a little surprised that doesn't TTIAR.
08:13 timotimo p6: class Foo { has $.color }; my $foo = Foo.new() :color<blue>; say $foo.color
08:13 camelia rakudo-parrot e49859, rakudo-jvm e49859, rakudo-moar e49859, niecza v24-109-g48a8de3: OUTPUT«blue␤»
08:13 timotimo that's how adverbs do
08:14 molaf joined #perl6
08:15 masak right. so it happens to work in this particular case. it wouldn't work for positional arguments, though.
08:15 lustlife joined #perl6
08:15 masak that's why I was only "a little surprised" :) enough to make me do a double take.
08:15 timotimo yeah
08:15 timotimo what surprises me a little bit is this:
08:16 jnthn morning o/
08:16 timotimo r: class Foo { method do_it($a, $b, *%foo) { say $a; say $b; say %foo } }; Foo.new.do_it(1, 2) :hi :bye
08:16 masak jnthn! \o/
08:16 camelia rakudo-parrot e49859, rakudo-moar e49859: OUTPUT«1␤2␤("hi" => Bool::True, "bye" => Bool::True).hash␤»
08:16 camelia ..rakudo-jvm e49859: OUTPUT«1␤2␤("bye" => Bool::True, "hi" => Bool::True).hash␤»
08:17 timotimo did you know about this feature, masak?
08:17 * masak backlogs over PYTHONLOVER's "WHY CANT I SLAP PEOPLE WITH FISH!!]" outburst, and laughs
08:17 masak timotimo: guess I did.
08:17 masak timotimo: ...but I've never used it.
08:17 jnthn lizmat: The thread.t failure is a race of some kind, and it could occur occasionally before; we've got somewhat more efficient now and so the probability of the race taking place is way higher.
08:17 timotimo me neither
08:17 timotimo it has a quite big chance to WAT the reader IMO
08:17 Ven_ Why is the order nonderministic ?
08:18 Ven_ and basically, :delete is a named argument to access_pos ?
08:18 fhelmberger joined #perl6
08:18 jnthn Ven_: %foo is a hash, thus non-determinism.
08:18 masak Ven_: the order is nondeterministic because if it weren't, hash lookup wouldn't be efficient.
08:18 masak Ven_: yes, basically, :delete is a named argument
08:19 Ven_ fair enough!
08:19 masak there's a certain beauty to it.
08:19 timotimo see the irclog for a very small implementation of an ordered hash
08:19 timotimo like two to four months ago
08:19 lizmat :delete is just short for (delete => True)
08:19 Ven_ that's a log of backlog
08:19 timotimo you can search through it :)
08:19 jnthn lizmat: Oh...I see the problem.
08:19 jnthn lizmat: The test is too fragile.
08:20 lizmat yes, that's why I skipped it
08:20 lizmat we've had this discussion before
08:20 jnthn lizmat: No, as in, there's a one-line change that makes it fine.
08:20 woolfy left #perl6
08:20 lizmat ah?
08:20 lizmat which would be?
08:20 jnthn -my $seen;
08:20 Ven_ I do agree :). Yesterday I created a little file to do some perl6, and really, `multi MAIN` is the future :D.
08:20 jnthn +my $seen = 0;
08:21 timotimo i agree, it's very, very nice to have
08:21 jnthn lizmat: It races to vivify, but between the multi-dispatcher deciding on the candidate and the chosen one being invoked, the thing changes.
08:21 Ven_ r: sub MAIN('update', $key, Bool $:delete) {}
08:21 camelia rakudo-parrot e49859, rakudo-jvm e49859, rakudo-moar e49859: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfile�In signature parameter, placeholder variables like $:delete are illegal�you probably meant a named parameter: ':$delete'�at /tmp/tmpfile:1�--…»
08:21 Ven_ well I typo, but really cool.
08:22 jnthn lizmat: If we initialize the var it works out consistently fine here.
08:22 lizmat ok, will change
08:22 timotimo aye, the way it does type intuition from strings is really really helpful, too
08:23 dalek roast: adda017 | (Elizabeth Mattijsen)++ | S17-concurrency/thread.t:
08:23 dalek roast: Initializing prevents the race to initialize, jnthn++
08:23 dalek roast: review: https://github.com/perl6/roast/commit/adda01717d
08:23 lizmat sightseeing and commuting&
08:24 jnthn lizmat: have fun
08:24 havenwood joined #perl6
08:27 slavik joined #perl6
08:36 rurban joined #perl6
08:41 virtualsue joined #perl6
08:48 Ven_ (the concurrency bug was basically autoviviying int to 0 ?)
09:13 dalek perl6-bench: ad5af18 | (Timo Paulssen)++ | perl6/rc-forest-fire:
09:13 dalek perl6-bench: bless doesn't like the whatever star any more.
09:13 dalek perl6-bench: review: https://github.com/japhb/perl6-bench/commit/ad5af1844d
09:14 jnthn .oO( video killed the whatever star... )
09:21 lustlife joined #perl6
09:31 rindolf joined #perl6
09:32 havenwood joined #perl6
09:37 rurban joined #perl6
10:00 lustlife joined #perl6
10:12 woosley left #perl6
10:13 denis_boyun_ joined #perl6
10:18 dalek rakudo/varopt: 5cb47e4 | jnthn++ | src/Perl6/Optimizer.nqp:
10:18 dalek rakudo/varopt: Make $*LEVEL in optimizer an attribute.
10:18 dalek rakudo/varopt:
10:18 dalek rakudo/varopt: Saves a bunch of contextual lookups.
10:18 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/5cb47e4155
10:18 dalek rakudo/varopt: f392d69 | jnthn++ | src/Perl6/Optimizer.nqp:
10:18 dalek rakudo/varopt: Avoid duplicating QAST::Node.unique(...) logic.
10:18 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/f392d6969c
10:18 dalek rakudo/varopt: 95889b7 | jnthn++ | src/Perl6/Optimizer.nqp:
10:18 dalek rakudo/varopt: Toss a JVM-only optimization.
10:18 dalek rakudo/varopt:
10:18 dalek rakudo/varopt: It's covered by the much more general lexical-to-local lowering, which
10:18 dalek rakudo/varopt: we should just make work on the JVM.
10:18 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/95889b7d3d
10:24 AW3i joined #perl6
10:33 havenwood joined #perl6
10:39 rurban joined #perl6
10:42 lustlife joined #perl6
11:12 segomos joined #perl6
11:27 dalek rakudo/varopt: d37f507 | jnthn++ | src/Perl6/Optimizer.nqp:
11:27 dalek rakudo/varopt: Bring in var tracking code from NQP's optimizer.
11:27 dalek rakudo/varopt:
11:27 dalek rakudo/varopt: Will need various tweaks and extensions for use with full-blown Perl
11:27 dalek rakudo/varopt: 6, but it'll provide a known-good starting point.
11:27 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/d37f507038
11:27 dalek rakudo/varopt: e359997 | jnthn++ | src/Perl6/Optimizer.nqp:
11:27 dalek rakudo/varopt: Break optimizer up into a few classes.
11:27 dalek rakudo/varopt:
11:27 dalek rakudo/varopt: Having it as a single 1,200-line class was already getting hard to
11:27 dalek rakudo/varopt: manage, so before adding more to it start breaking a few things out.
11:27 dalek rakudo/varopt: This breaks symbol handling and junction optimization out into two
11:27 dalek rakudo/varopt: separate classes.
11:27 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/e359997e5a
11:34 havenwood joined #perl6
11:43 jtpalmer joined #perl6
11:45 Ven_ RT 121626
11:45 * Ven_ -- how's that you write it
11:46 dalek rakudo/varopt: c24dea0 | jnthn++ | src/Perl6/Optimizer.nqp:
11:46 dalek rakudo/varopt: Break error/warning reports out of main optimizer.
11:46 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/c24dea01a9
11:47 jnthn Death to the God object!
11:47 jnthn RT#121626
11:47 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=121626
11:47 jnthn Ven_: ^^
11:48 Ven_ jnthn: Thanks !
11:51 tadzik hah
11:51 tadzik someone says's something just for synopsebot to reply :)
11:52 Ven_ I figured out he'd feel a little alone these days :)
11:56 fridim_ joined #perl6
11:59 masak jnthn: having a God object pain threshold as low as 1,200 LoC probably makes you fairly unique in some way. :) jnthn++
12:03 jnthn masak: Well, the better sign is if you compute method usage/attribute usage and find disjoint sets :)
12:04 jnthn masak: Though I guess that one is more SRP-ish
12:04 jnthn (as in, you can find smaller violations)
12:05 IllvilJa tadzik: just uninstalled the Ubuntu packaged rakudo, and cloning/configuring/building rakudobrew-moar as you sugested.  Wish me good luck :-).
12:07 masak jnthn: I suppose God objects tend to break SRP ;)
12:08 jnthn masak: Oh, totally. Just on an epic scale.
12:09 IllvilJa God roles is the answer.  Then you incorporate ALL your code (almost) in the role, then let your God object use it.  That way you can claim you use roles to improve your code :-).
12:10 tadzik IllvilJa: I wish you luck :)
12:14 dalek rakudo/varopt: 99671e9 | jnthn++ | src/Perl6/Optimizer.nqp:
12:14 dalek rakudo/varopt: Start bringing in variable decl/use tracking.
12:14 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/99671e9aeb
12:15 anaeem1__ joined #perl6
12:17 anaee____ joined #perl6
12:18 hdsw joined #perl6
12:23 djanatyn1 joined #perl6
12:24 lee_ joined #perl6
12:24 Grrrr joined #perl6
12:34 havenwood joined #perl6
12:35 xenoterracide joined #perl6
12:38 sergot r: sub a($b?, *%c) { say $b; say %c; }
12:38 camelia rakudo-parrot e49859, rakudo-jvm e49859, rakudo-moar e49859: ( no output )
12:38 sergot r: sub a($b?, *%c) { say $b; say %c; }; a(1, abc => 123);
12:38 camelia rakudo-parrot e49859, rakudo-jvm e49859, rakudo-moar e49859: OUTPUT«1␤("abc" => 123).hash␤»
12:38 sergot r: sub a($b?, *%c) { say $b; say %c; }; a(abc => 123);
12:38 camelia rakudo-parrot e49859, rakudo-jvm e49859, rakudo-moar e49859: OUTPUT«(Any)␤("abc" => 123).hash␤»
12:39 sergot r: sub a($b?, *%c) { say $b; say %c; }; a();
12:39 camelia rakudo-parrot e49859, rakudo-jvm e49859, rakudo-moar e49859: OUTPUT«(Any)␤().hash␤»
12:40 IllvilJa tadzik: is there some good way to control where rakudobrew will finally install the executables?
12:40 rurban joined #perl6
12:41 IllvilJa Or will it always put perl6 under ..../moar-HEAD/install/bin/perl6?
12:42 xfix joined #perl6
12:42 tadzik IllvilJa: not really
12:42 tadzik IllvilJa: but they'll be copied to .rakudobrew/bin
12:42 tadzik or: should be
12:48 IllvilJa Actually, my intent was to create a system-wide install of the rakudo perl6, and thought it was a better idea to use ~/Installs/rakudo as an intermediate staging directory than ~/.rakudo.
12:48 IllvilJa My thought was that the rakudobrew script somehow allowed me to specify perl6 to live under /usr/local or so.
12:49 IllvilJa Now it installed everything under ~/Installs/moar-HEAD/install which is a bit unwieldy to use in the path (even if technically possible).
12:50 IllvilJa (Nothing is copied to be directly under ~/Installs/rakudo though).
12:50 dalek rakudo/varopt: 319509a | jnthn++ | src/Perl6/Actions.nqp:
12:50 dalek rakudo/varopt: Immediate blocks don't need a $*DISPATCHER.
12:50 dalek rakudo/varopt:
12:50 dalek rakudo/varopt: This also saves the takedispatcher instruction in all of them. Adds up
12:50 dalek rakudo/varopt: 34KB saving on CORE.setting.moarvm, and a some thousands less QAST
12:50 dalek rakudo/varopt: nodes during compilation. Also means less instructions to execute at
12:50 dalek rakudo/varopt: runtime.
12:50 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/319509a466
12:51 jnthn Whoa, 2 grammar fails in one commit message
12:52 IllvilJa Also, I'm trying to get a system wide install of Rakudo with a working panda so having one in my home directory is not a perfect solution (but it might do for a while).
12:54 IllvilJa Also, it seems like there is no 'panda' installed anywhere.
12:55 IllvilJa action realize he is  just sitting there whining.
12:55 * IllvilJa realize he is  just sitting there whining.
12:55 IllvilJa (and can't even handle irc ;-) )
12:56 guru joined #perl6
13:06 dalek rakudo-star-daily: ba09fd4 | coke++ | log/ (5 files):
13:06 dalek rakudo-star-daily: today (automated commit)
13:06 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/ba09fd4a75
13:06 dalek perl6-roast-data: 3d9e9f5 | coke++ | / (5 files):
13:06 dalek perl6-roast-data: today (automated commit)
13:06 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/3d9e9f58b1
13:07 [Coke] .seen lue?
13:07 yoleaux I haven't seen lue? around.
13:07 [Coke] .seen lue
13:07 yoleaux I saw lue 02:08Z in #perl6: <lue> .oO( http://rosettacode.org/wiki/Smokey_bear#Perl_6 )
13:07 [Coke] ... telling me Z time is unhelpful. what happened to "x hours ago?"
13:08 tadzik IllvilJa: hmm
13:08 tadzik slow down :)
13:08 tadzik does 'rakudobrew build-panda help?'
13:18 mtk joined #perl6
13:23 dalek rakudo/varopt: 806c867 | jnthn++ | src/Perl6/Actions.nqp:
13:23 dalek rakudo/varopt: Don't make container if we immediately bind a var.
13:23 dalek rakudo/varopt:
13:23 dalek rakudo/varopt: For example, in `my $a := 42;`, the container would be immediately
13:23 dalek rakudo/varopt: discarded, so don't bother allocating it at all.
13:23 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/806c867fa4
13:23 dalek rakudo/varopt: 5bc6b91 | jnthn++ | src/Perl6/Optimizer.nqp:
13:23 dalek rakudo/varopt: Make use of PseudoStash poison lowers.
13:23 dalek rakudo/varopt:
13:23 dalek rakudo/varopt: Not trying to do any of them yet, but this will be needed before we
13:23 dalek rakudo/varopt: safely can.
13:23 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/5bc6b910eb
13:28 kbaker_ joined #perl6
13:35 rindolf joined #perl6
13:35 havenwood joined #perl6
13:44 kivutar joined #perl6
13:45 Ven_ r: sub MAIN(Str $filename where *.IO ~~ :e) {} # :o)
13:45 camelia rakudo-parrot e49859, rakudo-jvm e49859, rakudo-moar e49859: OUTPUT«Usage:␤  /tmp/tmpfile <filename> ␤»
13:45 Ven_ oh my god :D
13:45 IllvilJa tadzik: it helped!
13:46 IllvilJa Now panda is there under ~/Installs/panda/bin
13:46 PerlJam What does "PseudoStash poison lowers" mean?
13:46 Gothmog_ joined #perl6
13:46 IllvilJa If I get time, I'll look into getting rakudo + panda packaged for ubuntu.
13:46 * IllvilJa is having wild fantasies for the future...
13:47 jnthn PerlJam: OUTER:: and friends prevent certain optimizations
13:47 jnthn PerlJam: Generally, late-bound things.
13:47 Ven_ that's amazing
13:48 tadzik IllvilJa: how about rakudobrew rehash?
13:48 tadzik does this put stuff in bin?
13:48 Ven_ well I  guess ~~ :e can be .f
13:48 PerlJam so, OUTER:: poisons and PseudoStash is an antidote?
13:49 jnthn Ven_: "where .IO.f" may well do it
13:49 IllvilJa tadzik: Hm... what is that supposed to do?
13:49 masak jnthn: no, you need a * or a {}
13:49 masak jnthn: otherwise you don't get thunk semantics.
13:49 jnthn r: sub foo($x where .say) { }; foo('lol')
13:50 camelia rakudo-parrot e49859, rakudo-jvm e49859, rakudo-moar e49859: OUTPUT«lol␤»
13:50 tadzik IllvilJa: put stuff in .rakudobrew/bin
13:50 tadzik so you have one path for all executables
13:50 masak jnthn: hm.
13:50 jnthn masak: I...think you do ;)
13:50 masak yeah, maybe you do.
13:50 Ven_ jnthn: once perl6 is fast enough, I'll never be able to write scripts in something else :p
13:50 masak don't mind me, I'm obviously on vacation :P
13:51 jnthn Ven_: Well, working on that. :)
13:51 Ven_ right you are
13:52 IllvilJa tadzik: Apparently I need to do it like that, even if the "create a system-wide perl6 with panda" part of my brain revolts...  Maybe I should delete the directory and rebuild everything from scratch.
13:52 bluescreen10 joined #perl6
13:52 IllvilJa (Computers are good at repeating automated rebuild of software, so that is not much of an issue ;-) )
13:54 tadzik IllvilJa: well, rakudobrew was not designed to be a systemwide thing
13:55 IllvilJa Ok, rebuilding rakudobrew, in ~/.rakudobrew...
13:55 rurban joined #perl6
13:55 IllvilJa tadzik: an conveniently packaged rakudo + panda, as easily installed as perl5, would be a good holy grail to shoot for in the future :-).  I suppose it is already part of the vision.
13:55 IllvilJa (Just wished we already were there...)
13:56 tadzik it's called Star :)
13:56 IllvilJa There is no rakudo star in ubuntu's packager ;-).
13:56 tadzik there is nothing in ubuntu package list :D
13:56 tadzik all that is is ancient
13:57 IllvilJa Anyway, it would make it easier when creating software based on perl 6 eventually, to have it more or less installed with the OS.
13:57 IllvilJa When ancient is good enough, installing softwared based on it is a breeze.
13:57 anaeem1_ joined #perl6
13:58 IllvilJa Perl 5 software often works like that: install OS, use (ancient but still good enough) system perl 5 interpreter and then run that perl 5 app using that interpreter.
13:58 IllvilJa THAT is the vision I have for perl 6 :-D
13:58 tadzik IllvilJa: I have a plan for that part
13:58 tadzik MoarVM is basically bundlable
13:59 IllvilJa :-)
13:59 tadzik I wrote a game, and when I put moarvm+rakudo+nqp with it, and xz'd it, it was like 2 Megabytes
13:59 IllvilJa Plans are good
13:59 tadzik 20MB uncompressed
13:59 IllvilJa Sounds like a way to do it.
13:59 tadzik but still, you could just copy it over somewhere and launch it
13:59 IllvilJa 2Mb compressed is nothing in these days.
13:59 tadzik I just need to write a tool for bundling :)
13:59 IllvilJa tar?
13:59 btyler joined #perl6
13:59 IllvilJa (sorry, could not resist)
14:00 thou joined #perl6
14:01 tadzik no, there's more to it :)
14:04 tadzik but mostly just adjusting paths, env vars and generating launchers
14:06 mtk joined #perl6
14:06 tadzik I may do that today
14:07 tadzik I'll just need volunteers to try it out on systems with no moarakudo instlaled :0
14:09 Ven_ I volunteer !
14:09 tadzik ok :)
14:11 jnap joined #perl6
14:14 IllvilJa tadzik: one more thing: when doing that line for building rakudobrew, it do not install perl 6 under ~/rakudobrew/bin but under ~/.rakudobrew/moar-HEAD/install/bin (and under ~/.rakudobrew/moar-HEAD/languages
14:14 IllvilJa I suspect that is a bug, right?
14:15 IllvilJa (Typo: it showed up under ~/.rakudobrew/moar-HEAD/install/languages/perl6 as well).
14:16 IllvilJa Is the easy fix to just copy ~/.rakudobrew/moar-HEAD/install/bin/perl6 to ~/.rakudobrew/bin safe in the longer run?
14:17 IllvilJa I just did it :-)
14:17 IllvilJa Let's see if I can build panda with that quickfix in place!
14:19 IllvilJa Hm.  Emitted errors.  Delete .rakudobrew and redo the install... (Brute force automation is a bliss ;-) )
14:20 IllvilJa I'll stick to add ~/.rakudobrew/moar-HEAD/install/bin to my PATH instead
14:22 [Coke] rakudo.parrot has 190 failing tests as of yesterday.
14:23 [Coke] 189 today: https://gist.github.com/coke/10472931
14:23 [Coke] should parrot even be running those?
14:23 jnap1 joined #perl6
14:24 * [Coke] bets they are not.
14:25 tadzik IllvilJa: sounds like a bug
14:25 IllvilJa Yes. But for now I just work around it :-).
14:25 jnthn [Coke]: Does the test thing use t/harness?
14:26 jnthn [Coke]: There's a "# conc" mark on the concurrency tests which should exclude Parrot from running them.
14:28 havenwood joined #perl6
14:28 Ulti is there an idiots guide to building Rakudo to generate the .msi used in star?
14:29 * Ven_ wants to know too
14:30 Ulti if not is there a half arsed expert guide that I can attempt to follow and write the idiots guide to?
14:30 [Coke] jnthn: nope. uses spec's test_summary, which knows about some stuff, but not conc.
14:30 [Coke] jnthn++
14:30 Ulti though the new visual studio already confuses me with its weird flat theme
14:30 jnthn [Coke]: ah. There we go then.
14:33 dalek rakudo/varopt: 48983c2 | jnthn++ | src/Perl6/Optimizer.nqp:
14:33 dalek rakudo/varopt: Further analysis to prepare for variable opts.
14:33 dalek rakudo/varopt:
14:33 dalek rakudo/varopt: Track EVAL, getlexouter, and calls.
14:33 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/48983c2140
14:33 dalek rakudo/varopt: 8584dbe | jnthn++ | src/Perl6/Optimizer.nqp:
14:33 dalek rakudo/varopt: Eliminate $! and $/ when trivially unused.
14:33 dalek rakudo/varopt:
14:33 dalek rakudo/varopt: Where "trivially unused" holds in many of the simple operators in the
14:33 dalek rakudo/varopt: setting. This saves two Scalar allocations for many of them.
14:33 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/8584dbea09
14:34 * Ven_ can't stop reading $! as !$
14:35 jnthn r: say !$!
14:35 camelia rakudo-parrot e49859, rakudo-jvm e49859, rakudo-moar e49859: OUTPUT«True␤»
14:37 jnthn [Coke]: Has today's run already started, ooc?
14:38 mattp__ joined #perl6
14:39 jnthn %kill
14:39 jnthn oops
14:40 pmurias joined #perl6
14:40 dalek ecosystem: 2d7be29 | (Andrew Egeler)++ | META.list:
14:40 dalek ecosystem: Add Digest::HMAC
14:40 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/2d7be29e05
14:43 IllvilJa tadzik: this 'moar' thing.  is it a new VM? or is it a repackaged/redesigned/readjusted (bastardized perhaps?) parrot?
14:43 IllvilJa parrot VM that is
14:44 IllvilJa The workaround of adding ~/.rakudobrew/moar-HEAD/install/bin to my PATH works nicely, panda is happily bootstrapping itself.
14:46 darutoko- joined #perl6
14:46 JimmyZ r: say !$
14:46 camelia rakudo-parrot e49859, rakudo-jvm e49859, rakudo-moar e49859: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Non-declarative sigil is missing its nameâ�¤at /tmp/tmpfile:1â�¤------> [32msay ![33mâ��[31m$[0mâ�¤    expecting any of:â�¤        argument lis…»
14:46 tadzik IllvilJa: a new thing
14:46 JimmyZ r: say !(my $)
14:46 camelia rakudo-parrot e49859, rakudo-jvm e49859, rakudo-moar e49859: OUTPUT«True␤»
14:47 JimmyZ r: say !(my $!)
14:47 camelia rakudo-parrot e49859, rakudo-jvm e49859, rakudo-moar e49859: OUTPUT«Potential difficulties:â�¤    Redeclaration of symbol $!â�¤    at /tmp/tmpfile:1â�¤    ------> [32msay !(my $![33mâ��[31m)[0mâ�¤Trueâ�¤Â»
14:49 Alina-malina joined #perl6
14:50 timotimo tadzik: did you see froggs' work on generating binaries that link against libmoar and that have the bytecode needed in them?
14:50 IllvilJa tadzik: but it is supposed to be parrot-compatible?
14:51 IllvilJa (or apparently, it is, I guess)
14:51 timotimo it's not supposed to be parrot-compatible
14:52 IllvilJa ok
14:52 timotimo jnthn: which pieces of the whole would you like me to benchmark?
14:52 tadzik IllvilJa: nope
14:52 tadzik timotimo: nope :)
14:52 tadzik I'd like to though
14:52 timotimo me, too
14:52 timotimo i don't think he pushed the stuff anywhere
14:53 bjz joined #perl6
14:54 jnthn timotimo: For now do master/master/nom :)
14:54 timotimo master, master, omnomnom
14:54 guru joined #perl6
14:54 [Coke] jnthn: hours ago, yes.
14:55 plobsing joined #perl6
14:55 [Coke] up through jvm, S05 (last impl)
14:57 * [Coke] ponders creating something like modules.perl6.org for javascript at work.
14:57 [Coke] shame we don't quite have github for stuff.
14:58 pmurias [Coke]: for internal stuff?
14:59 jnthn [Coke]: ok, great. Means if I merge something today I can tell if breakage is from it or from yesterdays, if yesterdays causes some
14:59 [Coke] aye.
14:59 [Coke] jnthn: the roast page also shows you the commit we used to run stuff now.
14:59 [Coke] so that should also help.
15:00 [Coke] (warning: until I reorder the columns, you have to scroll to the right)
15:01 jnthn [Coke]: oh, also good to know. Thanks!
15:02 jnthn [Coke]++
15:02 cooper joined #perl6
15:05 timotimo jnthn: do i need to set =master? are all things sufficiently fudged currently?
15:05 timotimo for the benchmarks that is
15:06 timotimo want me to benchmark nqp, too?
15:06 timotimo i don't think i have any reason to
15:06 jnthn timotimo: I think most of the movement will be in Rakudo tbh.
15:08 jnthn timotimo: Shoudln't have regressed stuff anywhere
15:09 timotimo i forgot how long the benchmark for rakudo takes. so i'll just estimate 1 hour until you get results
15:09 jnthn timotimo: It'll be on a graph against p5/2014.03?
15:10 timotimo ok
15:10 jnthn Well, if that's convenient for you to do :)
15:10 jnthn But it's what'll be informativeist :)
15:10 jnthn uh...whatever :)
15:11 timotimo it is
15:19 * jnthn worried he'd have to do a lot of work on var analysis before he could get spectests to pass and a measurable win, but managed to get something helpful without too much trouble.
15:19 jnthn It ain't doing lex -> loc yet
15:21 dalek rakudo/varopt: c173b85 | jnthn++ | src/Perl6/Optimizer.nqp:
15:21 dalek rakudo/varopt: Optimize away $_ when it's trivially unused.
15:21 dalek rakudo/varopt:
15:21 dalek rakudo/varopt: This includes optimizing away the getlexouter and bind instructions
15:21 dalek rakudo/varopt: that go with it.
15:21 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/c173b85c44
15:21 timotimo I've now successfully connected my voice recognition system with my IRC client
15:21 timotimo That means that my hurting wrist is not going to impede my chatting experience anymore
15:22 timotimo Although every time I want to send a message I have to say click transfer and then hit return
15:25 tadzik IllvilJa: ah, I found the bug :)
15:25 tadzik IllvilJa: but: did rakudobrew rehash not have helped?
15:25 treehug88 joined #perl6
15:26 tadzik rakudobrew switch moar would have also fixed that, probably :)
15:27 timotimo oh my connecting to my desktop computer via SSH during the benchmark run was not such a good idea
15:28 ajr_ joined #perl6
15:28 timotimo This is surprisingly fun though
15:29 tadzik IllvilJa: I I fixed it :)
15:29 tadzik er, I think I fixed it
15:29 tadzik for future uses
15:30 IllvilJa So if I delete .rakudobrew and reinstall it, it will put perl6 at the right place?
15:31 IllvilJa (I got the command line in place, both for deleting and reinstalling :-), just awaiting your confirmation)
15:32 tadzik it's not necessary
15:32 tadzik try ''akudobrew switch moar
15:32 tadzik that should do the trick
15:33 IllvilJa Yay!
15:33 IllvilJa It did!
15:33 tadzik :)
15:33 IllvilJa Thanks!
15:33 tadzik I made it do that automagically after you build your first rakudo
15:33 tadzik if you want to try rakudo-jv or rakudo-parrot after that, you'll have to switch to them manually
15:33 tadzik s/jv/jvm/
15:34 IllvilJa Ok.
15:34 tadzik argh stupid paypal
15:34 IllvilJa Hm. JVM = we can run perl6 on Java Virtual Machine?
15:34 timotimo yes indeed
15:34 timotimo you must be new here :D
15:35 IllvilJa I've been absent for a couple of years.
15:35 tadzik :)
15:35 tadzik yes we can
15:35 IllvilJa Cool!
15:35 tadzik although moarvm is generally superior to it
15:35 IllvilJa Ok!
15:35 timotimo Only for short running programs though
15:35 daxim_ joined #perl6
15:36 timotimo And also you've chosen a great time to come back, because right now we are doing some performance improvements
15:36 timotimo And a very big portion of syntax and features are already in place
15:39 timotimo jnthn: http://t.h8.lv/p6bench/2014-04-11-rakudo_opt.html
15:40 segomos is moar's memory handling not good? whats the reason for jvm being better on long running processes?
15:41 timotimo very good wins across the board
15:41 timotimo segomos: jvm has a JIT compiler
15:42 segomos so not a reliability thing
15:42 jnthn Moar typically (always?) uses a good bit less memory
15:42 jnthn timotimo: Looking now :)
15:42 timotimo I am very glad to see that the any equals benchmark is also seeing improvements
15:45 IllvilJa Checked out moarvm.org (and wikipedia embryo of a page :-) ).  Impressive stuff!
15:45 timotimo on moarvm we usually get better performance than parrot and better performance than JVM (until the JIT kicks in)
15:46 timotimo but our handling of strings on moarvm is pretty poor at the moment
15:46 jnthn timotimo: Yeah. Important to remember that the scale is a log one too.
15:46 timotimo http://t.h8.lv/p6bench/2014-03-09-every_perl.html - check out this month old (and thus ver yout of date) benchmark result
15:47 webart joined #perl6
15:47 timotimo It hurts
15:49 timotimo In some cases we get a two times improvement so that is very good
15:49 timotimo Especially the optimization of array and hash assignment seems to be extremely fruitful
15:49 kivutar joined #perl6
15:51 timotimo jnthn: did you want benchmarks of the other backends as well?
15:52 jnthn timotimo: Maybe you'll have time for some later today after I merge the initial bits of varopt?
15:53 jnthn timotimo: Got one important opt about to land in moar also.
15:53 timotimo i can
15:54 timotimo and all of that will happen today?
15:54 timotimo color me excited!
15:59 jnthn I'm going to merge (ff) varopt now, but keep the branch
15:59 jnthn Basically, the stuff I've done so far is quite comfortable to reason about and I'm happy that it's unlikely to have fallout.
15:59 jnthn But the next steps could be riskier.
15:59 jnthn It will have performance fallout.
15:59 jnthn (Of the good kind.)
16:00 timotimo So, should I immediately start the benchmarks?
16:01 timotimo For all of the three back ends?
16:01 jnthn Let me do the merge first.
16:01 timotimo Obviously
16:03 dalek nqp: f34d909 | jnthn++ | tools/build/MOAR_REVISION:
16:03 dalek nqp: Get Moar with REPL fix, [invoke&multi]spec opt.
16:03 dalek nqp: review: https://github.com/perl6/nqp/commit/f34d909021
16:05 dalek rakudo/varopt: 452c89d | jnthn++ | tools/build/NQP_REVISION:
16:05 dalek rakudo/varopt: NQP bump for Moar improvements.
16:05 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/452c89d5e1
16:05 dalek rakudo/nom: 5cb47e4 | jnthn++ | src/Perl6/Optimizer.nqp:
16:05 dalek rakudo/nom: Make $*LEVEL in optimizer an attribute.
16:05 dalek rakudo/nom:
16:05 dalek rakudo/nom: Saves a bunch of contextual lookups.
16:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5cb47e4155
16:06 dalek joined #perl6
16:06 webart left #perl6
16:06 jnthn OK, there we go.
16:07 timotimo all right
16:07 jnthn Hm, wonder if I shoulda tried those on other backends... :)
16:08 timotimo i can stay on master/master/nom, aye?
16:08 jnthn Yes
16:08 jnthn Make sure you do a build of latest Moar also
16:08 timotimo ... huh?
16:08 timotimo bench will build MOAR_REVISION and NQP_REVISION unless i tell it otherwise
16:08 jnthn Ah, then fine. :)
16:09 jnthn I meant "don't use a cached Moar build" :)
16:09 jnthn But I see the tool won't, so it's all good.
16:09 PZt joined #perl6
16:09 jnthn Just that on, say, while_empty, the change I just did in Moar gives 8%-9% better.
16:09 timotimo this will take a while.
16:11 jnthn timotimo: Sure. Will it include NQP too?
16:11 timotimo i can do that if you want me to
16:11 timotimo will it be worth it?
16:12 jnthn Well, the recent improvements should be closing the gap between NQP and Rakudo, in theory.
16:12 jnthn Having NQP on the graphs too will give us an idea of how well we're doing in that regard.
16:13 timotimo i can put the old nqps in it
16:13 timotimo that'll be very cheap
16:16 guru joined #perl6
16:18 jnthn oh, duh...
16:19 jnthn $_ opt isn't as effective as it shoulda been due to a thinko.
16:19 timotimo i'ven't started the benchmarks yet
16:20 timotimo only just built the rakudos
16:20 timotimo i can wait for another patch :)
16:20 jnthn Working on it, but I'll need to re-spectest
16:24 timotimo That's okay I have patience
16:25 jnthn Yeah, worth it provided spectest is clean
16:26 jnthn while_empty is within a factor of 10 of NQP with this.
16:26 timotimo yay!
16:26 Rotwang joined #perl6
16:27 timotimo Out of curiosity, what was the factor before the patch that I am now waiting for
16:28 denis_boyun joined #perl6
16:28 jnthn Before this one patch, it was around 12 or so; now it's 9.3
16:28 timotimo \o/
16:29 jnthn Before varopt it was closer to 20
16:30 xinming__ joined #perl6
16:33 dalek rakudo/varopt: c27ec40 | jnthn++ | src/Perl6/Optimizer.nqp:
16:33 dalek rakudo/varopt: Both var and contvar are fine for $_ deletion.
16:33 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/c27ec40ea9
16:33 dalek rakudo/nom: c27ec40 | jnthn++ | src/Perl6/Optimizer.nqp:
16:33 dalek rakudo/nom: Both var and contvar are fine for $_ deletion.
16:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c27ec40ea9
16:34 timotimo here we go
16:34 jnthn Seems good.
16:38 timotimo While the benchmarks of doing their thing I think I will be doing some chores
16:42 * jnthn could do with a walk also :)
16:42 jnthn bbiab
16:42 dalek perl6-roast-data: 16afd8c | coke++ | / (2 files):
16:42 dalek perl6-roast-data: move notes to end of CSV columns
16:42 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/16afd8c671
16:43 dalek perl6-roast-data: d9689c6 | coke++ | perl6_pass_rates.csv:
16:43 dalek perl6-roast-data: fix typo
16:43 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/d9689c6a0d
16:43 dalek perl6-roast-data: c5a40c1 | coke++ | perl6_pass_rates.csv:
16:43 dalek perl6-roast-data: move -headers-, also.
16:43 dalek perl6-roast-data:
16:43 dalek perl6-roast-data: *facepalm*
16:43 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/c5a40c1af2
16:44 [Coke] there. now the impl's sha1 is more obvious.
16:46 timotimo jnthn: while building JVM, i get NPEs during the compilations of the built-in modules
16:46 timotimo like Test for example
16:47 dalek roast: 36637c8 | coke++ | test_summary:
16:47 dalek roast: respect new flag in rakudo's specttest.data
16:47 dalek roast: review: https://github.com/perl6/roast/commit/36637c8c10
16:52 vendethiel jnthn: do your changes work correctly with MY:: and stuff?
16:52 timotimo yeah, MY is a pseudopackage
16:52 timotimo pseudopackages cause an abort of optimization
16:52 timotimo though OUTER and MY could potentially be supported
16:57 vendethiel nqp-parrot and rakudo-jvm are faster than perl5 on "zero"?
16:57 timotimo you may be reading the graph the wrong way around?
16:58 vendethiel well my mouse double-clicks right now so I Can't quite take a screenshot, but http://t.h8.lv/p6bench/2014-03-09-every_perl.html first graph seems to say so ?
16:58 timotimo bigger bars means faster
16:58 timotimo otherwise: it's probably caused by startup time being removed from the timings
16:58 hoverboard joined #perl6
16:58 timotimo oh, interesting
16:59 vendethiel The JVM's JIT is really something
17:00 timotimo the jit isn't supposed to kick in that fast
17:00 timotimo anyway, benchmark 29 of 43 is running now on moarvm
17:00 timotimo after that i think only parrot remains
17:00 vendethiel where do you expect nqp to be "in the end" ? 5-10x faster than rakudo ?
17:01 timotimo well, if we get rakudo to be as fast as nqp, that'd be amazing
17:01 timotimo obviously we want to end up faster than perl5 ;)
17:02 vendethiel "35244x slower than fastest" well !
17:02 timotimo watch out, "fastest" is the *global* maximum
17:02 timotimo rather than on the same x-coordinate
17:02 vendethiel I know - here it happens to be the same
17:02 timotimo OK
17:03 timotimo yeah, in some cases we're pretty terrible at the moment
17:03 vendethiel rc-forest-fire is getting some good stuff out of the jvm's jit
17:03 timotimo it does
17:06 ajr joined #perl6
17:22 jnthn timotimo: Oh :(
17:22 jnthn timotimo: Saveed the stack trace?
17:23 jnthn vendethiel: Yeah, it notes those and gets suitably unhappy about doing optimization anywhere down the lexical chain if it sees one of those.
17:23 jnthn vendethiel: In the future we can look at special cases, though.
17:36 timotimo no stack trace emitted
17:36 timotimo but i have the stuff in backscroll
17:37 timotimo oh, i don't have a rakudo-parrot/2014.03
17:38 timotimo huh
17:38 timotimo no rakudo-jvm/2014.03 either
17:39 TimToady std: say map(* + 1): 1,2,3 X 4,5,6
17:39 camelia std e347792: OUTPUT«ok 00:01 124m␤»
17:39 TimToady n: say map(* + 1): 1,2,3 X 4,5,6
17:39 timotimo why are so many timing files apparently missing? :\
17:39 camelia niecza v24-109-g48a8de3: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Interaction between semiargs and args is not understood at /tmp/5lgcEa0IHn line 1 (EOF):â�¤------> [32msay map(* + 1): 1,2,3 X 4,5,6[33mâ��[31m<EOL>[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6ev…»
17:39 TimToady that syntax is also supposed to work
17:39 timotimo http://t.h8.lv/p6bench/2014-04-11-rakudo_opt.html ← F5 for great justice
17:39 TimToady m: say map(* + 1): 1,2,3 X 4,5,6
17:39 camelia rakudo-moar e49859: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/TwOojBzyKpâ�¤Two terms in a rowâ�¤at /tmp/TwOojBzyKp:1â�¤------> [32msay map(* + 1)[33mâ��[31m: 1,2,3 X 4,5,6[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix…»
17:40 timotimo something apparently went quite wrong
17:40 jnthn yeah, the parrot measurements are missing?
17:40 timotimo yeah, they didn't run
17:41 jnthn ooc, does Moar build with the cgoto interp by default on platforms that can?
17:41 timotimo ah, parrot failed to build because i had MAKEFLAGS=-j4
17:42 timotimo i'll fill in the missing data in the coming ... time
17:42 * TimToady snickers
17:42 [Coke] timotimo: if that's broken on parrot, can you open a ticket?
17:42 [Coke] (I worked very hard at one point to make sure that didn't fail. :P)
17:42 moritz on the JVM, Test.pm compilation fails
17:43 moritz ===SORRY!===
17:43 moritz java.lang.NullPointerException
17:43 denis_boyun___ joined #perl6
17:43 moritz rakudo 2014.03.01-126-gc27ec40
17:44 timotimo [Coke]: it seems like make itself is b0rking
17:44 zakharyas joined #perl6
17:44 timotimo as in "oh god there's stuff that shouldn't be there in the job pipeline gaaaaah"
17:44 dalek perl6-roast-data: 0677e75 | coke++ | / (6 files):
17:44 dalek perl6-roast-data: today (automated commit)
17:44 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/0677e75a5f
17:45 [Coke] timotimo: ah, i thought you meant just the -j4.
17:45 timotimo [Coke]: now pass_rates.csv starts with <<<<<<< HEAD :)
17:46 [Coke] huh. apparently there was an invalid free in yesterday's parrot run that is resolved today.
17:46 [Coke] timotimo: dammit.
17:46 jnthn timotimo: Graphs show improvemnets all over. Nice. :)
17:46 timotimo aye, quite nice
17:46 dalek perl6-roast-data: 8d82fbb | coke++ | perl6_pass_rates.csv:
17:46 dalek perl6-roast-data: fix mergo
17:46 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/8d82fbbd3e
17:46 [Coke] timotimo: fixed.
17:56 jnthn moritz: --ll-exception will give more clues; I'll have a closer look after dinner
17:57 rurban joined #perl6
17:58 benabik left #perl6
17:58 benabik joined #perl6
18:00 timotimo parrot still takes about 100 seconds to parse core.setting
18:00 timotimo this is amazing.
18:00 retupmoca tadzik: ping
18:03 tadzik retupmoca: pong
18:03 treehug8_ joined #perl6
18:03 retupmoca tadzik: I opened yet another panda PR for you
18:04 hummeleB1 joined #perl6
18:05 timotimo retupmoca++
18:06 tadzik I think it's wrong though :)
18:06 tadzik it saves meta of non-ecosystem over the ecosystem ones
18:06 tadzik where non-ecosystem may just be an older version of the ecosystem one
18:06 retupmoca line 49: if ecosystem exists, it pulls it out of the non-ecosystem hash
18:06 retupmoca %non-ecosystem{$mod<name>}:delete;
18:07 tadzik ah!
18:07 tadzik indeed
18:08 tadzik then I like it :)
18:08 retupmoca \o/
18:09 tadzik maybe the panda-project creation needs some local sub to reduce duplication, but it's fine as it is :)
18:09 dalek panda: 7ead09e | (Andrew Egeler)++ | lib/Panda/Ecosystem.pm:
18:09 dalek panda: Allow non-ecosystem dependencies
18:09 dalek panda:
18:09 dalek panda: If a module is installed, we can now use it as a dependency without
18:09 dalek panda: needing it in the ecosystem. This allows you to use panda to install
18:09 dalek panda: private modules that never see the ecosystem, or to test a set of
18:09 dalek panda: modules before adding them to the ecosystem.
18:09 dalek panda: review: https://github.com/tadzik/panda/commit/7ead09e4f3
18:09 dalek panda: 2693bbc | tadzik++ | lib/Panda/Ecosystem.pm:
18:09 dalek panda: Merge pull request #77 from retupmoca/master
18:09 dalek panda:
18:09 dalek panda: Allow non-ecosystem dependencies
18:09 dalek panda: review: https://github.com/tadzik/panda/commit/2693bbc536
18:10 retupmoca tadzik++
18:10 tadzik retupmoca++
18:11 kaare_ joined #perl6
18:11 kurahaupo joined #perl6
18:11 kbaker_ joined #perl6
18:12 klapperl_ joined #perl6
18:15 timotimo Stage parse      :  21.366 - what
18:15 timotimo what is this
18:16 jnthn o.O
18:16 timotimo oh
18:16 timotimo parallel builds
18:16 timotimo combined with the new behavior of printing the stage name before and the number afterwards ... :)
18:16 jnthn ahaha
18:17 colomon joined #perl6
18:19 timotimo https://gist.github.com/anonymous/f585a7e823163e7aa596
18:20 timotimo ./perl6-p --target=pir  --output=src/gen/RESTRICTED.setting.pir src/RESTRICTED.setting
18:20 timotimo ===SORRY!===
18:20 timotimo Lexical '$_' not found
18:20 timotimo make: *** [RESTRICTED.setting.pbc] Error 1
18:22 timotimo https://gist.github.com/anonymous/cdbefe6af93dcab4d6f0
18:26 anaeem1 joined #perl6
18:27 arnsholt timotimo: Oh, that's my fault. Sorry =)
18:28 timotimo ah! :)
18:38 timotimo http://t.h8.lv/p6bench/2014-04-11-rakudo_opt.html - at least it has rakudo-parrot/2014.03 now
18:45 bluescreen100 joined #perl6
18:48 timotimo so it seems like rakudo is now usually 40-600 slower than perl5 in our microbenchmarks
18:51 raiph joined #perl6
18:52 average joined #perl6
18:57 rurban joined #perl6
18:58 raiph 7 videos of jnthn about P6 from 2008 were hosted on blip.tv
18:58 raiph it looks like they've been deleted from there
18:58 raiph anyone know if there are other copies anywhere?
18:58 raiph (i've looked on youtube)
18:59 jnthn timotimo: ah, I think I may know what's up with Parrot/JVM.
18:59 timotimo jnthn: is this already the tomorrow when you'll think about what videos i could produce? or is it still the same day you said that? :)
19:00 raiph .oO ( Am I awake? Is timotimo? )
19:02 timotimo er, that wasn't meant to go to jnthn, that was meant for raiph
19:02 jnthn timotimo: It's the day I forgot the conversation you're referring to apparently :P
19:02 jnthn Oh...
19:02 jnthn :)
19:02 jnthn So my memory hasn't gone bad after all :P
19:04 timotimo japhb: i'd love to have a little widget that would allow the user to hide/show data lines from all graphs at the same time
19:04 timotimo and then arrange them into a little matrix and give the user toggle buttons for "all in this row" and "all in this column", too
19:04 timotimo and also, it would be so fantastic if you could transfer (temporarily, if need be) data points from one graph to another by clicking two graphs in sequence
19:04 timotimo so that you could compare the native vs non-native tests, for example
19:05 timotimo that could well be doable just with javascript, no? did you try playing around with that library you're using yet?
19:07 dalek rakudo/varopt: f128025 | jnthn++ | src/Perl6/Optimizer.nqp:
19:07 dalek rakudo/varopt: Fix op name-o.
19:07 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/f128025ddc
19:07 dalek rakudo/varopt: aeda9d0 | jnthn++ | src/Perl6/Optimizer.nqp:
19:07 dalek rakudo/varopt: p6bindsig poisons lowering.
19:07 dalek rakudo/varopt:
19:07 dalek rakudo/varopt: Unbreaks the Parrot build/test, at least.
19:07 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/aeda9d0531
19:07 jnthn Trying a JVM build at the moment also.
19:08 * [Coke] pokes pmurias - how goes rakudo.js?
19:08 moritz jnthn: I'm a bit confused; did you fast-forward-merge varopt into nom, and now commit again to nom?
19:09 moritz (if yes, nothing wrong with it, just a bit unusual)
19:09 timotimo there was a fastforward, aye
19:09 timotimo but future commits are going to go into varopt again
19:09 jnthn moritz: I comitted on varopt; will merge into nom
19:09 timotimo except for these fixes above, i think
19:10 jnthn moritz: I'm doing other bits on varopt yet; I merged the bits I figured could be stable quickly.
19:10 timotimo jnthn: currently making measurements for nqp-jvm/2014.03, after that i shall do rakudo-parrot and rakudo-jvm current
19:10 jnthn moritz: The branch is now digging into the other stuff.
19:10 jnthn JVM looks happier too.
19:11 dalek rakudo/nom: f128025 | jnthn++ | src/Perl6/Optimizer.nqp:
19:11 dalek rakudo/nom: Fix op name-o.
19:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f128025ddc
19:11 dalek rakudo/nom: aeda9d0 | jnthn++ | src/Perl6/Optimizer.nqp:
19:11 dalek rakudo/nom: p6bindsig poisons lowering.
19:11 dalek rakudo/nom:
19:11 dalek rakudo/nom: Unbreaks the Parrot build/test, at least.
19:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/aeda9d0531
19:11 jnthn There they are in nom
19:16 timotimo nqp-jvm is going to take quite some time still
19:17 timotimo what with it being jvm and all :)
19:21 timotimo jnthn: want me to spectest either parrot or jvm with your latest changes?
19:24 jnthn timotimo: Yes, please
19:24 timotimo which one? :)
19:24 jnthn Both? :)
19:25 jnthn Or we can just look at the daily tomorrow... :)
19:25 timotimo well, jvm tends to fail after a few tests anyway
19:25 timotimo so i'm doing parrot first in any case
19:25 timotimo uh oh
19:25 timotimo ===SORRY!=== Error while compiling t/spec/S02-literals/char-by-name.rakudo.parrot
19:25 timotimo Unrecognized character name LINE FEED (LF)
19:25 timotimo is that expected?
19:26 jnthn yeah I set a Parrot one off and let it run through S02 and it just failed Unicode-y things
19:26 jnthn Due to met not having libicu
19:26 jnthn *me
19:26 timotimo OK.
19:26 jnthn That may be an icu missing thing
19:26 timotimo i think i should have libicu
19:26 timotimo > say "\c[SNOWMAN]"
19:26 timotimo
19:27 cooper joined #perl6
19:29 timotimo a few S05 ones explode, too
19:33 timotimo 34/43 for nqp-jvm/2014.03 ...
19:37 rurban joined #perl6
19:39 timotimo https://gist.github.com/anonymous/c9755350cb880d7137c1 ← jnthn, this is patrick^Wparrot
19:39 tadzik :D
19:39 tadzik http://www.wattix.com/blog/chilligan/thisispatrick.jpeg
19:40 cooper joined #perl6
19:49 dalek roast: f6606d2 | (David Warring david.warring@gmail.com)++ | integration/advent2013-day19.t:
19:49 dalek roast: fixed test plan @parrot
19:49 dalek roast: review: https://github.com/perl6/roast/commit/f6606d2b79
19:49 timotimo hmmm. how much longer until fantastic performance is reached, i wonder...
19:53 Alula joined #perl6
19:53 [Coke] do we have
19:54 [Coke] do we have anything resembling perl5's Tk?
19:54 xfix joined #perl6
19:55 timotimo resembling in what way?
19:55 timotimo would IUP be close enough for your tastes?
20:04 [Coke] yes, something like that would be fine.
20:04 timotimo well, IUP is something we do have. not that i've really tried it yet
20:04 [Coke] danke.
20:05 benabik … Indiana University of Pennsylvania?
20:05 timotimo i briefly looked at perl's Tk thing at some point and was pleased to see that it's a very abstract, but thoroughly thin layer over the Tcl module, which itself is hardly complex either
20:06 [Coke] does tadzik/perl6-Term-ANSIColor work on windows?
20:06 timotimo no
20:07 timotimo but there's a thingie that wraps programs that want to do ANSI escape codes and makes them work
20:07 timotimo work with windows console thingies
20:07 vendethiel windows console can very well do color
20:07 vendethiel I just think nobody knows how :p
20:08 * [Coke] will get his stuff working on mac first and go from there.
20:09 [Coke] is rakudo-moar at the point where I can install modules with panda now?
20:11 timotimo it has been for a while now :)
20:17 politico joined #perl6
20:17 politico left #perl6
20:23 timotimo http://t.h8.lv/p6bench/2014-04-11-rakudo_opt.html ← F5 for rakudo-parrot 2014.03 vs current
20:26 jnthn timotimo: Some imrpovements for on Parrot too, then. Nice. :)
20:26 timotimo yup
20:28 timotimo not nearly as impressive as the moarvm improvements, but there was much more work put into moar especially when compared to the cross-backend improvements
20:29 jnthn Aye
20:31 [Coke] timotimo: danke. needed a moar recent moar, it seems.
20:31 jnthn MOAR_REVISION/NQP_REVISION at HEAD should be fine.
20:31 [Coke] ==> Successfully installed JSON::Tiny
20:32 [Coke] ==> Fetching panda
20:32 [Coke] didn't I just fetch panda already?
20:32 retupmoca fetching it from the local folder into the .work folder, I'd guess
20:33 tadzik yeah
20:35 [Coke] https://gist.github.com/coke/10499446 - boom
20:35 [Coke] that's with a very fresh rakudo-moar install.
20:37 [Coke] ... running it a second time works? huh
20:37 rurban joined #perl6
20:40 tadzik :o
20:41 raiph anyone speak japanese well enough to explain matz's tweet reply (google translate says 'Appeal') to miyagawa's inevitable reply ('Perl 6') to nikkei_Linux's tweet?
20:41 raiph https://twitter.com/miyagawa/status/453790701889662976
20:42 raiph Is matz asking "what's the appeal?" Or that sounds appealing? ???
20:43 vendethiel raiph: what's the original tweet :p ?
20:43 raiph running the first tweet in the link above thru translate.google gives:
20:44 raiph Do you want to make any new language in a series of Matsumoto? The "programming language to learn while making" May Nikkei Linux In Part 2, we are looking for ideas for the language that you make from the next time. The idea is to (half-angle @) matz@ruby.or.jp or direct @ yukihiro_matz! # ruby
20:44 PerlJam "I approve" perhaps?
20:45 raiph Would be useful to hear a human translation of that too
20:46 raiph .oO ( mebbe need to cast a miyagawa summon-to-#perl6 spell )
20:48 moritz t/spec/integration/advent2013-day19.rakudo.parrot             (Wstat: 0 Tests: 11 Failed: 0) Parse errors: Bad plan.  You planned 20 tests but ran 11.
20:48 Alula_ joined #perl6
20:48 moritz that's the only p-spectest failure I get
20:48 TimToady I read it more as "I will undertake."
20:49 vendethiel (what does that mean ? I prolbaly didnt get the first tweet then ...)
20:49 TimToady well, I took the google translation to mean "Do you want to write the next Ruby?"
20:51 vendethiel you're good at google translate lang
20:51 vendethiel .oO( use google translate; mon $variable = 'salut'.changer('a' => 'b') )
20:51 timotimo brrr, rakudo-jvm benchmarks take ages
20:52 jnthn Turns out lex => loc is a whole lot trickier in Perl 6.
20:52 timotimo the jastcompiler merge is not yet in, right?
20:52 jnthn timotimo: It is, I think.
20:52 timotimo jnthn: what makes you say that? i thought we already knew? ;)
20:53 jnthn timotimo: Yeah, it's just that now I'm looking at it I'm seeing it's even more "fun" than first imagined. :)
20:53 timotimo oh my
20:53 jnthn The immediate fun being if you lower params and it's a multi-candidate and it needs a bind check, the binder can't find the lexicals.
20:54 jnthn Thing is that at present if we fail to bind, we use failover to the full-blown binder to produce errors.
20:55 moritz well, don't lower params then :-)
20:56 jnthn moritz: Yeah, that's the immediate thing to avoid.
20:56 jnthn moritz: However, we'd kinda like to given spesh would rather like that.
20:58 guru joined #perl6
21:01 moritz jnthn: so, teach the binder to bind to locals?
21:02 jnthn moritz: If it could see them they'd not be locals...
21:02 jnthn That's the point of the opt.
21:02 dylanwh binder full of locals
21:04 moritz uh, uhm...
21:05 jnthn In reality, for many common cases running the full-blown binder just to generate an error message is overkill.
21:05 jnthn It was just the easiest thing to do.
21:06 moritz also, this is where specialized calling conventions might come in, no?
21:07 moritz I remember some C compilers or linkers that pass arguments in registers instead of on the stack
21:07 moritz and fun like that :-)
21:12 timotimo 15/43 benchmarks
21:17 dayangkun joined #perl6
21:21 japhb timotimo: I'm quite backlogged, but I notice you highlighted me talking about some fun with the benchmark graphs.  Could you turn your various feature requests into GH issues for perl6-bench?  I don't want to lose all your good ideas.
21:22 japhb Also, if y'all haven't seen this, it's fun: http://alexnisnevich.github.io/untrusted/  (a text adventure game that you solve with snippets of code) -- mind you, it's JavaScript, but that would be a blast to convert to Perl 6.
21:23 klapperl joined #perl6
21:25 jnthn japhb: btw, just to say that p6bench in its current form is proving really great at the moemnt, with all the performance-related work going on :)
21:28 japhb jnthn: Excellent!  Really glad to hear it's worth the time I put into it, you know?  :-)
21:28 japhb Now to find a bit more of said time ...
21:29 denis_boyun_ joined #perl6
21:30 timotimo aye, the infrastructure is great
21:30 timotimo i just wish for more bells and whistles, now that the base thing already works pretty well ;)
21:30 japhb Heh.  AFK again for a bit.
21:33 dalek nqp: 6344535 | jnthn++ | src/vm/moar/QAST/QASTCompilerMAST.nqp:
21:33 dalek nqp: Support contvar lexicals on MoarVM.
21:33 dalek nqp:
21:33 dalek nqp: Will ease lowering of lexicals in Perl6::Optimizer.
21:33 dalek nqp: review: https://github.com/perl6/nqp/commit/6344535967
21:34 jnthn ugh. Trying to do it even for contvars gives me lots of spectest fail.
21:35 cognominal I probably lack background and probably missed much in the backlog, but I am baffled by jnthn vocabulary. What means poisoning, and lowering a variable?
21:38 rurban joined #perl6
21:38 vendethiel cognominal: this is just an attempt at killing something, really
21:39 timotimo poisoning means "consider any optimization attempt impossible"
21:39 vendethiel Murdering perl 6 bad performance, I mean
21:39 cognominal and lowering a variable?
21:39 timotimo for example, if we see an "eval", nothing we've believed in will stay the way it is
21:39 vendethiel move it from a scope to another one ?
21:39 timotimo not quite
21:40 timotimo in this case we're turning lexical variables into local variables
21:40 timotimo that's possible only if nothing "nested" can access these variables by name
21:40 timotimo an optimization closely related to that is inlining blocks at the QAST level
21:40 vendethiel still scope-related \_(ツ)_/
21:40 cognominal ok, that makes sense. This avoid to look for the variable value again and again.
21:41 timotimo when a block doesn't define its own lexical variables, it can just be turned into a Stmts node instead
21:41 jnthn Well, it's also a memory use opt
21:41 jnthn It menas closures won't close over things they needn't too
21:41 timotimo yes, and the lexpads we're creating end up smaller
21:41 jnthn But yeah, it enables easier block inlines
21:41 timotimo that should also be reflected in the serialized bytecode
21:41 timotimo or at least in load time or something
21:42 cognominal so the nice thing is that an optimisation open the path for another.
21:42 jnthn ah, I wasn't detecting EVAL properly...
21:42 jnthn cognominal: That's ver, very often the way
21:42 jnthn *very
21:42 jnthn cognominal: This also opens the way to escape analysis.
21:42 jnthn cognominal: Or helps.
21:42 timotimo right, locals are way easier to escape-analyze than lexicals are
21:42 jnthn Way easier. :)
21:42 jnthn Also spesh doesn't know how to analyze lexicals yet.
21:43 timotimo Alot easier? :)
21:44 jnthn :D
21:44 jnthn Hm, this spectest run looks a bit better.
21:44 timotimo ... 25/43 benchmarks ...
21:44 jnthn Not perfect though.
21:45 cognominal I suppose that allocating $_ and $/, $! in most blocks costs a lot so doing away with that when possible would be nice.
21:46 jnthn cognominal: That's one of the things I did earlier today for some very simple cases.
21:47 jnthn It's actually really hard to get rid of them, though.
21:47 jnthn Because they are all contextual.
21:47 cognominal nice.
21:48 jnthn You can do it if the block makes no method or sub calls, for example.
21:48 jnthn Which means a lot of the operators get it.
21:48 jnthn But seeing how to do it for, say, at_pos, postcircumfix, etc which of course need to call stuff is harder.
21:55 timotimo ... 28/43 ...
22:00 jnthn such slow...so wait...
22:02 timotimo hm. you were right btw. jastcompiler is already in nqp master
22:03 timotimo i'm really paying double for the jvm. first, it has a high startup time, but also it gets very fast towards the end, meaning it'll do a bunch more runs than the other backends
22:06 japhb bak again
22:07 timotimo heyo japhb :)
22:08 japhb So for all the optimization going on, I don't see things happening in #moarvm (since the spesh merge, that is), which indicates the more recent stuff is either NQP or Rakudo ... what's been getting optimized?
22:08 japhb heyo timotimo :-)
22:08 timotimo the optimizer is learning a few tricks, the core setting has seen a few micro-optimizations and hash and array access have learnt a new trick
22:08 dalek rakudo/varopt: 3fc1e57 | jnthn++ | src/Perl6/Optimizer.nqp:
22:08 dalek rakudo/varopt: Initial attempt at some basic lexical lowering.
22:08 dalek rakudo/varopt:
22:08 dalek rakudo/varopt: Causes a number of spectest regressions in its current state; also is
22:08 dalek rakudo/varopt: MoarVM-specific for now.
22:08 dalek rakudo/varopt: review: https://github.com/rakudo/rakudo/commit/3fc1e5764c
22:09 timotimo so far we've been accessing hashes and arrays for writing by returning a container that knew how to autovivify and then we could assign to that container
22:09 jnthn japhb: Yeah, optimizing the Rakudo and NQP bits of the stack of late. :)
22:09 timotimo that was pretty expensive, even if we could already see from the used syntax that it was going to be an assignment
22:09 timotimo ... 33/43 ...
22:09 jnthn japhb: Reading the bytecode dumps while working on spesh was helpful in pointing out some things.
22:10 jnthn japhb: Also looking at various C-level profiles to see where we spent effort, etc.
22:10 jnthn japhb: There's stuff to do up and down the stack, and sometimes doing things better higher up lets things lower down make a better job.
22:10 japhb Yeah, definitely makes sense
22:12 jnthn japhb: In other news, I submitted a talk on Perl 6 to some web conf and now will really, really have to do the async sockets. :)
22:12 telex joined #perl6
22:13 japhb What's the rough estimate of how much improvement we have overall?  Or are the optimizations so specific that its "If you do precise thing Q, it will get a ton faster -- otherwise about the same"?
22:13 japhb async sockets \o/
22:13 jnthn japhb: Well, I've been optimizing common things.
22:14 japhb jnthn: I figured you probably would, but sometimes we discover that Precise Thing Q may not be overwhelmingly common, but it *is* overwhelmingly slow, and that can be fixed.
22:14 jnthn japhb: Multi-method dispatch got a ton cheaper. Same for multi-sub dispatches we can't inline.
22:14 japhb Oooh, nice.
22:14 jnthn japhb: That affects almost everything.
22:14 japhb Yeah, I bet.
22:15 jnthn japhb: Also a lot of the basic operators were allocating and not using $_, $!, and $/ like every block normally does. They no longer do.
22:15 jnthn Basic array and hash assignment no longer has to do the WHENCE thing, which saves a closure clone and attr bind and invocation on every single time you assign to to an array/hash for the first time, if it's a simple assignment.
22:16 japhb wow
22:16 jnthn The underlying thing that let me do the multi-dispatch opt is also rather spesh friendly.
22:17 jnthn Can't take advantage of it there *yet*.
22:17 jnthn But know the steps to get there.
22:17 jnthn Put it together and we'll then be able to have Moar doing inlining of multis based on runtime type info.
22:17 japhb Very nice indeed.
22:17 japhb jnthn++  # And whoever else who helped!
22:18 jnthn Also, SSA turned out to be as nice a representation to have for spesh as I'd hoped. I'm happy with how it's working out in practice.
22:20 * japhb grins at news of Stuff Going Right
22:22 timotimo i'm also pleasantly surprised by how fast the specializer already seems to be
22:22 timotimo though it's still dropping things on the floor here and there
22:23 jnthn Well, for how young the codebase is there, it's doing well to cope with having all of Rakudo's spectest thrown at it.
22:23 jnthn When I was building it I had it building the CFG/SSA and then re-codegening every single invocation to make sure it was fairly robust. :)
22:24 jnthn The code to only do it on a threshold came after.
22:29 timotimo i agree that robustness should be our #1 priority in the early days
22:32 lizmat joined #perl6
22:34 * jnthn grabs a beer, starts to write a blog post
22:37 woolfy joined #perl6
22:37 lizmat jnthn++
22:38 timotimo oooh
22:38 timotimo jnthn: the benchmarks are ready for you to consume in just a minute :)
22:38 jnthn omg this beer is *awesome*!
22:38 japhb So is the optimization work planned to continue through the weekend, or is this a real good time to rebuild all my rakudos?  :-)
22:39 jnthn japhb: No, I'm going to slow down on the opts a bit now and focus more on making sure we can release a Moar Star and, hopefully, JVM Star this month.
22:39 japhb (awesome beer)++  # More efficient fuel for the jnthn beer-to-code conversion system
22:39 timotimo http://t.h8.lv/p6bench/2014-04-11-rakudo_opt.html - they're just one f5 away
22:39 japhb jnthn: excellent
22:39 jnthn http://www.ratebeer.com/beer/great-divide-espresso-oak-aged-yeti-imperial-stout/85174/ # the beer, for the curious :)
22:39 timotimo japhb: maybe jnthn will have a few more optimizations that i can do :)
22:39 rurban joined #perl6
22:40 timotimo i've already started on letting the moarvm specializer try to handle named parameters in addition to positionals
22:41 timotimo since it takes about 2h, i'll have to decide now whether i want to go to sleep early or run the 2014.03 jvm benchmarks ...
22:41 jnthn Yeah, looking at these I can see that the JVM backend needs to learn about multispec and needs me to finish the bind lowering.
22:42 timotimo interesting. i fed nqp-moarvn into the comparison, but it seems to be missing
22:42 timotimo i wonder what i did wrong?
22:42 japhb timotimo: Why do the graphs have a different rev for r-m than r-p and r-j?
22:42 japhb oh, hmmm
22:43 jnthn japhb: 'cus I busted the r-p/r-j build
22:43 timotimo japhb: r-p and r-j required a little fix to be built
22:43 jnthn japhb: The only difference is that one fix.
22:43 japhb Oh, gotcha.
22:44 japhb But we're missing the updated n-m then
22:44 japhb (which is what timotimo originally said)
22:52 rurban joined #perl6
23:00 BenGoldberg joined #perl6
23:02 woolfy1 joined #perl6
23:03 timotimo it's not important
23:09 * TimToady gets a slightly gleeful, slightly wistful smile on every graph where the blue p5 line rides higher than the p6 lines, especially when he thinks of the early p6-folk telling him "We like your language design, but we don't like your coding."  :)
23:11 vendethiel you must be smiling a lot then :P.
23:11 vendethiel 'twill come to an end, though -- jnthn's dealing with your smile !
23:11 TimToady 'course, it's also partly my own fault the p6 lines are lower :)
23:11 vendethiel (would the other part be beer :P ?)
23:12 TimToady dunno, there's probably equal parts of beer contributing to P5 and P6
23:16 timotimo i'm amazed that in some benchmarks, rakudo-jvm only ever almost reaches rakudo-moar
23:17 timotimo even when fully warmed up
23:17 jnthn Oh, once I teach Rakudo JVM the lessons I've taught Rakudo on Moar, I think it'll catch up. Especially since I figured out how to make multispec and indy place well together ;)
23:17 jnthn *play
23:18 timotimo \o/
23:19 timotimo and then MoarVM can play catch-up again, too!
23:24 havenwood joined #perl6
23:47 woolfy1 left #perl6
23:47 Bryanstein joined #perl6
23:56 average joined #perl6
23:56 average hey, just wanna ask a small question
23:56 average this image http://i.imgur.com/MdrKshO.png
23:56 average on the how-to-help page on rakudo that link is given http://rakudo.org/how-to-help/
23:57 average y u no ssl ? y nossla ?
23:57 average *nossla
23:57 average *nossl
23:57 average damn keyboard
23:57 average anyhow, it's easy to change the link to https://rt.perl.org/Public
23:58 average would this be ok, if the link would be changed to that ?
23:58 timotimo the point is that it leads to a pre-defined query
23:58 timotimo i've contacted the rt admins before about this, didn't get an answer and forgot about it
23:58 timotimo oh, huh
23:59 timotimo that link *is* meant to go exactly there
23:59 timotimo i don't have the rights to change the page i believe
23:59 average timotimo: yes, but, is that ok ? I mean.. logging into the RT over simple HTTP can cause credential leakage ..

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

Perl 6 | Reference Documentation | Rakudo