Camelia, the Perl 6 bug

IRC log for #parrot, 2010-05-24

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced