Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: review experimental features for promotion or removal, fix 'make html', pre-release testing.
Set by moderator on 6 July 2010.
00:15 lucian joined 00:23 dduncan joined 00:31 eternaleye joined 00:40 eternaleye_ joined 00:41 dduncan left 00:45 simcop2387 joined
dalek rrot: r48019 | mikehh++ | branches/html_cleanup/MANIFEST:
re-generate MANIFEST
00:54
rrot: r48020 | mikehh++ | branches/html_cleanup/lib/Parrot/Docs/PodToHtml.pm:
remove non-UTF-8 character, trailing spaces
cotto_work NotFound: duckduckgo.com/?q=self-hosted+compiler&v=
Google doesn't like you quite as much. 00:55
01:01 rurban_ joined 01:49 eternaleye joined 01:53 kid51 joined
cotto ~~ 02:06
mikehh hey cotto 02:11
02:24 tcurtis joined, ash_ joined
Chandon bootstrap-ops is a bit like russian roulette 02:27
Except you start by loading six bullets. The hope is that one is a dud.
cotto bootstrap-ops, you say? 02:33
please elaborate
Chandon When I get something wrong, it happily generates a wrong core_ops.c; once that happens, I need to fix it by hand before I can try again. 02:34
cotto you can just revert it
svn revert src/ops/core_ops.c
I did that a lot. 02:35
Chandon I did this silly thing where I edited some code at the same time such that that core_ops.c is also wrong.
cotto why wouldn't reverting help? 02:38
You shouldn't have to core_ops.c directly.
02:39 plobsing joined
Chandon I changed the signature of a function that gets called by an op. 02:40
cotto ok. revert core_ops.c, build, update the op definition and run bootstrap-ops 02:41
and if you've updated the op definition, do the other things
sorear seen moritz 02:44
purl moritz was last seen on #parrot 7 hours, 4 minutes and 26 seconds ago, saying: PPP?
dalek kudo: f8dde0a | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 507 files, 33927 (84.4% of 40197) pass, 19 fail
02:45
cotto Chandon, is that helpful? 02:46
Chandon cotto: Problem with that plan comes with "build". Since a function old core_ops.c needed no longer exists, it wouldn't work. Luckily, editing core_ops.c to fix that did work, and now I'm back in less painful errors. =P 02:48
dalek rrot: r48021 | mikehh++ | branches/html_cleanup/t/perl/Parrot_Docs.t:
fix failing test for added module
02:49
cotto I see. 02:51
glad you're back in business
You could also use the installed ops2c, if any.
Chandon Yea, that probably would have been the right way to do it. 02:55
cotto now you know 02:57
purl And knowing is half the battle.
dalek TT #1703 closed by bacek++: IMCC doesn't generate get_params op for argless subs. 03:15
TT #1703: trac.parrot.org/parrot/ticket/1703
rrot: r48022 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library/Tree/Transformer.nqp:
Make Tree::Transformer stop being a Tree::Walker. Doesn't affect tests in the least. Will eventually move its multi into its own namespace.
03:21
03:22 eternaleye joined 03:44 janus joined
Coke is glad to see that crabby people are not just crabby at parrot. 03:49
mikehh Coke: working on html_cleanup - glob stuff in make_html_docs.pl is not right - it runs from base dir not docs 03:54
03:54 khairul joined
mikehh needs a break - check back later 03:59
Coke mikehh: yah. script is currently runnable from top level dir. 04:11
I want to move make html out of docs into the top level makefile anyway.
there's a good task for someone to fix. =_)
mikehh Coke: :-} 04:20
Coke: anything specific you want me to look at? 04:21
Coke moving the html target into the main makefile would be great.
that'll make 'make html' at least do something again. =-) 04:22
it shouldn't need to depend on docs, either.
(since we're generating from the original POD)
drumming up docs for the 5 or so files that are missing docs when run (or skipping them in the .json descriptors) would also be nice. 04:23
also, merging in changes from trunk, though that's optional.
zzzz here.
mikehh++ for anything you manage to get to. thanks!
mikehh Coke: me too - will work on it in a few hours
04:26 LoganLK joined
dalek rrot: r48023 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library/Tree/Pattern.nqp:
Refactor .transform to use a method to find the transformer class to create to allow subclasses to more easily substitute a different one.
04:27
particle ETOOMANYTOS 04:51
04:52 TiMBuS joined
khairul cotto: ping 05:07
cotto khairul, pong 05:08
khairul see privmsg 05:09
dalek rrot: r48024 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library/PAST (2 files):
Make PAST::Transformer::Dynamic not be a PAST::Walker::Dynamic. Also add traversal of PAST::Var.viviself to PAST::Walker.
05:16
tracwiki: v5 | cotto++ | KhairulGSOC2010Schedule 05:24
tracwiki: trac.parrot.org/parrot/wiki/Khairul...ction=diff
05:55 ttbot joined 06:01 uniejo joined 06:25 fperrad joined
moritz good morning 08:18
purl For you maybe.
moritz I have two classes, A inherits from B
I want to set set an attribute from B in A
how do I do that?
both are handled by P6Metaclass 08:19
08:41 clinton joined 08:56 mikehh joined 09:01 rurban_ joined 09:27 gaz joined
dalek r: 3a9ded9 | bacek++ | src/POST/Compiler.pm:
Fix :method generating in POST::Sub.
10:05
r: 598a1ae | bacek++ | src/POST/Compiler.pm:
Always handle params in Sub. Also prepend C<self> for methods to params.
r: f08d46a | bacek++ | src/POST/Compiler.pm:
Disable emitting get_params_pc for argless Subs. :main handling in parrot isn't
purl perfect is the enemy of good enough.
r: ce3d442 | bacek++ | t/pbc/subs.txt:
Add (failing) test for :method handling.
r: 67afc83 | bacek++ | src/POST/Compiler.pm:
Fix sub comp flags constants.
bacek ~~ 10:15
dalek rrot: r48025 | mikehh++ | failed to fetch changeset:
merge in trunk at r48024 and re-generate MANIFEST
10:28
mikehh that was merging in trunk in html_cleanup branch 10:30
10:54 bkuhn joined 10:59 lucian joined
dalek p-rx: d01b490 | pmichaud++ | src/HLL/Compiler.pm:
Refactor interactive mode context handling slightly.
11:14
p-rx: 2fb1606 | pmichaud++ | src/stage0/ (3 files):
Update bootstrap files.
rrot: r48026 | pmichaud++ | trunk/ext/nqp-rx/src/stage0 (3 files):
[nqp-rx]: Update bootstrap files with latest interactive changes.
11:20
11:38 kid51 joined
kid51 make fulltest: PASS on Darwin/PPC at r48020 (trunk) 11:38
dalek kudo: 5f40d37 | pmichaud++ | src/Perl6/Actions.pm:
Rename some setup variables to be more accurate.
11:39
kudo: b0cd2b8 | pmichaud++ | src/ (2 files):
Add a $MAIN parameter to unit mainline (signals that the unit is the mainline).
kudo: c9aa0e9 | pmichaud++ | src/Perl6/Actions.pm:
Refactor !YOU_ARE_HERE to use outer_ctx.
kudo: 3d0a9c2 | pmichaud++ | src/glue/run.pir:
Refactor !UNIT_START.
kudo: 114971b | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION.
kudo: 67e1145 | pmichaud++ | src/Perl6/Actions.pm:
Refactor unit startup, add context saves.
kudo: 86c0bee | pmichaud++ | src/glue/run.pir:
Refactor !UNIT_START to handle the various cases.
kudo: da40f63 | pmichaud++ | src/glue/run.pir:
Fix bug with @*ARGS setup.
kudo: 855ca68 | pmichaud++ | docs/spectest-progress.csv:
Merge branch 'master' of github.com:rakudo/rakudo
rrot: r48027 | gerd++ | trunk (2 files):
Make the destination more flexible; so "cd editor && make vim-install VIM_DIR=/usr/share/vim/vimfiles" for example will work correct; so the VIM_DIR option is possible
12:09
12:14 bluescreen joined 12:26 ruoso joined
dalek rrot: r48028 | Util++ | trunk (12 files):
Remove extraneous semicolons
12:46
12:59 Mokurai joined 13:50 tcurtis joined, bubaflub joined
dalek kudo: ddf224e | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 507 files, 33926 (84.5% of 40171) pass, 2 fail

S32-temporal/DateTime.t 15 - epoch at 1970-01-01 01:01:01 S32-temporal/DateTime.t 16 - as Str 1970-01-01T01:01:01+0100 S32-temporal/DateTime.t passed 18 unplanned test(s)
14:22
14:32 Andy joined 14:37 plobsing joined 14:41 patspam joined
dalek kudo: c89a843 | pmichaud++ | src/ (2 files):
Remove IN_EVAL() function, $*IN_EVAL dynvar.
14:57
kudo: 17654af | pmichaud++ | docs/ROADMAP:
Mark REPL task as done in the ROADMAP.
kudo: 7bbb35f | pmichaud++ | docs/spectest-progress.csv:
Merge branch 'master' of github.com:rakudo/rakudo
dukeleto cotto: i just got back from a long trip, need to look at the gsoc timeline and remind peeps 15:09
particle i reminded p6/parrot folks at the weekly status meeting to do their duty next week 15:10
moritz dukeleto: ash was confused by the parrot github mirror not being up-to-date 15:11
dukeleto moritz: ah, yeah. that needs to be fixed
particle: thank you
tcurtis pmichaud: ping 15:22
dalek kudo: 894e793 | pmichaud++ | t/harness:
Fix bug with --long and --stress option handling.
15:26
rrot: r48029 | tcurtis++ | branches/gsoc_past_optimization/t/library/pastwalker.t:
Failing test for walking of viviself attribute.
15:30
rrot: r48030 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library/PAST/Walker.nqp:
Fixed the bug preventing viviself from being walked.
tcurtis moritz: At #ps yesterday, I brought up bacek's desire that my GSoC stuff either get merged or moved to an external project soon, and it sounded like moving it to an external project would be okay. Which would prevent you from having the issue with needing to wait for me to merge parrot trunk for you to merge rakudo master. 15:33
I'm probably going to run it by parrot-dev before I do it, but I thought you might be interested in knowing. 15:35
moritz tcurtis: either approach would be fine by me, merging into parrot would be less effort 15:37
(for me)
tcurtis: anyway, thanks for letting me know... 15:38
my optimizations currently block on me being too dumb to iterate a hash in nqp :l/ 15:39
afk 15:40
tcurtis moritz: I believe for %foo will iterate over the keys.
dukeleto tcurtis: it is nice to hear that you are coordinating with both parrot and rakudo peeps. keep up the good work! 15:45
dukeleto has been off the interwebs for 4 days and is backlogging in many dimensions
tcurtis dukeleto: thanks. I'll try. 15:52
nopaste "coke" at 192.168.1.3 pasted "moritz - nqp iterate a hash" (6 lines) at nopaste.snit.ch/21844 15:57
moritz thanks Coke++ 16:09
pmichaud for %foo in NQP iterates over the hash and gives back "pairs"
moritz is that sensitive to sigil? 16:10
pmichaud no
for $foo will do the same thing
(the sigil-control of flattening came after NQP)
moritz so what is a "pair" in NQP?
pmichaud it's actually what the hash iterator returns from Parrot
nopaste "pmichaud" at 192.168.1.3 pasted "pmichaud@plum:~/nqp-rx$ cat x" (16 lines) at nopaste.snit.ch/21846 16:15
pmichaud moritz: see nopaste :-)
moritz pmichaud: thanks 16:16
16:34 ruoso joined
dalek rrot: r48031 | khairul++ | branches/gsoc_instrument (6 files):
Fixed code issues raised by cotto.
16:36
rrot: r48032 | tcurtis++ | branches/gsoc_past_optimization (2 files):
Traverse vivibase with PAST::Walker.
16:42 ash_ joined
ash_ this might sound like a dumb question, but why does parrot differentiate between PMC's and everything else? If you just boxed all the interger's, nums, and strings in PMC's then you'd have a lot less of a number of things, plus things would be a lot more simple when you don't have to think about 4 different kinds of the same op 16:46
Coke ah, pmichaud++'s is a better example. I didn't introspect what the key was. =-) 16:49
tcurtis ash_: probably partially due to a desire to not have to GC numbers and partially due to a desire to not have to dereference a pointer for most operations on numbers. 16:52
16:52 Hunger joined
atrodo I would guess, also, it would make math operations much more difficult to JIT 16:53
ash_ not having to gc numbers and ints is pretty nice 16:57
i didn't think of that
16:57 allison joined
NotFound Do a loop with a integer register and with a integer PMC and you'll know the difference, 16:59
tcurtis How do I use exists in NQP? pir::exists__IPK doesn't work.
NotFound Even without gc involved.
ash_ NotFound: i just find it odd, in other VM's (like cpython or the ruby vm) they only have 1 object type and keep all the int's and num's boxed 17:00
well ruby cheats a bit actually, but still
17:01 rurban_ joined
ash_ in ruby, if the first bit of an object pointer is 1, then its not actually an object, its an integer inside a pointer 17:02
tcurtis ash_: common lisp implementations frequently do that, too, I think. 17:03
17:04 Andy_ joined, Andy joined
atrodo I'd imagine that's good for convenience, especially when everything is actually an object, but bad for speed 17:04
tcurtis The "that" I was referring to being encoding fixnums in pointers with a flag bit. 17:05
ash_ if you hide integers in points like that, there are no pointer dereferences on math ops 17:06
atrodo Wouldn't that add more complexity to the VM than just having the multiple ops? 17:08
ash_ i duno, i guess it just moves the complexity around
dalek rrot: r48033 | khairul++ | branches/gsoc_instrument (3 files):
Fixed code issues raised by cotto (missed EventDispatcher.nqp).
17:09
17:14 bubaflub_ joined
ash_ (for instance in the ruby vm) in the add_op it checks if its a fixnum (if the first bit is 1) and does the add, checks if its a BigInt (built in type) and calls a special built in add, else it calls the object + op that invoked the add, so thats at most 2 comparisons + a method dispatch, at best 1 comparison and 1 + op, with all of the registers not boxed as they are in parrot, then you loose the comparisons but you gain multiple 17:16
implementations of the op
tcurtis The advantage is that you never have to box a fixnum unless it overflows. 17:19
ash_ and they are faster at runtime
atrodo and you can actually optimize them 17:20
Coke (exists) I use Q:PIR for that. 17:21
ash_ atrodo: what do you mean?
Coke or, you can just /get/ the value (assuming your container doesn't autoviv) and see if it's... defineD? null? whicver that is.
tcurtis Coke: pir::exists__IQS or IQwhatever works. 17:22
atrodo If you know the operation is an add of integers, you have a higher chance of optimizing that, either in JIT or at compile time. If you don't know, you have to do the whole dance 17:23
17:24 ilia joined
dalek rrot: r48034 | tcurtis++ | branches/gsoc_past_optimization (2 files):
Walk .control and .loadinit attributes of PAST::Blocks in PAST::Walker.
17:25
ash_ atrodo: got ya, yeah but if your jiting your code you can do that with boxed things too, thats the beauty of a JIT, it knows at runtime this is really just an integer that is boxed, you should be able to remove the boxing, if your JIT doesn't do that, then its not doing much
atrodo But that's the thing. Unless it's typed all the time as an int, you can't automatically unbox it, you have to test it 17:27
tcurtis ash_: How do you reason that checking the first bit of both operands and then adding them(fixnum addition) is faster than just adding them(separate registers)?
atrodo And, both sides of the operations have to be ints for it to do anything unboxed 17:28
17:28 bubaflub joined
ash_ tcurtis: i didn't say it was, i was just pointing out it is more simple in some cases because its only 1 implementation of the add op instead of multiples 17:28
tcurtis What did you mean by "and they are faster at runtime"? 17:29
17:29 eternaleye joined
tcurtis atrodo: A good compiler should compile a function doing math to a single check for fixnumness on the inputs at the beginning of the function. If not, you do normal PMC multi-dispatch. Otherwise, you do pure fixnum math the same as with the separate ops. 17:31
Slightly worse performance on the individual ops unless the fixnumness can be known.
But, you never have to box them. 17:32
atrodo Sure, unless the value changes after input 17:33
ash_ tcurtis: i was refereeing to multiple implementations is faster, if there are specific add_ops for when you have $I# + $I# vs $P# + $P# 17:34
17:34 clinton joined
tcurtis atrodo: The compiler would know if the value changes after input. Overflow is the only tricky bit there. 17:34
ash_ atrodo: there are only certain ops that should modify the value, you'd only need to check if you need to re-box the value then
atrodo Yep and Yep. Hold on for a second, example coming 17:36
nopaste "atrodo" at 192.168.1.3 pasted "take, for example" (5 lines) at nopaste.snit.ch/21847 17:38
atrodo And i'm taking this example from discussions that took place at YAPC 17:39
The problem is, you know for sure at compile time $i is an int. But you don't know what type $y is.
if it's an int, you don't need to box anything. If it's not, you have to box $i and call a dispatch 17:40
The compiler has no way of knowing, only the runtime knows
ash_ atrodo: yeah, your right, but thats the prefect case of how a JIT provides speed ups 17:42
atrodo ash_> Oh?
ash_ since it does know the types at runtime, it doesn't need to do a full dispatch unless completely necessary 17:43
atrodo Aye, but it still has to check everytime
tcurtis atrodo: You don't box $i. If you use fixnums, you don't have to box them ever.
ash_ well, what if $y was a string? 17:44
cotto_work ~~
Coke tcurtis: what is "Q" ?
tcurtis Coke: I have no idea. I found it in src/setting/ResizablePMCArray.pm in NQP.
atrodo ash_> Explosions, I believe 17:45
Coke cries again about the state of docs.
tcurtis Question: are we talking about multiple dispatch or Ruby-esque single dispatch? Because that affects things.
Coke I have been going off this list: trac.parrot.org/parrot/wiki/NQPDocs
particle Q, as in the perl 6 op?
tcurtis particle: Q in NQP pir:: op signatures. 17:46
Coke particle: 13:22 <@tcurtis> Coke: pir::exists__IQS or IQwhatever works.
particle oh, in an op sig... hrmm
tcurtis With single dispatch, you just call your dispatch function with the fixnum and add and the string, and it sees, oh, this is a fixnum, so let's call the Fixnum add method, which maybe converts the string to an integer and adds it or something. 17:47
With multiple dispatch, you call your dispatch function and it just looks for the + method with a fixnum and a string and calls it on the fixnum and the string. 17:49
You could as an optimization have a dispatch_fixnum_method that didn't perform the check and was only used if you knew you had a fixnum, too. 17:50
atrodo ash_> At this point, I'm thinking that in a dynamic language, it's a wash which way you go 17:53
If it was up to me, I'd go with which ever way was more maintainable 17:54
ash_ now that i think about it more, i rather like the way its done in parrot, with multiple ops
atrodo I'm curious on the reasoning 17:55
ash_ you have less comparisons, if, at compile time, you check more stuff then you end up with a faster operation, plus if you JIT the code, its really easy to inline the ops since they each have a single implementation with virtually no logic, the add $I $I is literally just the C operation $1 += $2, there might be some with logic that might make them harder to inline, but that would be great for most cases as inlining that removes an unneede 17:58
method call for such a simple operation
Coke ok. nqp's pir::op syntax seems to just dispatch to a PAST::Op/pirop 18:00
pmichaud Q is "keyed pmc" 18:02
tcurtis ash_: Separate ops seems superior for the individual operations, but it's inferior for actually passing integers around, because you have to box them, and more GCables is bad. I think either are arguably good choices, although for native-code compilation, which Common Lisp implementations often do, it's probably a better choice to go with fixnums since it allows better machine register usage, I'd expect. 18:03
dalek nxed: r538 | NotFound++ | trunk/winxedst1.winxed:
tiny refactor of operators lexing
pmichaud I updated the docs in PAST::Compiler.pir, didn't know about the trac wiki page 18:07
Coke pmichaud: I just updated the wiki to point to the perldoc. 18:08
the wiki predates the docs in parrot, I think. based on me picking your brain some aeons ago.
I just looked in Past/Compiler.pir and didn't see Q.
under "signature flags" ?
cotto_work compilers/pct/src/PAST/Compiler.pir 18:09
in trunk
Coke ... wierd. i swear i didn't just see it. 18:10
pmichaud++
cotto_work That's ... fun to trace down if you don't know where to look. 18:11
dalek tracwiki: v8 | coke++ | NQPDocs
tracwiki: unfortunately, this list also does not mention 'Q'
tracwiki: trac.parrot.org/parrot/wiki/NQPDocs...ction=diff
cotto_work Where is the code that actually uses those flags? 18:12
Coke Compiler does the hard work, but it's used in Past::Node's Op variant, which in turn is used by nqp's pir::<opcode>__<sig> variant.
cotto_work found (some of?) it 18:13
pmichaud you're looking for the Q part itself? 18:18
most of the flags get handled by "coerce"
cotto_work thanks 18:19
pmichaud the 'Q' flag gets handled by "post_children"
cotto_work I've been seeing those mysterious flags for a while and been wondering what they all meant
pmichaud it's another way of specifying operand types to opcodes
I didn't like the _ki _p _ic etc forms because they're harder to parse. 18:20
and I needed some flags that didn't correspond to anything in the opcodes already
18:22 theory joined
pmichaud afk, errands 18:25
kthakore hi folks 18:28
dalek rrot: r48035 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
Add documentation for another pirop signature flag.
18:31
Coke I suspect I could clean up a bunch of partcl-nqp with this more current list of flags. 18:38
18:39 Chandon_ joined
dalek p-rx: 70f4eb7 | moritz++ | src/Regex/P6Regex/Actions.pm:
put AST generation for named assertions into a separate method
18:44
rrot: r48036 | gerd++ | trunk/config/gen/makefiles/editor.in:
add the possibility to specify something like this: make vim-install VIM_DIR=~/vim-inst-dir SKELETON=/skeleton_file_path
18:48
rrot: r48037 | gerd++ | trunk/config/gen/makefiles/editor.in:
removing wrong double quote
19:37
19:57 bluescreen joined
TimToady phone 20:01
GeJ Bonjour everyone.
darbelo o/
20:08 eternaleye joined 20:12 LoganLK joined, bubaflub joined
NotFound Spain 1 - Germany 0 :) 20:20
darbelo Spain++
moritz :(
darbelo (Magic Octopus)++
moritz that's a traitor :-)
cotto_work I'm rooting for Antarctica. 20:21
In spite of not having a team, I think they've got a good chance.
atrodo It's like the lottery. Not playing is the biggest win
moritz would love to see Antarctica vs. Jamaica in the final 20:22
darbelo I would expect that to be rather one sided.
With Jamaica having a team and all... 20:23
moritz well, they have to muster the concentration of getting to the opposite, empty goal once 20:24
20:32 theory joined
particle not true... kick that jabulani ball and it might go anywhere. 20:34
20:47 patspam joined 21:10 tcurtis joined 21:15 diakopter joined 21:18 diakopter left
dalek rrot: r48038 | darbelo++ | failed to fetch changeset:
Sync with trunk.
21:34
cotto_work pmichaud: ping 21:35
pmichaud pong
cotto_work What does something like pir::set_p_p_kc__PPS(...) mean? 21:36
pmichaud it would select a very specific form of opcode -- set_p_p_kc
and then it would force the operands to be held in a PMC register, another PMC register, and a String register
cotto_work I see. Then it'd use PPS as directions to interpret the args 21:37
pmichaud and I'd potentially argue that IMCC or Parrot should carp about it, since I'm not sure a string register is a valid operand for _kc
cotto_work Would my $category := pir::set_p_p_kc__PPS($data, 'event_category'); be better rewritten as my $category := $data<event_category>; or is there some subtlety that I'm missing? 21:39
bacek aloha, humans 21:42
cotto_work aloha bacek
tcurtis Hello, bacek.
bacek hi cotto, tcurtis 21:43
pmichaud *much* better as $category := $data<event_category>
the former would stick "event_category" into a string register and then try to use it
the latter will use the constant directly
cotto_work ok
pmichaud (at least, that's what it's supposed to do. could be a bug in nqp if it doesn't)
cotto_work I've clearly been slacking off a little too much in the area of gsoc code review. 21:44
bacek tcurtis, do you have plans for SSA in your optimizer? 21:45
cotto_work msg khairul In Instrument::EventDispatcher::handler, $category := pir::set_p_p_kc__PPS($data, 'event_category'); should become my $category := $data<event_category>;
purl Message for khairul stored.
21:46 Andy joined
bacek cotto_work, "set"??? 21:46
cotto_work blame it on a lack of familiarity with nqp 21:47
bacek my $category := $data<event_category>; translates into something like "get_p_p_sc" 21:48
cotto_work iirc there is no get 21:49
It's all set 21:50
apart from get_label, get_namespace, etc
tcurtis bacek: I'm planning to eventually implement a way of converting a PAST or POST to something easier to optimize, but it's not an immediate priority. 21:51
bacek tcurtis, ok. Just keep in mind that most of optimizations based on SSA form. 21:53
cotto_work, yeah... I was wrong. 21:54
21:57 lucian joined 22:20 hercynium joined
cotto_work allison, when do you think you'll send your Lorito post to parrot-dev? 22:45
msg allison When do you think you'll send your Lorito post to parrot-dev? 23:01
purl Message for allison stored.
ash_ in pbc_to_exe, wouldn't it be kinda nice if you could expand the bytecode out from its compact form into its individual calls? then you might get at least some of the optimizations your compiler knows about on that expanded form 23:05
another gain might be to specify the runcore you want at compile time, then you'd save your self a lot of pointer dereferencing 23:07
but that's not really required, just thinking
and by expand from its compact from into its individual calls i mean take the "add_i_ic" instruction and expand that out in the main of the C program generated by pbc_to_exe to a call to "Parrot_add_i_ic(op, interp);" 23:10
23:12 theory joined 23:36 silug joined 23:55 Psyche^ joined
Coke msg mikehh nevermind moving the html out of the docs makefile, we can save that for another day. 23:59
purl Message for mikehh stored.