|
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. | ||