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