»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
sorear I hesitate to use the word "bad", it's very judgemental 00:00
00:01 envi joined
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
javuchi i was planing to implement a language on it 00:02
but if you say it is so bad
i have my doubts
sorear javuchi: are you doing high-performance computing work?
flussence PIR as fast as p5? That sounds quite encouraging actually 00:03
javuchi i'm looking for a good comprimise
sorear Parrot never had speed as its only goal. if speed is *your* *only* goal, you want a VM that was designed for speed
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
just fo the matter to choose for my project
tadzik flussence: well, I have my stupid benchmark I run from time to time
sjohnson Trashlord: that makes two of us (soon)
sorear there are, AFAIK, no good general VMs for high-performance work
you'll need to put together your own... LLVM is a good starting point
00:05 Slimcea_boy joined
sorear javuchi: the great computer language shootout might be a good start 00:05
flussence bah, sorear beat me to it
link: shootout.alioth.debian.org/
sorear javuchi: if you have other goals besides speed, now would be a good time to mention them
javuchi i'm looking for something generalist, like parrot is 00:06
easy assembler
small
well mainteined
that kind of things
00:07 constant joined, constant left, constant joined
sorear Parrot's #1 goal is to make developing languages easy 00:08
javuchi that's why i like parrot 00:09
the problem is speed
when is it getting better?
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
should i wait until 2020 for a reasonable speed? 00:11
00:12 silug joined
dukeleto javuchi: would you like to help make parrot faster? 00:13
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:14
javuchi sure, why not dukeleto 00:15
sorear if you read about the history of the parrot project you'll see that it's studded with infighting and politics 00:20
that's basically behind us now, but it still means that you can't count 10 years as progress 00:21
00:22 javuchi left
dalek odel: 3629a41 | jnthn++ | dotnet/ (3 files):
[dotnet] Various tweaks to get handler setup working enough for us to set up return exception handlers.
00:24
odel: b11ad22 | jnthn++ | t/nqp/ (2 files):
We now pass 20-return.t and 48-closure.t.
Limbic_Region actually, I am surprised I can't find a better description of the road map than trac.parrot.org/parrot/roadmap 00:25
Limbic_Region is going to wander over to #parrot and ask there
00:27 stkowski left 00:41 dnl- joined 00:43 jaldhar joined
tadzik goodnight o/ 00:44
00:45 tadzik left, dnl left 00:55 jferrero left 01:01 krakan joined 01:03 araujo left 01:10 Sarten-X left, krakan left 01:21 _twitch joined 01:24 Sarten-X joined 01:25 estrabd_afk left 01:26 Slimcea_boy left 01:28 cdarroch left 01:32 araujo joined
jnthn -> sleep 01:34
01:43 krakan joined, patspam left 01:48 krakan left 01:55 risou left 02:06 krakan joined 02:11 krakan left 02:20 krakan joined, nexusone joined 02:28 krakan left, krakan joined 02:35 krakan left 02:53 dnl- left 02:58 eternaleye_ joined 03:11 tylercurtis joined 03:30 wooden left 03:36 y3llow_ joined 03:38 nymacro joined, nymacro left 03:41 krakan joined, wooden joined, wooden left, wooden joined 03:46 krakan left 03:54 wooden left 03:55 wooden joined, wooden left, wooden joined 04:00 krakan joined 04:15 Sarten-X left 04:16 ggoebel left 04:18 _twitch left 04:38 meppl joined
eternaleye rakudo: .say for (Int ~~ Nil), (1 ~~ Nil), (Mu ~~ Nil) 04:40
p6eval rakudo 479650: OUTPUT«0␤0␤0␤»
eternaleye Oh good, it matches the spec' now 04:41
Or at least, what was stated to be correct last time I tried that and got 1\n0\n1 04:42
04:42 nexusone left
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
05:01 agentzh joined 05:03 Sarten-X joined
sorear TimToady: Who do I get to credit with the devilish genius of the MARK stack? 05:06
05:07 Limbic_Region left 05:13 toebu joined 05:20 pythonian4000afk is now known as pythonian4000
sorear current niecza, before lists refactor: 56 us/cycle on perf/itmark.pl 05:28
600us rakudo; 158ns perl5 :/ 05:30
still 400 times slower 05:31
117ns for Parrot. I'm amazed. 05:35
dalek ecza/master: eb2e899 | sorear++ | perf/itmark.p (2 files):
Add Perl 5 and PIR versions of itmark
05:40
06:41 Trashlord left 06:42 araujo left 06:43 Trashlord joined 06:53 agentzh left 06:56 Chillance left 07:08 _kaare joined 07:35 javuchi joined, javuchi left 07:49 kanishka joined 07:55 fda314925 left 07:56 fda314925 joined 07:58 kanishka left 07:59 tadzik joined
tadzik hello 07:59
08:00 plobsing left 08:15 drbean joined 08:42 araujo joined 08:48 Axius joined 08:51 Ross joined 08:56 mavrc joined 09:00 Axius_ joined 09:03 Lorn left, Axius left 09:08 Guest59783 joined 09:14 Lorn joined 09:35 Axius_ left 09:36 am0c^ joined 10:04 tadzik left, kjeldahl joined 10:10 icwiener joined, molaf joined 10:13 meteorjay joined 10:15 Ross left 10:19 timbunce joined
x3nU omg difference in speed beetwen rakudo 2010.10 and older is amazing 10:20
it's because that .flip change probably
my euler problem 36 script
now completes in much less than half hour
on older versions it took half day 10:21
frettled nice! 10:32
10:35 pythonian4000 is now known as pythonian4000afk 10:36 colbseton` joined
jnthn oh hai, #perl6 10:56
10:58 Gothmog_ joined 11:01 ggoebel joined 11:02 tadzik joined 11:05 wamba joined
colomon \o 11:20
tadzik o/ 11:21
11:22 am0c^ left
jnthn o/ colomon, tadzik 11:22
11:44 MayDaniel joined 11:56 meppl left 12:04 kcwu left 12:07 kcwu joined 12:08 MayDaniel left 12:09 Lorn left 12:18 muixirt joined 12:19 dnl joined
dnl moinsen 12:20
12:26 MayDaniel joined 12:30 clkao joined, clkao left 12:31 clkao joined 12:35 risou joined 12:40 MayDaniel left 12:46 Lorn joined 12:48 whiteknight joined, DarthGandalf left 12:49 Chillance joined 12:54 DarthGandalf joined 13:04 Ross joined, Ross left, Ross joined 13:16 MayDaniel joined 13:21 Patterner left 13:32 Psyche^ joined, Psyche^ is now known as Patterner 13:46 icwiener_ joined 13:47 icwiener left, dnl left 13:55 dnl joined 14:00 colomon_ joined 14:01 colomon left 14:04 colomon_ left 14:05 sftp left 14:06 wamba left
dalek odel: e455223 | jnthn++ | dotnet/runtime/Metamodel/Representations/RakudoCodeRef.cs:
[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
14:10 prettyrawr joined 14:11 dnl left, colomon joined 14:12 prettyrawr left 14:14 sftp joined 14:16 patspam joined 14:26 masonkramer joined 14:30 sftp left 14:45 Ross left 14:54 icwiener joined 14:55 icwiener_ left
dalek odel: 2ad10c2 | jnthn++ | / (6 files):
[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
15:01 icwiener_ joined 15:02 icwiener left 15:05 icwiener joined 15:06 sftp joined 15:09 icwiener_ left 15:26 colbseton` left, colbseton` joined 15:33 tadzik left
dalek kudo: 5f5bae4 | Util++ | src/core/Complex.pm:
[core/Complex.pm] Fixed indenting
15:43
15:46 risou left
dalek odel: 0d78282 | jnthn++ | dotnet/ (2 files):
[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
odel: aa4bd85 | jnthn++ | dotnet/ (2 files):
[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.
jnthn TimToady++ TimToady++ # updated multi spec is SO much saner to implement
16:13 wamba joined 16:19 dnl joined
dalek odel: b3e555f | jnthn++ | dotnet/runtime/Runtime/ (2 files):
[dotnet] Tiny refactor to enable a start to be made integrating the multi-dispatch cache.
16:30
odel: 92997a3 | jnthn++ | dotnet/runtime/ (2 files):
[dotnet] Integrate that multi-dispatch cache I designed on the train a while back. Seems to help, or so says the (RedGate profiler)++.
16:35 masonkramer left
araujo making some changes to get 'infix' notation 16:39
16:41 Guest59783 left 16:55 Ross joined 17:15 MayDaniel left 17:16 orafu joined 17:18 espadrine joined 17:22 icwiener_ joined 17:23 espadrine left, espadrine_ joined, icwiener left 17:30 Chat1770 joined, Chat1770 left 17:33 timbunce left 17:42 Bzek left 17:48 Bzek joined 18:05 MayDaniel joined 18:16 dnl left 18:20 dnl joined 18:33 Trashlord left 18:38 radu joined 18:40 radu left 18:42 envi left 18:44 jhuni joined 18:49 x3nU left 18:50 alester joined, x3nU joined 18:52 MayDaniel left, molaf_ joined
dukeleto If anyone would like to be involved with Google Code-In, you are cordially invited to #gci on irc.perl.org 18:54
18:55 molaf left 18:56 Lorn left
mberends joins 19:00
19:06 molaf_ left 19:12 rindolf joined
rindolf Hello everyone. 19:12
19:13 Lorn joined 19:20 colbseton` left 19:23 jferrero joined 19:46 MayDaniel joined 19:51 Lorn left 19:53 patspam left 19:54 patspam joined 19:59 Chat2151 joined, Chat2151 left
dalek odel: cac2fa6 | jnthn++ | dotnet/compiler/ (2 files):
[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
odel: 413bae8 | jnthn++ | common/NQP/NQPSetting.pm:
[common] Replace explicit multi-dispatcher ops with a proto with a plain body of *.
20:15 wamba left 20:17 MayDaniel left 20:21 icwiener_ left 20:22 Lorn joined
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... gist.github.com/655709 20:26
dalek odel: aa95937 | jnthn++ | dotnet/compiler/ (2 files):
[dotnet] Implement {*} parsing in JnthnNQP so that we can enter the multi-dispatcher at any chose point in the proto.
20:27
odel: df06e98 | jnthn++ | dotnet/runtime/Runtime/Ops.cs:
[dotnet] Fix a silly thinko - we want the capture passed to the proto, always.
20:30 molaf joined 20:39 pythonian4000afk is now known as pythonian4000 20:41 rindolf left 20:45 justatheory left 20:46 justatheory joined 20:52 mavrc left
TimToady jnthn: that's fine, as long as we still end up with a new &foo in each new multi scope 21:05
jnthn TimToady: Oh, we certainly do 21:06
TimToady: It's a seperate object instance. :-)
21:07 alester left
jnthn With a separate candidate list stored per instance. 21:09
21:13 whiteknight left 21:27 MayDaniel joined 21:35 x3nU is now known as Yorp, Yorp is now known as x3nU 21:38 icwiener joined 21:46 _kaare left
jnthn rakudo: my @x = 1,2,3; my $i = @x.iterator; say $i.WHAT 21:56
p6eval rakudo 5f5bae: ( no output )
jnthn rakudo: say "alive"
p6eval rakudo 5f5bae: OUTPUT«alive␤» 21:57
jnthn rakudo: my @x = 1,2,3; my $i = @x.iterator; say "alive"
p6eval rakudo 5f5bae: OUTPUT«alive␤»
jnthn rakudo: my @x = 1,2,3; my $i = @x.iterator; $i.^methods(:local)>>.name>>.say
p6eval rakudo 5f5bae: OUTPUT«new␤reify␤»
jnthn rakudo: my @x = 1,2,3; my $i = @x.iterator; say $i.get; say $i.get;
p6eval rakudo 5f5bae: OUTPUT«Method 'get' not found for invocant of class 'ListIter'␤ in main program body at line 22:/tmp/x1tyf9USTf␤»
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?
jnthn sorear: I'd guess "no" 21:58
sorear: But pmichaud is the guy who understands this stuff. :-)
jnthn tries to work out what to call on an iterator to get a value from it.
rakudo: my @x = 1,2,3; my $i = @x.iterator; say $i.munch; 21:59
sorear You can't
p6eval rakudo 5f5bae: OUTPUT«Method 'munch' not found for invocant of class 'ListIter'␤ in main program body at line 22:/tmp/Grqu8UBviF␤»
sorear That's not how Rakudo iterators work
I do -not- want to be constrained to the Rakudo iterator model
dalek odel: d6d3205 | jnthn++ | dotnet/LHF.txt:
[dotnet] Add a Low Hanging Fruit file to suggest jumping in points for anyone interested in doing so.
sorear if $i is a RakudoIterator, $i.reify returns a Parcel 22:00
each element of $i.reify is either a value or a fresh RakudoIterator
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:01
jnthn Ah, yes, it's an immutable iterator model. 22:02
sorear: I'm mostly looking 'cus I'm wanting to do for loops in NQP.Net. 22:05
NQP on Parrot just uses the Parrot idea of iterators.
sorear I spent much time last week redesigning for loops for Niecza 22:06
lue ohai o/ 22:08
22:19 jferrero left 22:24 proller_ joined, proller joined 22:26 envi joined, proller left
jnthn sorear: How did that end up looking? 22:36
sorear: Does it call map?
I guess the devil is in how your .map looks. :-) 22:37
*devil in the detail 22:38
sorear Well, I haven't had tuits to finish coding the new design
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:39
sorear I'm using a lot of elements of the design 22:41
I could probably even make it compatible, but only by using horribly wrong names for stuff
jnthn Eh well, I'll try and figure out for in NQP.NET tomorrow or so. :-) 22:45
Quite happy to have got the multi dispatch stuff in today. :-)
22:58 wooden left 23:01 wooden joined, tadzik joined 23:03 tadzik1 joined 23:06 tadzik left, wooden left 23:07 tadzik1 is now known as tadzik
Util .new() vs .^new() 23:25
When creating a new object of class Foo from within some other method of that class, 23:26
which is the more correct way to call new() without hardcoding the classname?
23:29 tadzik left 23:39 icwiener left 23:43 muixirt left 23:48 MayDaniel left 23:53 Ross left 23:57 pythonian4000 is now known as pythonian4000afk