Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-10-30

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 sorear I hesitate to use the word "bad", it's very judgemental
00:01 envi joined #perl6
00:01 tadzik the PIR (Parrot intermediate representation, quite a low-level language) is barely faster than Perl 5 now, and not in all the cases I think
00:01 sorear parrot's scope is incredibly large for <20 active contributors
00:02 javuchi i was planing to implement a language on it
00:02 javuchi but if you say it is so bad
00:02 javuchi i have my doubts
00:02 sorear javuchi: are you doing high-performance computing work?
00:03 flussence PIR as fast as p5? That sounds quite encouraging actually
00:03 javuchi i'm looking for a good comprimise
00:03 sorear Parrot never had speed as its only goal.  if speed is *your* *only* goal, you want a VM that was designed for speed
00:04 javuchi can you point me (even if it is off-topic) a place for a good comparison between different open source virtual machines?
00:04 javuchi just fo the matter to choose for my project
00:04 tadzik flussence: well, I have my stupid benchmark I run from time to time
00:04 sjohnson Trashlord: that makes two of us (soon)
00:04 sorear there are, AFAIK, no good general VMs for high-performance work
00:04 sorear you'll need to put together your own... LLVM is a good starting point
00:05 Slimcea_boy joined #perl6
00:05 sorear javuchi: the great computer language shootout might be a good start
00:05 flussence bah, sorear beat me to it
00:05 flussence link: http://shootout.alioth.debian.org/
00:05 sorear javuchi: if you have other goals besides speed, now would be a good time to mention them
00:06 javuchi i'm looking for something generalist, like parrot is
00:06 javuchi easy assembler
00:06 javuchi small
00:06 javuchi well mainteined
00:06 javuchi that kind of things
00:07 constant joined #perl6
00:07 constant left #perl6
00:07 constant joined #perl6
00:08 sorear Parrot's #1 goal is to make developing languages easy
00:09 javuchi that's why i like parrot
00:09 javuchi the problem is speed
00:09 javuchi when is it getting better?
00:10 tadzik every day. Slowly, yes. But the GC is being worked on, and there are plans for the new opcode set, leading to better JIT... one day
00:10 javuchi well... it is funny, because it started in 2003 if i'm not wrong
00:11 javuchi should i wait until 2020 for a reasonable speed?
00:12 silug joined #perl6
00:13 dukeleto javuchi: would you like to help make parrot faster?
00:14 tadzik I'm sure #parrot folks will give you more appropriate answers. However, I see Parrot getting faster every release, sometimes twice as fast, sometimes 30% faster. And the big changes are still before'em
00:15 javuchi sure, why not dukeleto
00:20 sorear if you read about the history of the parrot project you'll see that it's studded with infighting and politics
00:21 sorear that's basically behind us now, but it still means that you can't count 10 years as progress
00:22 javuchi left #perl6
00:24 dalek 6model: 3629a41 | jnthn++ | dotnet/ (3 files):
00:24 dalek 6model: [dotnet] Various tweaks to get handler setup working enough for us to set up return exception handlers.
00:24 dalek 6model: review: http://github.com/jnthn/6model/commit/3629a414155800a142b85e0f93e4ced33fc4a621
00:24 dalek 6model: b11ad22 | jnthn++ | t/nqp/ (2 files):
00:24 dalek 6model: We now pass 20-return.t and 48-closure.t.
00:24 dalek 6model: review: http://github.com/jnthn/6model/commit/b11ad221ca8501b2d035ef96bedb5d06eddbccae
00:25 Limbic_Region actually, I am surprised I can't find a better description of the road map than http://trac.parrot.org/parrot/roadmap
00:25 * Limbic_Region is going to wander over to #parrot and ask there
00:27 stkowski left #perl6
00:41 dnl- joined #perl6
00:43 jaldhar joined #perl6
00:44 tadzik goodnight o/
00:45 tadzik left #perl6
00:45 dnl left #perl6
00:55 jferrero left #perl6
01:01 krakan joined #perl6
01:03 araujo left #perl6
01:10 Sarten-X left #perl6
01:10 krakan left #perl6
01:21 _twitch joined #perl6
01:24 Sarten-X joined #perl6
01:25 estrabd_afk left #perl6
01:26 Slimcea_boy left #perl6
01:28 cdarroch left #perl6
01:32 araujo joined #perl6
01:34 * jnthn -> sleep
01:43 krakan joined #perl6
01:43 patspam left #perl6
01:48 krakan left #perl6
01:55 risou left #perl6
02:06 krakan joined #perl6
02:11 krakan left #perl6
02:20 krakan joined #perl6
02:20 nexusone joined #perl6
02:28 krakan left #perl6
02:28 krakan joined #perl6
02:35 krakan left #perl6
02:53 dnl- left #perl6
02:58 eternaleye_ joined #perl6
03:11 tylercurtis joined #perl6
03:30 wooden left #perl6
03:36 y3llow_ joined #perl6
03:38 nymacro joined #perl6
03:38 nymacro left #perl6
03:41 krakan joined #perl6
03:41 wooden joined #perl6
03:41 wooden left #perl6
03:41 wooden joined #perl6
03:46 krakan left #perl6
03:54 wooden left #perl6
03:55 wooden joined #perl6
03:55 wooden left #perl6
03:55 wooden joined #perl6
04:00 krakan joined #perl6
04:15 Sarten-X left #perl6
04:16 ggoebel left #perl6
04:18 _twitch left #perl6
04:38 meppl joined #perl6
04:40 eternaleye rakudo: .say for (Int ~~ Nil), (1 ~~ Nil), (Mu ~~ Nil)
04:40 p6eval rakudo 479650: OUTPUT«0␤0␤0␤»
04:41 eternaleye Oh good, it matches the spec' now
04:42 eternaleye Or at least, what was stated to be correct last time I tried that and got 1\n0\n1
04:42 nexusone left #perl6
05:01 sorear I wonder if there's any way to implement lists in Perl 6 that's as efficient as the Perl 5 way.
05:01 agentzh joined #perl6
05:03 Sarten-X joined #perl6
05:06 sorear TimToady: Who do I get to credit with the devilish genius of the MARK stack?
05:07 Limbic_Region left #perl6
05:13 toebu joined #perl6
05:20 pythonian4000afk is now known as pythonian4000
05:28 sorear current niecza, before lists refactor: 56 us/cycle on perf/itmark.pl
05:30 sorear 600us rakudo; 158ns perl5 :/
05:31 sorear still 400 times slower
05:35 sorear 117ns for Parrot.  I'm amazed.
05:40 dalek niecza/master: eb2e899 | sorear++ | perf/itmark.p (2 files):
05:40 dalek niecza/master: Add Perl 5 and PIR versions of itmark
05:40 dalek niecza/master: review: http://github.com/sorear/niecza/commit/eb2e899c3e2dae5a42b4341cbdc92da094aeeebf
06:41 Trashlord left #perl6
06:42 araujo left #perl6
06:43 Trashlord joined #perl6
06:53 agentzh left #perl6
06:56 Chillance left #perl6
07:08 _kaare joined #perl6
07:35 javuchi joined #perl6
07:35 javuchi left #perl6
07:49 kanishka joined #perl6
07:55 fda314925 left #perl6
07:56 fda314925 joined #perl6
07:58 kanishka left #perl6
07:59 tadzik joined #perl6
07:59 tadzik hello
08:00 plobsing left #perl6
08:15 drbean joined #perl6
08:42 araujo joined #perl6
08:48 Axius joined #perl6
08:51 Ross joined #perl6
08:56 mavrc joined #perl6
09:00 Axius_ joined #perl6
09:03 Lorn left #perl6
09:03 Axius left #perl6
09:08 Guest59783 joined #perl6
09:14 Lorn joined #perl6
09:35 Axius_ left #perl6
09:36 am0c^ joined #perl6
10:04 tadzik left #perl6
10:04 kjeldahl joined #perl6
10:10 icwiener joined #perl6
10:10 molaf joined #perl6
10:13 meteorjay joined #perl6
10:15 Ross left #perl6
10:19 timbunce joined #perl6
10:20 x3nU omg difference in speed beetwen rakudo 2010.10 and older is amazing
10:20 x3nU it's because that .flip change probably
10:20 x3nU my euler problem 36 script
10:20 x3nU now completes in much less than half hour
10:21 x3nU on older versions it took half day
10:32 frettled nice!
10:35 pythonian4000 is now known as pythonian4000afk
10:36 colbseton` joined #perl6
10:56 jnthn oh hai, #perl6
10:58 Gothmog_ joined #perl6
11:01 ggoebel joined #perl6
11:02 tadzik joined #perl6
11:05 wamba joined #perl6
11:20 colomon \o
11:21 tadzik o/
11:22 am0c^ left #perl6
11:22 jnthn o/ colomon, tadzik
11:44 MayDaniel joined #perl6
11:56 meppl left #perl6
12:04 kcwu left #perl6
12:07 kcwu joined #perl6
12:08 MayDaniel left #perl6
12:09 Lorn left #perl6
12:18 muixirt joined #perl6
12:19 dnl joined #perl6
12:20 dnl moinsen
12:26 MayDaniel joined #perl6
12:30 clkao joined #perl6
12:30 clkao left #perl6
12:31 clkao joined #perl6
12:35 risou joined #perl6
12:40 MayDaniel left #perl6
12:46 Lorn joined #perl6
12:48 whiteknight joined #perl6
12:48 DarthGandalf left #perl6
12:49 Chillance joined #perl6
12:54 DarthGandalf joined #perl6
13:04 Ross joined #perl6
13:04 Ross left #perl6
13:04 Ross joined #perl6
13:16 MayDaniel joined #perl6
13:21 Patterner left #perl6
13:32 Psyche^ joined #perl6
13:32 Psyche^ is now known as Patterner
13:46 icwiener_ joined #perl6
13:47 icwiener left #perl6
13:47 dnl left #perl6
13:55 dnl joined #perl6
14:00 colomon_ joined #perl6
14:01 colomon left #perl6
14:04 colomon_ left #perl6
14:05 sftp left #perl6
14:06 wamba left #perl6
14:10 dalek 6model: e455223 | jnthn++ | dotnet/runtime/Metamodel/Representations/RakudoCodeRef.cs:
14:10 dalek 6model: [dotnet] Comment improvements, and give our code object representation a slot for any dispatch candidates it will operate over, in the case that it's a dispatch routine.
14:10 dalek 6model: review: http://github.com/jnthn/6model/commit/e4552237bb94def23db09af61137523a61fd0e86
14:10 prettyrawr joined #perl6
14:11 dnl left #perl6
14:11 colomon joined #perl6
14:12 prettyrawr left #perl6
14:14 sftp joined #perl6
14:16 patspam joined #perl6
14:26 masonkramer joined #perl6
14:30 sftp left #perl6
14:45 Ross left #perl6
14:54 icwiener joined #perl6
14:55 icwiener_ left #perl6
14:58 dalek 6model: 2ad10c2 | jnthn++ | / (6 files):
14:58 dalek 6model: [dotnet] This does the core of the multi-dispatch switch. Rip out the old separate candidate list storage. Store multi candidates in the dispatch routine's dispatchees slot (instantiations for nested scopes NYI, though). Use nearest outer dispatch list when entering the multi dispatcher, tossing all the slow and failure-prone named lookup stuff. Update NQPSetting to not pass the name along to the dispatcher entry call. This passes all tests we did bef
14:58 dalek 6model: review: http://github.com/jnthn/6model/commit/2ad10c2d03b518868ef03d9ad7101d368da68285
15:01 icwiener_ joined #perl6
15:02 icwiener left #perl6
15:05 icwiener joined #perl6
15:06 sftp joined #perl6
15:09 icwiener_ left #perl6
15:26 colbseton` left #perl6
15:26 colbseton` joined #perl6
15:33 tadzik left #perl6
15:43 dalek rakudo: 5f5bae4 | Util++ | src/core/Complex.pm:
15:43 dalek rakudo: [core/Complex.pm] Fixed indenting
15:43 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5f5bae446432c01600606d5a154f8477f4f917c9
15:46 risou left #perl6
15:58 dalek 6model: 0d78282 | jnthn++ | dotnet/ (2 files):
15:58 dalek 6model: [dotnet] Add experimental support for :scope('outer') to PAST::Var (curious to see how pmichaud++ reacts), which does a lexical lookup but skipping the current scope. Currently, bind not supported, and of course :isdecl is invalid.
15:58 dalek 6model: review: http://github.com/jnthn/6model/commit/0d7828213e3ba966575fba4177a65bcb80cd4666
15:58 dalek 6model: aa4bd85 | jnthn++ | dotnet/ (2 files):
15:58 dalek 6model: [dotnet] Instantiate protos in inner routines to create dispatch routines with the candidate list for that block. We actually do this by copying the most immediately outer instantiation's candidate list and then adding the new ones to the list, which seems likely-ish to get closure semantics right while giving the semantics as per spec. It's very much an instantiation in that it shares body and other bits with the original proto, though.
15:58 dalek 6model: review: http://github.com/jnthn/6model/commit/aa4bd8523af9891702eb8989869184977102752c
15:58 jnthn TimToady++ TimToady++ # updated multi spec is SO much saner to implement
16:13 wamba joined #perl6
16:19 dnl joined #perl6
16:30 dalek 6model: b3e555f | jnthn++ | dotnet/runtime/Runtime/ (2 files):
16:30 dalek 6model: [dotnet] Tiny refactor to enable a start to be made integrating the multi-dispatch cache.
16:30 dalek 6model: review: http://github.com/jnthn/6model/commit/b3e555f7c58e2a6ecb0479b05324e64b1e083c62
16:30 dalek 6model: 92997a3 | jnthn++ | dotnet/runtime/ (2 files):
16:30 dalek 6model: [dotnet] Integrate that multi-dispatch cache I designed on the train a while back. Seems to help, or so says the (RedGate profiler)++.
16:30 dalek 6model: review: http://github.com/jnthn/6model/commit/92997a3ba739a43b280ea8ec6f3fbced070ffec2
16:35 masonkramer left #perl6
16:39 * araujo making some changes to get 'infix' notation
16:41 Guest59783 left #perl6
16:55 Ross joined #perl6
17:15 MayDaniel left #perl6
17:16 orafu joined #perl6
17:18 espadrine joined #perl6
17:22 icwiener_ joined #perl6
17:23 espadrine left #perl6
17:23 espadrine_ joined #perl6
17:23 icwiener left #perl6
17:30 Chat1770 joined #perl6
17:30 Chat1770 left #perl6
17:33 timbunce left #perl6
17:42 Bzek left #perl6
17:48 Bzek joined #perl6
18:05 MayDaniel joined #perl6
18:16 dnl left #perl6
18:20 dnl joined #perl6
18:33 Trashlord left #perl6
18:38 radu joined #perl6
18:40 radu left #perl6
18:42 envi left #perl6
18:44 jhuni joined #perl6
18:49 x3nU left #perl6
18:50 alester joined #perl6
18:50 x3nU joined #perl6
18:52 MayDaniel left #perl6
18:52 molaf_ joined #perl6
18:54 dukeleto If anyone would like to be involved with Google Code-In, you are cordially invited to #gci on irc.perl.org
18:55 molaf left #perl6
18:56 Lorn left #perl6
19:00 * mberends joins
19:06 molaf_ left #perl6
19:12 rindolf joined #perl6
19:12 rindolf Hello everyone.
19:13 Lorn joined #perl6
19:20 colbseton` left #perl6
19:23 jferrero joined #perl6
19:46 MayDaniel joined #perl6
19:51 Lorn left #perl6
19:53 patspam left #perl6
19:54 patspam joined #perl6
19:59 Chat2151 joined #perl6
19:59 Chat2151 left #perl6
20:11 dalek 6model: cac2fa6 | jnthn++ | dotnet/compiler/ (2 files):
20:11 dalek 6model: [dotnet] Update JnthnNQP to parse a * as the sole body of a proto and turn it into a dispatcher call. Do it a bit differently from STD, since we don't parse * at all otherwise.
20:11 dalek 6model: review: http://github.com/jnthn/6model/commit/cac2fa66e4cea7393f3d5eea163a32c6f655d92a
20:11 dalek 6model: 413bae8 | jnthn++ | common/NQP/NQPSetting.pm:
20:11 dalek 6model: [common] Replace explicit multi-dispatcher ops with a proto with a plain body of *.
20:11 dalek 6model: review: http://github.com/jnthn/6model/commit/413bae8e277e66468edc61f221c71040b10a0684
20:15 wamba left #perl6
20:17 MayDaniel left #perl6
20:21 icwiener_ left #perl6
20:22 Lorn joined #perl6
20:26 jnthn TimToady: You ever considered what happens in a proto if instead of actually doing the multi invocation, somebody returns a closrue that will go and do it later on? Seems that it just works out naturally though... http://gist.github.com/655709
20:27 dalek 6model: aa95937 | jnthn++ | dotnet/compiler/ (2 files):
20:27 dalek 6model: [dotnet] Implement {*} parsing in JnthnNQP so that we can enter the multi-dispatcher at any chose point in the proto.
20:27 dalek 6model: review: http://github.com/jnthn/6model/commit/aa95937b4aeb06068c0a27ac070890a9a09c2e09
20:27 dalek 6model: df06e98 | jnthn++ | dotnet/runtime/Runtime/Ops.cs:
20:27 dalek 6model: [dotnet] Fix a silly thinko - we want the capture passed to the proto, always.
20:27 dalek 6model: review: http://github.com/jnthn/6model/commit/df06e984dbd345a039a4c9f2fa886ce28716ab45
20:30 molaf joined #perl6
20:39 pythonian4000afk is now known as pythonian4000
20:41 rindolf left #perl6
20:45 justatheory left #perl6
20:46 justatheory joined #perl6
20:52 mavrc left #perl6
21:05 TimToady jnthn: that's fine, as long as we still end up with a new &foo in each new multi scope
21:06 jnthn TimToady: Oh, we certainly do
21:06 jnthn TimToady: It's a seperate object instance. :-)
21:07 alester left #perl6
21:09 jnthn With a separate candidate list stored per instance.
21:13 whiteknight left #perl6
21:27 MayDaniel joined #perl6
21:35 x3nU is now known as Yorp
21:35 Yorp is now known as x3nU
21:38 icwiener joined #perl6
21:46 _kaare left #perl6
21:56 jnthn rakudo: my @x = 1,2,3; my $i = @x.iterator; say $i.WHAT
21:56 p6eval rakudo 5f5bae:  ( no output )
21:56 jnthn rakudo: say "alive"
21:57 p6eval rakudo 5f5bae: OUTPUT«alive␤»
21:57 jnthn rakudo: my @x = 1,2,3; my $i = @x.iterator; say "alive"
21:57 p6eval rakudo 5f5bae: OUTPUT«alive␤»
21:57 jnthn rakudo: my @x = 1,2,3; my $i = @x.iterator; $i.^methods(:local)>>.name>>.say
21:57 p6eval rakudo 5f5bae: OUTPUT«new␤reify␤»
21:57 jnthn rakudo: my @x = 1,2,3; my $i = @x.iterator; say $i.get; say $i.get;
21:57 p6eval rakudo 5f5bae: OUTPUT«Method 'get' not found for invocant of class 'ListIter'␤  in main program body at line 22:/tmp/x1tyf9USTf␤»
21:57 sorear jnthn: Would you be comfortable with declaring Iterator to be an implementation detail and requiring portable code to use gather/take, series ops, for loops, etc?
21:58 jnthn sorear: I'd guess "no"
21:58 jnthn sorear: But pmichaud is the guy who understands this stuff. :-)
21:58 * jnthn tries to work out what to call on an iterator to get a value from it.
21:59 jnthn rakudo: my @x = 1,2,3; my $i = @x.iterator; say $i.munch;
21:59 sorear You can't
21:59 p6eval rakudo 5f5bae: OUTPUT«Method 'munch' not found for invocant of class 'ListIter'␤  in main program body at line 22:/tmp/Grqu8UBviF␤»
21:59 sorear That's not how Rakudo iterators work
21:59 sorear I do -not- want to be constrained to the Rakudo iterator model
21:59 dalek 6model: d6d3205 | jnthn++ | dotnet/LHF.txt:
21:59 dalek 6model: [dotnet] Add a Low Hanging Fruit file to suggest jumping in points for anyone interested in doing so.
21:59 dalek 6model: review: http://github.com/jnthn/6model/commit/d6d32050aa4bf22764b6636bb269d2277dbb8245
22:00 sorear if $i is a RakudoIterator, $i.reify returns a Parcel
22:00 sorear each element of $i.reify is either a value or a fresh RakudoIterator
22:01 sorear look at !fill in src/builtins/List.pir for how to extract a value from a RakudoIterator - it requires a loop and the splice op
22:02 jnthn Ah, yes, it's an immutable iterator model.
22:05 jnthn sorear: I'm mostly looking 'cus I'm wanting to do for loops in NQP.Net.
22:05 jnthn NQP on Parrot just uses the Parrot idea of iterators.
22:06 sorear I spent much time last week redesigning for loops for Niecza
22:08 lue ohai o/
22:19 jferrero left #perl6
22:24 proller_ joined #perl6
22:24 proller joined #perl6
22:26 envi joined #perl6
22:26 proller left #perl6
22:36 jnthn sorear: How did that end up looking?
22:36 jnthn sorear: Does it call map?
22:37 jnthn I guess the devil is in how your .map looks. :-)
22:38 jnthn *devil in the detail
22:38 sorear Well, I haven't had tuits to finish coding the new design
22:39 jnthn Rakudo went through a LOT of iterations of list design before getting to what we have today, fwiw. This has been the least problematic design so far.
22:41 sorear I'm using a lot of elements of the design
22:41 sorear I could probably even make it compatible, but only by using horribly wrong names for stuff
22:45 jnthn Eh well, I'll try and figure out for in NQP.NET tomorrow or so. :-)
22:45 jnthn Quite happy to have got the multi dispatch stuff in today. :-)
22:58 wooden left #perl6
23:01 wooden joined #perl6
23:01 tadzik joined #perl6
23:03 tadzik1 joined #perl6
23:06 tadzik left #perl6
23:06 wooden left #perl6
23:07 tadzik1 is now known as tadzik
23:25 Util .new()  vs  .^new()
23:26 Util When creating a new object of class Foo from within some other method of that class,
23:26 Util which is the more correct way to call new() without hardcoding the classname?
23:29 tadzik left #perl6
23:39 icwiener left #perl6
23:43 muixirt left #perl6
23:48 MayDaniel left #perl6
23:53 Ross left #perl6
23:57 pythonian4000 is now known as pythonian4000afk

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

Perl 6 | Reference Documentation | Rakudo