|
Parrot 2.4.0 "Sulfur Crest" Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere Set by moderator on 18 May 2010. |
|||
|
00:14
eternaleye joined
|
|||
| ttbot | Parrot trunk/ r46929 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/323030.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 00:20 | |
| GeJ | Successfully smoked the Parrot's HEAD at r46928 | 00:23 | |
| ops_pct ++ | 00:26 | ||
| dalek | rrot: r46930 | NotFound++ | trunk/t/op/stringu.t: test join with mixed encodings |
00:30 | |
|
00:31
chromatic joined
|
|||
| ttbot | Parrot trunk/ r46930 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/323061.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 00:33 | |
| dalek | rrot: r46931 | mikehh++ | trunk/compilers/imcc/main.c: add pod documentation |
00:47 | |
| rrot: r46932 | NotFound++ | trunk/t/pmc/resizablestringarray.t: test splice with negative offsets |
|||
| GeJ | mikehh++ | 00:48 | |
|
00:56
seatek joined
01:01
Mokurai1 joined
|
|||
| bacek_at_work | plobsing, win32 build still borked... | 01:02 | |
| NotFound | bacek_at_work: r46933? | 01:03 | |
| bacek_at_work | NotFound, taptiner didn't built this revision yet | ||
| dalek | rrot: r46933 | NotFound++ | trunk (2 files): avoid conflicting name and consting |
01:04 | |
| NotFound | I've made a change that maybe fix it, but I can't build with windows right now. | ||
| Waiting for ttbot... | |||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34019), fulltest) at r46932 - Ubuntu 10.04 amd64 (g++) | 01:13 | |
|
01:13
tcurtis joined
|
|||
| mikehh | mikehh_boy ain't got there yet | 01:13 | |
| I refused the bot bit :-} | 01:14 | ||
| ttbot | Parrot trunk/ r46932 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/323160.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 01:19 | |
| mikehh | NotFound: still waiting ... | 01:22 | |
| Coke | waltman? | 01:35 | |
| purl | somebody said waltman was Larry's bitch or not heard or suffering from CS student syndrom. or the robot party-killer | ||
| ttbot | Parrot trunk/ r46933 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/323175.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 01:48 | |
| plobsing | NotFound++ # nice try | 01:52 | |
| I give up. I'll wrap it in a function call and be done with this. | 01:53 | ||
|
02:08
abqar joined
|
|||
| dalek | rrot: r46934 | plobsing++ | trunk (4 files): wrap global const in a sub |
02:10 | |
| plobsing crosses fingers | 02:11 | ||
|
02:18
JimmyZ joined
|
|||
| Coke books his travel for yapc. Sadly I'll be missing the last few talks on wed. | 02:19 | ||
| plobsing | woo fixed! | 02:41 | |
|
02:42
janus joined
|
|||
| Coke | plobsing: my partcl? =-) | 02:42 | |
| plobsing | Coke: I'll bite. what's wrong with it? | 02:44 | |
| building parrot in the same tree with 2 different compilers is ... interesting | 02:54 | ||
|
03:04
dduncan joined
03:06
dduncan left
|
|||
| plobsing | Coke: partcl makefile needs an update to use ops2c and not ops2c.pl (which no longer works outside of trunk) | 03:08 | |
|
03:08
nopaste joined
|
|||
| bacek_at_work | plobsing, ops2c.pl should still work... | 03:12 | |
| plobsing | it doesn't. it assumes ops2c is in $PATH. bad assumption | 03:13 | |
| bacek_at_work | ah... | ||
| Good point. | 03:14 | ||
| We need some kind of installable_ops2c.pl | |||
| plobsing | How I build parrot languages: PATH="..." perl Configure.pl | ||
| bacek_at_work | With hardcoded paths. | ||
| plobsing | after that, parrot tools are not in the path | ||
| Coke | ugh, so partcl is now even more broken? whee. =-) | 03:16 | |
| plobsing | also TGE was not being installed. I fixed that on parrot's end. | ||
| dalek | rrot: r46935 | plobsing++ | trunk/MANIFEST.generated: make TGE installable |
03:17 | |
| plobsing | right on queue | ||
| nopaste | "plobsing" at 192.168.1.3 pasted "partcl ops2c patch" (13 lines) at nopaste.snit.ch/20632 | 03:18 | |
| Coke | tge used to be installed. wonder when that broke. | 03:19 | |
| all this manifest.generated reshuffling probably dropped it. | |||
| chromatic | Or the deprecation point. | ||
| purl | rumour has it the deprecation point is a confusing name | ||
| Coke | chromatic: of what? | ||
| chromatic | Did TGE get deprecated? | 03:20 | |
| plobsing | damnit! I put those manifest.generated tests in for good. not for evil! | ||
| Coke | chromatic: I hope not. | 03:21 | |
| plobsing | if TGE had been deprected, why wouldn't the removal take it out wholesale? | ||
| Coke | it's not deprecated. | ||
| Coke checks. | |||
| chromatic | Okay, good to verify. | 03:22 | |
| mikehh | just got a bunch of perlcritic failures (18) TODOs and XXXs, the only reason I can think of is I just got the latest Perl::Critic::Bangs from CPAN | 03:28 | |
| dalek | rrot: r46936 | tcurtis++ | branches/gsoc_past_optimization/t/library/pasttransformer.t: Added a test for PAST::Transformer replacing a node with a different node type. |
03:33 | |
| rrot: r46937 | jimmy++ | trunk/t/tools: [t\\tools]Set svn:ignore property |
|||
| rrot: r46938 | bacek++ | trunk/tools/build/ops2c.pl: Explicitely use PConfig{bindir} to invoke ops2c from ops2c.pl |
|||
| rrot: r46939 | jimmy++ | trunk/MANIFEST.SKIP: re-generate MANIFEST.SKIP |
|||
|
03:41
Andy joined
|
|||
| Andy | ok, who commited created files? | 03:41 | |
| plobsing | Andy: which files? | 03:43 | |
| Coke | Andy: see recent mailing list message about ops_pct mergeback. | 03:44 | |
| Andy | ah, whoops | 03:45 | |
| thanks | |||
| so src/ops/core_ops.c is not generated but says it is? | 03:48 | ||
| bacek_at_work | it is generated | 03:49 | |
| same as bison/flex files | |||
| Andy | but committed. | ||
| bacek_at_work | yes, part of boostrapping. | ||
| Part 0 of LoritoRoadmap | 03:50 | ||
| trac.parrot.org/parrot/wiki/LoritoRoadmap | |||
|
03:50
LoganLK joined
|
|||
| plobsing | we should get some kind of consistent bootstrapping strategy that marks these files as such. I get flak every now and then for src/nci generated files | 03:51 | |
| bacek_at_work | make bootstrap-foo targets | 03:52 | |
| + make bootstrap to bind them all | |||
| ? | |||
| plobsing | how often is someone likely to modify *everything* that needs bootstrapping? | ||
| bacek_at_work | We can have proper dependencies to avoid rebottstrapping things | 03:53 | |
| plobsing | sounds like a good idea. However, I was refering more to people wanting to remove generated files from $vcs. | 03:54 | |
| bacek_at_work | We have to have them in vcs. | 03:55 | |
| But I would like to see them in separate directory. | |||
| plobsing | I know they need to be in the VCS. I just don't want to explain that to someone every couple of weeks | 03:56 | |
| mikehh | what does ASSERT_ARGS with (void) do? | ||
| plobsing | mikehh: appease tests | ||
| mikehh | plobsing: :-} | 03:57 | |
| Andy: did your latest Perl::Critic::Bangs change change things to add TODOs and XXXs in policy somewhere - I am now getting a bunch of perlcritic failures | 04:02 | ||
| Andy | yes | ||
| The changelog will tell you that. :-) | 04:03 | ||
| mikehh | Andy: hadn't got around to looking yet, just trying to fix some other codetest failures :-} | 04:04 | |
| Andy | It now checks for flag comments in POD as well as # comments | 04:05 | |
| dalek | rrot: r46940 | mikehh++ | trunk/src/longopt.c: fix codetest failure - missing docs and ASSERT_ARGS |
04:06 | |
| mikehh | Andy: ah, had just updated from CPAN, ran the tests, and I got 18 files failing - all seem to be TODOs or XXXs | 04:09 | |
| Andy | in Parrot? | 04:11 | |
| mikehh | yo | ||
| plobsing | todos in parrot? who woulda thunk it! | ||
| Andy | you know to run "make headerizer" for missing function defs, I assume? | 04:12 | |
| ssq | |||
| plobsing | ssq? | 04:14 | |
| Andy | ww | 04:15 | |
| that's my alias for "svn status -q" :-) | |||
|
04:17
JimmyZ joined
|
|||
| mikehh anyway will look later - needs a break | 04:19 | ||
| dalek | rrot: r46941 | petdance++ | trunk (2 files): new annotations |
04:23 | |
| rrot: r46942 | petdance++ | trunk (2 files): make debugger_or_interp static and fixed annotations |
|||
| plobsing | Coke: (re: partcl) I'm not sure why the error is what it is, but it appears that a "get_class ['TclExpr'; 'Grammar']" in PGE;Match is returning null. | 04:31 | |
| Coke | because that error is occurring during a conversion from string to int. previously, the only way that errored was if there was a real error. | 04:32 | |
| plobsing | perhaps TclExpr;Grammar is not getting registered early enough | 04:33 | |
| Coke | I should point out this all worked around 2.2 or so. | ||
|
04:33
Khisanth joined
|
|||
| plobsing | do classes get automatically created from namespaces when asked for? did they in 2.2? | 04:35 | |
| I'm not seeing any newclass ops | 04:36 | ||
|
04:37
snarkyboojum joined
|
|||
| plobsing | Coke: I'm fairly sure this is a :load order bug. You're HLL mapping is taking effect *before* loading 'TclExpr';'Grammar' which is required for String => int conversion to work | 04:50 | |
| nopaste | "plobsing" at 192.168.1.3 pasted "[partcl] patch to get main to run (still some bugs though)" (64 lines) at nopaste.snit.ch/20633 | 05:14 | |
| dalek | rrot: r46943 | petdance++ | trunk (2 files): add annotations and update some docs |
05:29 | |
| plobsing | Coke: the next error is caused by Eval re-entering. I'm surprised that ever worked. | 05:43 | |
|
05:46
hercynium joined
06:09
LoganLK joined
06:13
Xaero joined
|
|||
| dalek | rrot: r46944 | petdance++ | trunk (6 files): adding some more PURE and CONST annotations |
06:20 | |
| cognominal | on the last parrot, using the perl6 shell, any error crashes the garbabe collector | 06:33 | |
| type " RETURN on the prompt for example | |||
| plobsing | cognominal: you can use a "sweep 1" op to force a GC run and pinpoint exactly where it goes wrong | 06:37 | |
| cognominal | sorry I don't know the parrot internals | 06:41 | |
| I just point my finger to parrot because I doubt the perl6 shell has changed recently. I may be wring | |||
| plobsing | I think it is pir::sweep__I(1) in rakudo | 06:42 | |
| cognominal: sorear was poking it recently to give it lexical presistance this week, IIRC | |||
| s/presistance/persistance/ | |||
| cognominal | sorear++ # so I don't mind temporary hassles | 06:44 | |
| So in case of error, that's creat an infinite recursion in the garbage collector | 06:45 | ||
| I trust sorear to fix it | |||
| I have whined so long for lack of lexical persistance to whine again when someone works on it... | 06:46 | ||
| *not to | 06:49 | ||
| cotto | seen khairul | 06:51 | |
| purl | khairul was last seen on #parrot 23 hours, 14 minutes and 57 seconds ago, saying: svn sync? | ||
|
07:00
fperrad joined
07:01
fperrad_ joined
|
|||
| cotto | hi fperrad | 07:01 | |
| fperrad | hi cotto, great, ops_pct was merged, now do you work on pmc_pct ? | 07:06 | |
| cotto | my current next project is git/trac integration | 07:07 | |
| Lorito design is next on LoritoRoadmap (but it's a non-binding roadmap) | 07:08 | ||
| bacek is working on PIRATE, which is kinda awesome | |||
| PIRATE? | |||
| purl | rumour has it PIRATE is a career that is washed up these days...and raping and pillaging just doesn't have a good reputation these days.... or www.eff.org/IP/DRM/piratead/CEA_ad.png or www.wired.com/politics/security/mag...li_pirates or PIR parser (and compiler) implemented in NQP github.com/bacek/pir | ||
| cotto | that last one | 07:09 | |
| purl | that last one is on the menu of one of the chinese food trucks at drexel | ||
| cotto | forget that last one | ||
| purl | cotto: I forgot that last one | ||
| cotto | botsnack | ||
| purl | :) | ||
| cotto | literal botsnack | ||
| purl | thanks cotto :) | ||
| cotto | poisoned botsnack | 07:10 | |
| purl | :) | ||
| cotto | so trusting, yet so hard to kill | 07:11 | |
| plobsing | cotto: what does the "inline" mean for ops? | 07:16 | |
| cotto | I suspect it's vestigial. | 07:17 | |
| strongly | 07:19 | ||
| plobsing | I suppose its not worth eliminating when the ops format will be changing RSN for Lorito | 07:21 | |
| cotto | I wouldn't say that. | 07:22 | |
| Having less code in the .ops files will make it more obvious what actually needs to be reimplemented. | 07:23 | ||
| plobsing | moving bxor ops to dynops causes "access code outside current segment". wheee! | 07:26 | |
| cotto | patch? | 07:28 | |
| purl | We don't need no stinking patch! | ||
| cotto | also, is that after bootstrap-ops? | 07:29 | |
| cotto remembers that he can now safely nuke the old ops2c perl code. | |||
| wheeeee. | |||
| purl | wheeeee are the champyons, mah freh-ehnds! | ||
| plobsing | this is on ops_massacre. don't worry it was a bug before | ||
| cotto | that doesn't mean it should persist | 07:31 | |
| plobsing | it will not. | 07:32 | |
| these ops are moving to dynops whether they like it or not | |||
| cotto | plobsing++ | 07:33 | |
| you'll roxor those bxors | |||
| dalek | rrot: r46945 | cotto++ | trunk (11 files): [ops2c] start nuking obsolete ops2c and ops2pm perl code |
07:59 | |
| bacek | ~~ | 08:02 | |
| aloha | |||
| cotto | hio | 08:08 | |
| bacek | cotto, so, what's next? | 08:12 | |
| dalek | rrot: r46946 | cotto++ | trunk (8 files): [ops2c] clear out some more ops2c perl code and refereneces |
08:16 | |
| cotto | defining lorito | ||
| though the roadmap is a wiki page, so that could change ;) | 08:17 | ||
| bacek | ok. | 08:18 | |
| if) | 08:19 | ||
| 1) Lorito ops are current ops. | |||
| then | |||
| Whe have Lorito to C functions "for free" | |||
| We | 08:20 | ||
| Than HLL ops can be translated to Lorito. | |||
| cotto | that's part of the plan | 08:21 | |
| bacek | And PIR can be translated to Lorito by some nuclear mixture of PIRATE + opsc | ||
| plobsing | bacek: true, but Lorito to JIT defn's then requires parsing C. that may not be desirable | ||
| bacek | for "small" amount of ops we can have manually rolled jit translations. | ||
| E.g. 20 of them. | |||
| plobsing | I'd be fine having all but the hot ones dispatched through subroutines | 08:22 | |
| s/subroutines/functions/ | |||
| bacek | With something like nopaste.snit.ch/20629 we can translate all other ops into Lorito | ||
| plobsing | bacek: do you know why we are rolling our own bitshift? | 08:23 | |
| bacek | plobsing, it was just example | ||
| cotto | If it doesn't appear to make sense, it most likely doesn't. | ||
| bacek | choose any other op and I'll provide parseable "HLL" version :) | ||
| cotto ? | 08:24 | ||
| purl | somebody said cotto was Christoph Otto <mailto:christoph@mksig.org> or a cooked salami or The Decider | ||
| plobsing | bacek: I know its an example, but it uses something in our current ops I really don't understand | ||
| bacek | plobsing, e.g? | ||
| plobsing | look in bit.ops. why we use bit_shift_left in stead of simply casting to unsigned confuses me | ||
| C has >> and << for a reason | 08:25 | ||
| bacek | yeah... But I'm not talking about implementation of particular op. Just in general. | ||
| plobsing | also, IMHO, that shr looks uglier than the C version | 08:28 | |
| bacek | plobsing, why? It's valid Perl6. (I can replace $^a with $a) | 08:31 | |
| dalek | rrot: r46947 | plobsing++ | branches/ops_massacre (125 files): sync with trunk |
08:33 | |
| bacek | And it explicitly name parameters in signature. | ||
| plobsing | bacek: it is noiser but doesn't add any new information for it | ||
| bacek | So you don't have to learn magical $1-$9 | ||
| plobsing, it does. It's valid NQP and semantically parsed | 08:34 | ||
| cotto | there's still the issue of making nqp generate C from that code | 08:36 | |
| bacek | I can generate C from this source. | ||
| Much easier than that in current opsc. | |||
| cotto | really? | 08:37 | |
| plobsing | I keep finding perl6 is not a convenient notation for low level stuff to me (it's great as an HLL though) | ||
| cotto | I'm not surprised it can be done, but I am surprised that it'd be easier. | ||
| bacek | plobsing, we are talking about HLL for ops. | 08:38 | |
| cotto, it will. Or least it's not harder than current one. | |||
| plobsing | cotto: how do I regenerate core_ops.c? | 08:42 | |
| cotto | make bootstrap-ops | ||
| moritz | make: *** No rule to make target `src/ops/core_ops.c', needed by `src/ops/core_ops.o'. | 08:43 | |
| I ran git-clean -xdf, updated and then configured | |||
| cotto | git-clean? | 08:44 | |
| bacek | moritz, git checkout . ? | 08:45 | |
| moritz | cotto: I work on a git-svn mirror | ||
| bacek | moritz, or may be "git reset --hard remotes/trunk" | ||
| moritz | bacek: I've tried the checkout now... | 08:46 | |
| cotto | in that case bacek will be the one to ask for help | ||
| JimmyZ | old makefile 'make realclean' removed core_ops.c, until you use the new one | 08:48 | |
| dalek | rrot: r46948 | cotto++ | branches/ops_pct: delete merged branch |
08:50 | |
| plobsing | cotto: make bootstrap-ops has some issues. 1) some pbcs with bad deps don't get rebuilt with new ops, leading to segfaults | 08:57 | |
| cotto | are you saying that because you have a patch or because you want one? | 08:58 | |
| plobsing | want | ||
| cotto | ok | ||
| plobsing | 2) if I remove an op, then forget to run opsrenumber (leading to a ops2c failure), then run opsrenumber, then re-run ops2c, I get an uncompilable core_ops.c | ||
| (fortunately I already have a working ./parrot around) | 08:59 | ||
| 3) if I already have parrot, why does it rebuild it before regenerating my core ops? | |||
| cotto | you shouldn't need to run opsrenumber at all | 09:00 | |
| plobsing | I do. it complains about inconsistent numbers otherwise | ||
| cotto | it's run automatically when ops2c thinks it's needed now | ||
| It should complain and then fix them. | |||
| if not, that's a bug | |||
| plobsing | I saw a wall of errors, so I killed it | ||
| cotto | steps to repro? | 09:01 | |
| plobsing | if I remove an early op (eg: any bit op), almost all ops get renumbered | ||
| cotto | also, what's your location, ooc? | ||
| sure | |||
| plobsing | location = whitehorse, yukon territory, canada | 09:02 | |
| cotto | 20K people and 3/4 of Yukon's population. interesting | 09:04 | |
| plobsing | it beats the being in the big city for me | 09:05 | |
| cotto | when I nuke a shl op and run make bootstrap-ops, it explodes. Is that what you're running into? | ||
| btw, you can revert src/ops/core_ops.c if needed | |||
| plobsing | shl and shr are required by PGE, so some of those can't be nuked | 09:06 | |
| the PMC ones aren't tho. and yes, that pretty much describes my problems | |||
| cotto | ok. I'll make that work. | ||
| plobsing | but even when it doesn't explode, almost all ops get renumbered. iwbni it complained about out-of-order ops in ranges so it could tell me ops 20-1200 were all shifted by the same amount | 09:07 | |
| in stead of 1180 lines of "zomg inconsistent!" | 09:08 | ||
| cotto | ok. That makes sense. | ||
|
09:08
Xaero left
|
|||
| plobsing | although, maybe that's more a function of us having 1200 core ops in the first place... | 09:09 | |
| cotto | it could be better | 09:12 | |
| I may have just run out of not-sleep. | 09:16 | ||
| can you file a tt so this doesn't get buried? | 09:17 | ||
|
09:17
khairul joined
|
|||
| plobsing | sure | 09:18 | |
| cotto | hi khairul | ||
| khairul | hi cotto | ||
| dalek | rrot: r46949 | plobsing++ | branches/ops_massacre/src/ops (2 files): move bxors to dynops |
09:23 | |
| cotto | khairul, are you going to start working in svn soon? | ||
| khairul | very soon. i'll be committing some items tonight, or tomorrow morning latest. | 09:25 | |
| cotto | I have some thoughts on your code but I haven't given it a thorough enough look. Do you want to chat at the same time as last week? | ||
| khairul | sure, that would be great. | 09:26 | |
| cotto | We'll do it then, then. | ||
| khairul | alright. I should be committing some before then. | 09:27 | |
| dalek | TT #1654 created by plobsing++: ops2c should complain about ops numbering in ranges | 09:32 | |
| TT #1654: trac.parrot.org/parrot/ticket/1654 | |||
| rrot: r46950 | khairul++ | branches/gsoc_instrument (114 files): Sync with trunk |
09:40 | ||
| rrot: r46951 | plobsing++ | branches/ops_massacre (5 files): move some (not all) bxor, rot, lsr, bnot, and bnots ops to dynops |
10:13 | ||
|
10:14
joeri joined
|
|||
| dalek | rrot: r46952 | plobsing++ | branches/ops_massacre (3 files): move some (but not all) shr, shl, and bors ops to dynops |
10:29 | |
| rrot: r46953 | plobsing++ | branches/ops_massacre (3 files): track ops2c generated files for bootstrap |
|||
| rrot: r46954 | plobsing++ | branches/ops_massacre/src/dynoplibs/bit.ops: add bitops dynops source (oops) |
|||
| rrot: r46955 | bacek++ | trunk/compilers/opsc/src/Ops/Compiler/Grammar.pm: Remove redundant {*} in ops grammar. |
11:02 | ||
| rrot: r46956 | bacek++ | trunk/compilers/opsc/opsc.pir: Implmenet command-line opsc parsing. |
11:03 | ||
| rrot: r46957 | bacek++ | trunk/compilers/opsc/src/Ops/Compiler (2 files): Improve opsc little bit more: rename op_params into singature, macro_param limited to 9, use rule instead of regex for op_macro |
|||
|
11:35
lucian joined
11:42
khairul joined
11:49
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 11:51 | |
|
11:57
TiMBuS joined
12:01
confound joined
12:02
TonyC_ joined
12:03
nopaste joined
|
|||
| bacek | aloha whiteknight | 12:05 | |
| dalek | rrot: r46958 | bacek++ | trunk/compilers/opsc/src/Ops/Compiler/Grammar.pm: Speed up opsc parsing process by rewriting body_word rule and avoid capturing C<panic> nodes. |
12:09 | |
| rrot: r46959 | bacek++ | trunk/src/ops/core_ops.c: Rebootstrap ops |
|||
| rrot: r46960 | bacek++ | trunk/compilers/opsc/src/Ops/Compiler/Grammar.pm: Speed up opsc grammar more by using more specific tokens instead of "catch-them-all" <alnum>|<punct> |
|||
|
12:11
whiteknight_ joined
|
|||
| dalek | kudo: a4d3266 | moritz++ | build/PARROT_REVISION: bump PARROT_REVISION to get some testing after the ops_pct branch merge |
12:17 | |
| Coke | plobsing - might be an ordering issue, but those are in the order they are for a reason. =-) (I'm pretty sure that's why you're getting other errors if you move the pmc mappings. those need to be in place before the other code is run. | 12:19 | |
|
12:19
JimmyZ joined
|
|||
| Coke | msg plobsing - might be an ordering issue, but those are in the order they are for a reason. =-) (I'm pretty sure that's why you're getting other errors if you move the pmc mappings. those need to be in place before the other code is run. (the code that is asking for the conversion of "0" to a num is after both the mapping and the load of the pge code. | 12:23 | |
| purl | Message for plobsing stored. | ||
| dalek | rrot: r46961 | bacek++ | trunk/compilers/opsc/src/Ops/Compiler/Grammar.pm: Catch significant whitespaces in opsc. bacek-- for being lazy to proper |
12:26 | |
| rrot: r46962 | bacek++ | trunk/src/ops/core_ops.c: Rebootstrap ops |
|||
| Coke | I wonder if there was a change to PGE that stopped defining that namespace; I see TclExpr; PIR; Grammar and TclExpr; PAST; Grammar, but none without the PIR or PAST. | 12:28 | |
| git question: how do I do the equivalent of "svn up -r <old revision>" ? | 12:32 | ||
| bacek | git checkout <sha1> | 12:33 | |
| ? | |||
| Coke | danke. | ||
|
12:35
ruoso joined
|
|||
| Coke | and -rHEAD ? | 12:36 | |
| (git checkout HEAD doesn't seem right.) | |||
| bacek | bitte | ||
| JimmyZ | HEAD^ | 12:37 | |
| Coke | that updated, but didn't do what I expected. I just found the SHA for head and used that. | 12:38 | |
| (which is a pita.) | |||
| I think I'm going to have to go back to the last known working partcl / parrot combination and just step forward. :P | 12:39 | ||
| (but not now) | |||
| dalek | rrot: r46963 | bacek++ | trunk/compilers/opsc/src/Ops/Compiler/Grammar.pm: Embed redundant raw_word rule into word rule. |
12:42 | |
| bacek | Coke, git checkout master (where "master" is branch name) | 12:46 | |
| And you can use git bisect to find working revision :) | |||
| Coke | bacek: the problem with that is that I have two different things I'm tracking the revisions of. | 12:56 | |
| bacek | Coke, yak... | 12:58 | |
|
12:58
davidfetter joined
|
|||
| Coke | Every time I leave partcl alone for a while, she gets in trouble. :P | 12:58 | |
| dalek | rrot: r46964 | bacek++ | trunk/compilers/opsc/src/Ops/Compiler/Grammar.pm: Change macro_param back to accept more than 1 digit. Apparently rakudo uses 12 of them... |
12:59 | |
| purl | dalek: that doesn't look right | ||
|
13:05
skv_ joined
13:08
zibri joined
13:12
JimmyZ joined
|
|||
| bacek | sigh... It's not that opsc particularly slow. Looks like nqp-rx suffers from unsupported :: | 13:13 | |
|
13:14
atrodo joined
13:17
clinton joined
13:23
mj41_ joined
|
|||
| Coke | why am I seeing messages about parsing ops in a straight build? | 13:25 | |
| Isn't that just for the bootstrappign? | |||
| bacek | No. It's internal "performance counters" | ||
| I can remove them now. | 13:26 | ||
| Coke | ?? | ||
| bacek | Just to check parsing time. | ||
| Coke | if they're not adding anything to the build, sure, kill 'em. | ||
| ok. checking parsing time slows down the build. :P | |||
| bacek | By 2 milliseconds more! | 13:28 | |
| Coke | it's the pricipal of the thing. | 13:29 | |
| er, principle. too much school lately. | |||
| bacek | Fixed in r46965 | 13:30 | |
| Coke | danke. | 13:31 | |
| bacek: you miss my point. | |||
| you just disabled the output. why are we doing ANYTHINg with the ops? | |||
| isn't all that generated code checked in? | |||
| 7 | |||
| bacek | Erm... | ||
| Not for dynops | |||
| Coke | ... why not? | ||
| bacek | Because we checked in only ops required for bootstrapping. | 13:32 | |
| Coke | ok. | ||
| bacek | In shiny Lorito world we will commit only Lorito ops | ||
| And compile all other. | |||
| dalek | rrot: r46965 | bacek++ | trunk/compilers/opsc (2 files): Disable output of ops parsing time. Coke++ |
13:34 | |
| whiteknight | we're one step closer to shiney lorito world now | 13:35 | |
| davidfetter wonders whether whiteknight is talking backwards, or whether lorito is something forwards | 13:47 | ||
|
13:51
patspam joined
|
|||
| whiteknight | ? | 13:51 | |
| Coke | lorito is theoretically forward progress, yes. | ||
| meta-theoretically? | 13:52 | ||
|
13:56
Andy joined
|
|||
| Coke 's boss gives a hearty "meh" to news of yapc. (at least there are no scheduling conflicts.) | 14:02 | ||
| moritz | FYI, rakudo worked fine after the opc_pct merge | 14:05 | |
|
14:10
gbacon joined
14:14
PacoLinux joined
|
|||
| bacek | moritz, good to know! | 14:18 | |
| Coke | partcl didn't! (but it's not your fault. =-) | 14:21 | |
| dalek | kudo: 49b2c13 | Shrivatsan++ | src/core/Iterator.pm: added .fmt method to Iterator.pm so that fmt can take Iterators of any form. |
14:38 | |
|
14:40
davidfetter joined
14:41
bubaflub joined
|
|||
| dalek | kudo: 10a3218 | moritz++ | CREDITS: add isBEKaml to CREDITS |
14:44 | |
|
14:51
iblechbot joined
15:00
davidfetter joined
15:24
mikehh joined
|
|||
| ttbot | Parrot trunk/ r46955 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/324847.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 15:45 | |
| dalek | rrot: r46966 | fperrad++ | trunk/MANIFEST: don't install (Defines|Rules).mak |
15:47 | |
| Coke | er, ttbot, why is that an error? | 15:48 | |
| oh, it's like 4 hours old. | 15:49 | ||
| particle | is that dalek's fault or ttbot's? | 15:52 | |
| Coke | I'm assuming ttbot. | ||
|
15:52
wagle joined
|
|||
| Coke | particle: I'm contacting folks on #yapc to get the the "Perl6 Parrot Workshop" at yapc name changed to something less... promising. | 15:52 | |
| NotFound | Doesn't look like an error in the code, but in the machine. Out of memory, maybe. | 15:53 | |
| particle | coke: great idea. keep me in the loop. is patrick attending yapc? | 15:58 | |
| whiteknight | I don | 16:00 | |
| t think he is | 16:01 | ||
|
16:01
tcurtis joined
|
|||
| particle | oy. | 16:01 | |
|
16:05
theory joined
|
|||
| Coke | particle: he is currently undecided. it's just a funding issue. | 16:12 | |
| particle | i'm (finally) working on my director bio. | 16:15 | |
| dukeleto | 'ello | 16:17 | |
| whiteknight | hello duke | 16:18 | |
| dukeleto | whiteknight: hey there | ||
| particle: is PaFo having a board election any time soon? | 16:19 | ||
| Coke | dukeleto: yup. | 16:20 | |
| Coke checks the dates... | |||
| dalek | rrot: r46967 | khairul++ | branches/gsoc_instrument (9 files): added instrument dynpmc, probe library and simple example. |
16:21 | |
|
16:21
dmalcolm joined
|
|||
| Coke doesn't find actual dates, only "annually" | 16:23 | ||
| dukeleto | Coke: how does one throw their name in the hat? | 16:27 | |
| khairul++, nice to see some gsoc-related commits | 16:28 | ||
| pmichaud | I don't yet have travel support for yapc::na | ||
| so, I don't know yet if I'm attending. | 16:29 | ||
| I'm going to try to get that locked down in the next day or two. Things keep rollercoastering around here, though :-( | |||
| Coke | dukeleto: Looking at the bylaws, doesn't look like there's a nomination process. "members shall elect directors to hold office" | 16:33 | |
| www.parrot.org/files/bylaws.pdf | |||
| I'll certaintly nominate you if it comes to that. | |||
| whiteknight | don't try and blind us with your fancy legal gabbledegak | ||
| dukeleto | Coke: cool, thanks. should i email directors@ and ask ? | 16:34 | |
| Coke | can't hurt. | ||
| dukeleto | Coke: the last time i emailed directors (about getting pl.parrot.org for PL/Parrot), i never got a response | ||
| Coke | allison is usually on top of such things. | ||
| dukeleto: I'll try to respond this evening. | 16:35 | ||
| dukeleto | Coke: i appreciate that | 16:36 | |
| Coke | NP. sorry I didn't respond earlier. Read it and it fell off my radar. apologies. | 16:38 | |
| pinging me about stuff like that is always ok. =) | |||
| particle | or me, if i don't /ignore you :P | 16:45 | |
|
16:46
integral joined
17:03
ruoso joined
|
|||
| cotto_work | good morning | 17:09 | |
| purl | For you maybe. | ||
| dalek | rrot: r46968 | tcurtis++ | branches/gsoc_past_optimization/t/library/pasttransformer.t: Added a test for deleting nodes. |
17:10 | |
| dukeleto | Coke: thanks for being awesome | 17:11 | |
| Coke | dukeleto: ... right. | ||
|
17:22
ash_ joined
|
|||
| dalek | rrot: r46969 | NotFound++ | trunk/compilers/imcc/pbc.c: [imcc] check unknown charset/encoding |
17:27 | |
| Coke | dukeleto: plparrot.leto.net is a little light atm. =-) | 17:28 | |
| dukeleto | Coke: yes, it is :) I will add a bit more of a stub... | ||
| Coke: more of a stub added. pl.parrot.org works! sweet! | 17:31 | ||
| Coke | ... that was quick. | 17:35 | |
| ... you know, if you don't count the huge delay since 05/03. | 17:36 | ||
| dukeleto | Coke: not counting that ... :) | 17:37 | |
| Coke | particle: ? | 17:42 | |
|
17:55
jan joined
18:15
chromatic joined
|
|||
| Coke | eeek! | 18:18 | |
| cotto_work | what happened? | 18:22 | |
| purl | We don't know what happened, so tell everyone nothing happened. | ||
|
18:30
plobsing joined
|
|||
| dalek | rrot: r46970 | tcurtis++ | branches/gsoc_past_optimization/examples/library/pasttransformer.pir: Added an example of PAST::Transformer doing basic constant folding of Integer addition. |
18:33 | |
| rrot: r46971 | tcurtis++ | branches/gsoc_past_optimization/examples/library/pasttransformer.pir: Removing a debugging 'say "Foo"'. |
|||
| cotto_work | tcurtis++ | ||
| it's nice to see that code coming along | |||
| plobsing | constant folding would become much more awesome if ops had annotations marking them as legal to fold over. I'd hate for the new optimizer to have to hardcode ops like IMCC's does. | 18:39 | |
| NotFound | BTW: This is right? inline op concat(invar PMC, invar PMC, in STR) :base_core { $1 = VTABLE_concatenate_str(interp, $2, $3, $1); } | 18:42 | |
| Shouldn't $1 be inout? | |||
| plobsing | NotFound: not sure. PMCs can be misbehaved and modify themselves on read, so flow annotations are pretty meaningless for them. | 18:44 | |
| also the register is not being modified | |||
| NotFound | plobsing: $1 = looks like modifying. | 18:45 | |
| plobsing | oops. you're right! | ||
| NotFound | PMCs can modify themselves, but self-modifying does not change the register value, wich is a pointer. | 18:46 | |
| Those things might be fooling the register allocator. | 18:47 | ||
| plobsing | correct on all counts. I see why it should be inout now. | ||
| Coke | no more inout string ops. | ||
| NotFound | Coke: $1 isn't a string in that op. | ||
|
18:49
cognominal joined
|
|||
| NotFound | And there are inout strings, for example: inline op concat(inout STR, in STR) :base_mem :deprecated | 18:49 | |
| Deperecated, but still alive. | |||
| Coke | that's only there because IMCC makes PIR depend on it. | 18:50 | |
| and I missed the pmc in your original example, woops. | |||
| NotFound | That example isn't the only case, there are several with the same look. | ||
| A big ++ if someone makes ops2c able to detect such things. | 18:53 | ||
| cotto_work | I'll be working on making op removal work more unblowuppably tonight. It'll be a good time to look into that too. | 18:54 | |
| Actually, that won't be possible with the current opsc. It doesn't any actual parsing of the op body so it's not smart enough to figure out anything about what the op is doing. | 18:56 | ||
| It should be possible if we decide to go with bacek's approach of using nqp for ops since that will involve parsing and building a past, which can then potentially be analyzed and optimized. | 19:00 | ||
| having op implementation analysis sounds like a nice feature | 19:03 | ||
| plobsing | bacek++ # I see the point now! | 19:05 | |
| NotFound | A simple regex that looks for assignments to $1 can give useful warnings. | 19:06 | |
| cotto_work | I'm still on the fence about the nqp syntax but there are major advantages over the C mangling we do now. | ||
| I 'spose. | |||
| plobsing | what if we just assigned invar registers to temporary consts in the Op preamble? | 19:07 | |
| then the C compiler would catch this for us | |||
| cotto_work | Is that worthwhile? | ||
| dalek | rrot: r46972 | plobsing++ | branches/ops_massacre (6 files): move some (but not all) band, bands, and bor ops to dynops |
19:08 | |
| moritz likes that branch name | |||
| plobsing | it would make a lot of optimizations a lot more general (no need to hardcode how ops work on their operands) | 19:09 | |
| cotto_work | plobsing, have you found a workaround for the opsc brokenness or are you just taking ops out and not rebootstrapping until it gets fixed? | ||
| plobsing | cotto_work: it appears to be a parallel make issue | 19:10 | |
| NotFound | plobsing: good idea, but maybe hard to implement. | ||
| plobsing | but yes, mostly I run (make opsrenumber; ./ops2c --core; make -j3 clean; make -j3) | ||
| cotto_work | I thought I nuked opsrenumber. | 19:11 | |
| plobsing | it works when I have it. it doesn't when I dont | ||
| cotto_work | must have been since your last sync | ||
| cotto_work hopes that it won't become necessary to run ops2c twice for proper opsrenumbering. | 19:18 | ||
| plobsing | cotto_work: how do I get ops2c to tell me how many ops are in a file (I'm trying to update your tests which depend on ops that I've removed) | ||
| cotto_work | You'd probably have to edit compile_ops in compilers/opsc/src/Ops/File.pm | 19:20 | |
| I can update the tests and make it easier to do so for others when I get home. | 19:21 | ||
| plobsing | cotto_work: just putting the number of ops beside the time it took to parse said ops would be handy | ||
| NotFound | If I change .ops files, there is something that I must do, or make takes cre? | 19:22 | |
| cotto_work | That should be easy. I'll also make that output dependent on a cli arg. | ||
| NotFound: run make bootstrap-ops | 19:23 | ||
| plobsing | NotFound: make can't handle that. otherwise it'll choke on "cyclic dependancies" | ||
| cotto_work | plobsing, please make sure the opsc section of CottoTasklist has everything you need. | 19:26 | |
| NotFound | Uhh... the diff shows a lot of differences that consists mainly in whitespace. | 19:29 | |
| plobsing | NotFound: what ops are you poking? | 19:34 | |
| NotFound | plobsing: string.ops | ||
| dalek | tracwiki: v17 | cotto++ | CottoTasklist | 19:42 | |
| tracwiki: trac.parrot.org/parrot/wiki/CottoTa...ction=diff | |||
|
19:44
tetragon joined
|
|||
| dukeleto | NotFound: do you or someone that touched the repo have apply.whitespace = strip in their ~/.gitconfig ? | 19:47 | |
| cotto_work | plobsing++ | 19:49 | |
| It's nice to see another 50 ops bite the dust. | |||
| plobsing | that's not quite done yet. now I have to fix tests. my favorite part! | 19:51 | |
| NotFound | dukeleto: I don't use git | 19:53 | |
| dukeleto | NotFound: nevermind :) | 19:54 | |
|
20:08
hercynium joined
|
|||
| nopaste | "plobsing" at 192.168.1.3 pasted "[PATCH] make opsc generate appropriate consts for invar op args" (94 lines) at nopaste.snit.ch/20635 | 20:15 | |
| plobsing | ^^ would work if arg_dirs were populated | ||
| NotFound | plobsing: I think it must be: (PMC * const) | 20:17 | |
| And same for STRING | |||
| plobsing | NotFound: right you are | ||
| but the idea holds. it wouldn't be terribly difficult to do if opsc's datastructures were being populated in the right places | 20:18 | ||
| NotFound | I like it. | 20:19 | |
| cotto_work | cloc? | ||
| clock? | |||
| purl | cotto_work: LAX: Mon 1:19pm PDT / CHI: Mon 3:19pm CDT / NYC: Mon 4:19pm EDT / LON: Mon 9:19pm BST / BER: Mon 10:19pm CEST / IND: Tue 1:49am IST / TOK: Tue 5:19am JST / SYD: Tue 6:19am EST / | ||
| NotFound | And it can help the C optimizer make a better job. | 20:20 | |
| plobsing | I wouldn't go that far. Any optimizer worth its salt would identify the variable as const. | 20:21 | |
| NotFound | plobsing: providing more appropiate information to the compiler doen't hurt, anyway. | 20:23 | |
| cotto_work | We've got the information. There's no reason not to put it to good use. | 20:25 | |
| plobsing | cotto_work: can you figure out how to populate Ops::Op.arg_dirs ? | 20:28 | |
| cotto_work | It's on my tasklist | 20:29 | |
| right after "make opsc not explode and eat kittens when ops are deleted" | 20:31 | ||
| plobsing | mmm... tasty tasty kittens | ||
| cotto_work | Yes. That's why I don't want opsc eating them all. | 20:32 | |
| dalek | tracwiki: v18 | cotto++ | CottoTasklist | 20:33 | |
| tracwiki: add patch from plobsing++ for op arg consting | |||
| tracwiki: trac.parrot.org/parrot/wiki/CottoTa...ction=diff | |||
|
20:46
ash_ joined
|
|||
| GeJ | Good morning everyone. | 20:57 | |
| Coke | (partcl borkage) AAARGH. | 20:58 | |
| cotto_work | who's to blame? | 21:00 | |
| Coke | no clue. I am trying to go back in time and find a version of parrot on which a version of partcl works. | ||
| r43668 looks like the best shot so far. | 21:01 | ||
|
21:10
whiteknight joined
|
|||
| bacek | Good morning, humans | 21:12 | |
| cotto_work | Good morning, bacekbot. | ||
| plobsing had an interesting patch for opsc that'd probably only take you a few minutes to make work: gist.github.com/412377 | 21:13 | ||
| bacek | cotto_work, looking already | 21:15 | |
| Looks pretty good. | 21:16 | ||
| plobsing, remove consting of INTVAL/NUMVAL (it's useless) and ship it! | |||
| (Right after rebootstrapping ops and make test :) | 21:17 | ||
| plobsing | bacek: it doesn't work because Ops::Op.arg_dirs isn't being populated | ||
| particle | /mode -o bacek # vaguely botlike | ||
| plobsing | also the consting on the INVAL/NUMVAL are to ensure invar ops are truly invar | 21:18 | |
| its not an optimization. it's to trigger compiler errors on missues | |||
| bacek | good point | ||
| plobsing | s/missues/missuse/ | ||
|
21:19
cotto_work joined
|
|||
| darbelo | (Error on misuse)++ | 21:19 | |
| dalek | rrot: r46973 | plobsing++ | branches/ops_massacre (8 files): fix tests after ops => dynosp |
21:21 | |
| rrot: r46974 | darbelo++ | branches/ucs4_encoding (99 files): Sync with trunk. |
|||
| bacek | plobsing, gosh... | 21:25 | |
| sorry, but your patch is kinda useless. | |||
| all ops have signature "opcode_t * foo(opcode_t*, PARROT_INTERP)" | 21:26 | ||
| This magical "$1" aren't real parameters. | |||
| nopaste | "plobsing" at 192.168.1.3 pasted "assigning to a const-casted variable is a compiler error" (5 lines) at nopaste.snit.ch/20636 | 21:28 | |
| plobsing | bacek: ^^ is what I'm trying to acheive | ||
| bacek | You can add more defines in Ops::Trans::C.defines and map args to them | ||
| plobsing | it's not useful until ops2c makes the information available in the appropriate places. op arg direction isn't being kept where it appears (to me) it should be. | 21:30 | |
| darbelo | bacek ping | 21:31 | |
| bacek | darbelo, pong | ||
| darbelo | I have a totally crazy idea for you. | 21:32 | |
| bacek | plobsing, feel free to improve it! I just copied old ops2c.pl design almost one to one. | ||
| darbelo, do you think I need another one? :) | |||
| plobsing | bacek: that explains a lot | ||
| cotto_work | Yeah. The initial design was copied as much as possible from perl so we'd be less likely to break something. | 21:33 | |
| darbelo | What if we allowed op bodies to bewritten in several languages? | ||
| Coke | darbelo: extra complexity for no big benefit? | ||
| bacek | darbelo, extra maintenance hell? | 21:34 | |
| darbelo | Make the op-bodyparser pluggable. It's all PCT stagesat this point. | ||
| Coke | bacek: I'm guessing it's something cooler, of course. =-) | ||
| yay. a 4 month old partcl works with a 2.0 vintage parrot. | 21:35 | ||
| cotto_work | It's nice to have Coke back to his normal self. | ||
| bacek | darbelo, atm, I'm failing to hi-jack nqp to parse body only. Make it pluggable will be even more difficult. | ||
| Coke | cotto_work: yah, only a few more weeks and I'll have tracked down the damn bug. =-) | 21:36 | |
| darbelo | Never mind then. | ||
| bacek | .oO( my normal $self := Coke ) |
||
| dukeleto | gsoc coding period begins today | 21:53 | |
|
21:54
spinclad joined
|
|||
| dalek | rrot: r46975 | darbelo++ | branches/ucs4_encoding/config/gen/makefiles/root.in: Correct a slight merge glitch. |
21:55 | |
| darbelo starts coding. | |||
| dukeleto: ooc, has any of the students not made a commit yet? | 21:57 | ||
| NotFound | darbelo: for extra special points, allow the body of each op to have fragments in different languages %-) | 21:58 | |
| dukeleto | darbelo: i am not sure | ||
| darbelo: i don't actually konw where all of the students blogs and repos are | |||
| darbelo | dukeleto: I think all the blogs are on parrot.org | 21:59 | |
| dukeleto | darbelo: you forget i have perl students as well :) | 22:00 | |
| darbelo: but yes, the parrot students are very organized | |||
| plobsing | looking at TT #1645 makes me want to eliminate the logical_not vtable. why is it distinct from get_bool ? | 22:06 | |
| bacek | plobsing, look at TT#816. (But +1 for eliminating logical_not) | 22:09 | |
| plobsing | time to go forth and deprecate | 22:13 | |
| NotFound | plobsing: it returns a PMC. get_bool returns INTVAL | 22:15 | |
| plobsing | NotFound: you can box it yourself. | ||
|
22:16
ruoso joined
|
|||
| NotFound | plobsing: not the same operation. The PMC choose what to return, getting an int and boxing is the current HLL who choose. | 22:16 | |
| The HLL can choose to do that way, if it wants. | 22:17 | ||
| plobsing | if what you're doing is so far removed from logical negation that you can't use an integer to represent it, it shouldn't be in a logical negation vtable | 22:19 | |
| NotFound | plobsing: following that logic, you must deprecate the not(PMC, PMC) opcode, not just the vtable. | 22:24 | |
| plobsing | Not so. 'HLL_box_intval(!VTABLE_get_bool($1))' | 22:26 | |
| but I would like to eliminate that op as well | |||
| in fact, all the logical vtables look suspiciously bloaty | |||
| darbelo | Go forth and multip^Wdeprecate | 22:27 | |
| plobsing | rfc created | 22:32 | |
| dalek | TT #1655 created by plobsing++: [RFC] deprecate logical vtables | 22:42 | |
| TT #1655: trac.parrot.org/parrot/ticket/1655 | |||
| cotto_work | <3 | 22:43 | |
| plobsing | the only use I can see for logical vtables is perl6 junctions. but I doubt any non-p6 HLL would be able to do anything sane with them and I doubt Rakudo makes use of this API. | 22:45 | |
| NotFound | rfc is a good way to go. | 22:48 | |
| bacek | seen chromatic | 22:49 | |
| purl | chromatic was last seen on #parrot 19 hours, 27 minutes and 30 seconds ago, saying: Okay, good to verify. | ||
| bacek | msg chromatic I'm finally scared enough of our GC and going to clean it up with fire. | 22:50 | |
| purl | Message for chromatic stored. | ||
| cotto_work | -Ofire | ||
| plobsing | -Water | 22:51 | |
| NotFound | -Earth | 22:52 | |
| darbelo | .oO( What's an ater and why are we being warned about them? ) |
||
| plobsing | they're handy for putting out optimizer fires | 22:53 | |
| chromatic | Fire how? | 22:54 | |
| bacek | 1. Decouple GC from Memory Allocation | 22:56 | |
| (Remove all this Pool/Arena/Whatever) | |||
| 2. Made GC track GCable. | |||
| (Without going through Pools to find if we need more memory/iterating headers/etc) | 22:57 | ||
| 2a. Implement sweep-free GC. | |||
| (And it will be much easy because GC track GCable already) | 22:58 | ||
| 3. Break API to make Parrot_gc_mark_PMC_alive to accept PMC**. (And probably rename it into gc_visit_pmc) | |||
| 4. Implement Compacting GC. | 22:59 | ||
| 5. Implement Generational GC on top of Compacting. | |||
|
22:59
Psyche^ joined
|
|||
| cotto_work | sounds like you need to start a wiki page | 22:59 | |
| bacek | ("Optional" rename VTABLE_mark to VTABLE_gc_visit 'cause I want to reuse it in Compacting phase) | 23:00 | |
| plobsing | bacek: you could re-use the visit vtable with a different visit type | ||
| bacek | plobsing, probably. I didn't follow changes in VTABLE_visit in last few month. | 23:01 | |
| plobsing | part of the visitor PMC interface is get_integer (meaning "give me flags describing how are you visiting me?") | 23:02 | |
| chromatic | I'd like a non-recursive mark() eventually. | 23:04 | |
| cotto_work | pyevolve.sourceforge.net/wordpress/?p=1189 - PyPy is starting to get people excited. | 23:05 | |
| plobsing | most PMCs want to perform the appropriate action on the same set of attributes in the same order for most or all of (freeze, thaw, deep_clone, mark, etc) | ||
| bacek | chromatic, it will be possible. | ||
| chromatic, trac.parrot.org/parrot/wiki/GCMassacre (as cotto++ suggested) | 23:06 | ||
|
23:07
whiteknight joined
|
|||
| chromatic | Can you add more details? | 23:07 | |
| bacek | chromatic, about which step? | 23:08 | |
| chromatic | All of them, but in particular #1. | ||
| bacek | 1 and 2 are almost same. As soon as GC will track objects by it self undelying allocator is less critical | 23:10 | |
|
23:10
japhb joined
|
|||
| bacek | We can roll-out own or use Google's tcmalloc | 23:10 | |
| chromatic | How does the GC track objects itself? | 23:11 | |
| bacek | Same as in SweepFreeGC | ||
| We don't care about DEAD objects after performing custom destructions and will return it to "Memory Allocator" | 23:12 | ||
| chromatic | We need *some* data structure to contain headers of specific sizes as well as the flags/pointers to indicate LIVE, DEAD, MAYBE lists. | ||
| bacek | flags are stored in PObj | 23:13 | |
| and why GC should care about "specific header size"??? | 23:14 | ||
| chromatic | It doesn't have to, but changing the GC to bump the heap pointer and sbrk() when necessary is a huge change. | ||
| bacek | allocatting of PMC header vs String header already separated in API | ||
| chromatic | Yes, because we have separate arenas for separate headers. | ||
| bacek | You missed point... | ||
| chromatic | That's why I'm asking for more details. | 23:15 | |
| bacek | I want to decouple GC from "System Allocator" | ||
| GC will work on Garbage semantic. | |||
| PObj, Live, Dead, etc | |||
| "System Allocator" will manage "Pages/sbrk/mmap/whaever" | 23:16 | ||
| GC will just request objects from SA | |||
| And return it back | |||
| chromatic | Are you saying that every new PMC header requires a malloc()? | ||
| bacek | chromatic, nope | ||
| SA can (and will be) implemented with bulc allocating from system | 23:17 | ||
| s/system/OS/ | |||
| chromatic | Like arenas and pools do now. | ||
| bacek | yes | ||
| But they will have nothing to do with "GC side" of it | |||
| Current flow: | 23:18 | ||
| Parrot->GC.get_header->Pool.get_object->GC.do_gc | |||
| darbelo | chromatic: He's saying the gc doesn't need to know STRINGs and PMCs come from different pools in order to manage them properly. | ||
| bacek | GC.do_gc doing a lot of stuff, including Pool.free_object | 23:19 | |
| New flow: Parrot -> GC.get_header -> GC.do_gc (returning memory to SA) -> SA.malloc | 23:20 | ||
| No coupling from SA to GC | |||
| Oe one of new flows: | |||
| Parrot -> GC.get_header -> GC.do_incremental_gc -> SA.malloc | 23:21 | ||
| s/Oe/Or/ | |||
| dalek | tracwiki: v1 | bacek++ | GCMassacre | 23:22 | |
| tracwiki: trac.parrot.org/parrot/wiki/GCMassa...ction=diff | |||
| darbelo | bacek: Inthenew scheme all gcables are allocated 'somewhere' by 'the allocator', and the gc doen't need any details on how that happens. Right? | 23:24 | |
| bacek | darbelo, yes | ||
| sorry, have to run to $dayjob | |||
| See you! | |||
| NotFound sings Somewhere over the GC... | |||
| darbelo worries that the new scheme can lead to the gc and allocator to track the same data in different places. | 23:26 | ||
| cotto_work | darbelo, put that on the wiki page! | 23:27 | |
| nopaste | "tcurtis" at 192.168.1.3 pasted "PAST appears to stand for Parrot Abstract Syntax Directed Graph" (59 lines) at nopaste.snit.ch/20638 | 23:31 | |
| dalek | rrot: r46976 | plobsing++ | branches/ops_massacre (11 files): debug.ops => dynops |
23:35 | |
| bacek_at_work | darbelo, it will not. Read trac.parrot.org/parrot/wiki/GCSweep...ementation for idea how GC tracking can work. | 23:45 | |
| cotto_work | clock? | 23:48 | |
| purl | cotto_work: LAX: Mon 4:48pm PDT / CHI: Mon 6:48pm CDT / NYC: Mon 7:48pm EDT / LON: Tue 12:48am BST / BER: Tue 1:48am CEST / IND: Tue 5:18am IST / TOK: Tue 8:48am JST / SYD: Tue 9:48am EST / | ||
| darbelo | That was a fast commute ;) | 23:49 | |
| bacek_at_work | :) | ||
| tcurtis | Are there any PAST::Node(or subclass) attributes that can hold other PAST nodes other than value, viviself/base, control, and loadinit? | 23:53 | |
| Tene | tcurtis: PAST::Stmts or PAST::Block? | 23:57 | |
|
23:59
mikehh joined
|
|||