»ö« 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«000» | ||
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«newreify» | ||
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
|