#parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Tasks: Fix compact_pool shenanigans | Fix HLL bugs (TT #389, #1040) | Prioritize Rakudo Needs
Set by moderator on 20 March 2010.
chromatic As you're doing that, extract smaller functions. 00:04
That'll make it much easier to understand.
cotto_work compact_pool? 00:08
chromatic yes 00:09
dalek rrot: r45140 | petdance++ | trunk/compilers/pirc/src/pirlexer.h:
starter file to fill with stuff from pircompiler.h
00:10
cotto_work My eyes are glazing over, but that's just how I am at this time of day.
which means I'm going home 00:11
mikehh the test t/op/gc.t first fails test 5 at r45133 (plus a lot of packfile test failures that were fixed later (it and the packfile tests passed at r45132) 00:12
sorear I have one request 00:13
mikehh btw it is the only test that seems to fail at r45139
sorear I really want precisely nailed down finalization semantics
trying to do anything more complicated than cons cells, when the PDDs say absolutely nothing about the process of destruction, is hard 00:14
allison sorear: a general rule of garbage-collected languages is that you shouldn't rely on "time of destruction" for finalization semantics 00:15
sorear: various scope exits are a better place to hang finalization hooks
sorear: (and in fact, that's actually what the reference counting languages were doing, they just happened to hang destruction off the same scope exits) 00:16
sorear allison: I am writing very low-level code. If I don't write finalizers, there will be segfaults and memory leaks. 00:18
Do you still think I should use scope exits?
with-create-perl-value -> $interp { ... ... # I hope the value is actually dead here! }
chromatic You'll have to do escape analysis for that to work reliably. 00:19
sorear exact;y 00:20
it's much easier to just use VTABLE_destroy, if I can have rules
mikehh need a break - bbl
sorear I don't care if my finalizers are delayed by a day, or even if they never run at all before an exit
allison sorear: then the next question is whether they need to run at a particular time... 00:21
sorear They don't
allison sorear: okay, then time of destruction is fine
sorear they just free resources
however, they need to refer to other objects to correctly free resources
allison sorear: are you talking about ordered destruction? 00:22
sorear currently I'm using an ugly hack that happens to always work for gc_ms and gc_inf, but it's not in any PDD
allison sorear: the ability to guarantee that certain objects will live until after other objects?
sorear allison: Ordered destruction is sufficient but not necessary
Merely being able to query ALREADY_DIED_THIS_CYCLE(pmc) is sufficient
in the current implementation, you can get that by PMC_data(pmc) == NULL 00:23
allison sorear: the trouble being that once a PMC has died, it can be reused
sorear Exactly
the current implementation will call all finalizers before reusing any PMC
00:24 davidfetter joined
allison sorear: that's not guaranteed to always work 00:25
sorear: a partial/generational sweep could reclaim some PMCs but not others 00:26
sorear: and then reuse them
sorear but that's not implemented now 00:29
dalek kudo: 6adcf14 | jonathan++ | src/Perl6/Grammar.pm:
Add missing bit from STD that caused us to get a precedence FAIL with say 3 !=3.
00:43
sorear which is why I want defined semantics 00:45
00:48 abqar joined, theory joined 00:53 jsut_ joined
Whiteknight Austin: ping 00:58
01:03 jsut joined
Coke dukeleto: you about? 01:22
(can folks tests any parrotcode.org links they have lying about?) 01:29
Coke does a google search for "parrot gc" and sees a pic of whiteknight on the first page. 01:30
Coke calls it good and closes the parrotcode.org ticket. 01:31
dalek rrot: r45141 | petdance++ | trunk/config/auto/warnings.pm:
quiet some warnings
rrot: r45142 | petdance++ | trunk/lib/Parrot/Distribution.pm:
move the sub out of the empty block
rrot: r45143 | petdance++ | trunk/lib/Parrot/H2inc.pm:
fixed some regex quotes. Removed unused var @directives. Throw in some explicit returns.
kudo: d0bf6e3 | jonathan++ | (3 files):
Add back IO::Socket and IO::Socket::INET with the small tweak needed for ng, as pointed out by ash++.
01:35
01:52 payload joined 01:56 payload joined
dukeleto Coke: the link situation seems better now, thanks! 01:58
01:58 janus joined
dukeleto anybody know why it says Parrot version 2.1.1 at the bottom of docs.parrot.org/parrot/latest/html/ ? 01:58
Coke dukeleto: because no one did the doc updates for 2.2.0? 01:59
cotto I forgot to ask someone how to do that. 02:00
dukeleto Coke: is that documented somewhere?
Coke dukeleto: if so, same place as all the rest.
cotto kinda in docs/project/release_manager_guide.pod
Coke you need a shell account on parrovm.osuosl.org to do it.
cotto That's what I didn't know. 02:01
Coke, I suppose you're the one I ask for an account? 02:08
Coke I can't grant access. 02:10
I can open a ticket, though. what userid?
02:11 zostay joined
cotto where do I need to have an account? 02:11
parrot.org?
purl parrot.org is drupal? or aggressively cached.
02:12 dalek joined
Coke parrotvm.osuosl.org 02:13
pick a userid.
oh. I have sudo. I can do a lot of damage! 02:15
(but I'll open a ticket. Too many newfangled ways to create accounts. :|) 02:16
is 'cotto' acceptable?
sure it is. =-) 02:18
cotto sure 02:19
what you said ;) 02:20
Coke cotto?
purl it has been said that cotto is Christoph Otto <mailto:christoph@mksig.org> or a cooked salami or The Decider
cotto yeah, that 02:21
purl Sure, that.
Coke ticket opened.
cotto thanks
Coke, maybe you should add other future release managers to that request. 02:51
Coke cotto: if you notice, I asked for the recipe. =-) 02:52
cotto oic
dukeleto is t/op/gc.t failing for anybody else on trunk? 03:01
cotto I'm seeing one failing test. 03:02
03:03 ekiru joined
dukeleto Coke: yes, me as well 03:04
Coke dukeleto: er, you what/ 03:08
dukeleto: er, you what?
dalek izkost: 6f5d950 | sorear++ | src/pmc/p5 (5 files):
Modernity: Remove a bunch of DRY violations ( bacek++ )
03:08 Patterner joined 03:14 cognominal joined 03:23 Coke joined
dukeleto Coke: oops, i mean to reply to cotto. i blame tab-completion 03:24
03:25 Coke_ joined
dalek parrot: a6a6a58 | dukeleto++ | src/plparrot.c:
Kill the unused plparrot_elog function
03:26
cotto keyboard driver 03:33
03:41 janus joined 03:57 ash_ joined
dukeleto starts to read src/embed.c 04:05
i want to create an RPA from C. halp? 04:17
cotto PMC *p = pmc_new(interp, enum_class_ResizablePMCArray); 04:19
or something like that
plobsing dukeleto: Parrot_PMC_new from src/extend.h looks to be what you're after
s/.h/.c/
cotto sees his faulty assumption
dukeleto plobsing: danke 04:20
dalek rrot: r45144 | cotto++ | branches/profiling_testing (3 files):
[profiling] add some initial non-runnable test cases
04:28
plobsing C question: does 'struct { char c; }' get packed into arrays differently from 'char c' ? 04:34
chromatic I can't imagine that it would. 04:35
plobsing I'm just concerned some dumb compiler might think structs are always int-aligned or some garbage like that 04:36
04:38 ekiru joined
sorear plobsing: skimming a copy of the C99 draft I have lying around, that behavior is completely legal 04:42
structure elements are aligned in "an implementation-defined manner consistent with their type"
04:42 petdance joined
sorear != "the type's natural alignment" 04:42
so a compiler could choose to always align structure members at at least 4-byte boundaries 04:43
even if it would pack them tighter in an array
dalek rrot: r45145 | petdance++ | trunk/config/auto/warnings.pm:
add support for clang
04:44
rrot: r45146 | petdance++ | trunk/include/parrot/platform_interface.h:
removing a trailing comma which is not portable
plobsing that's what I was afraid of. In practice I doubt it happens. Not sure whether UnManagedStruct (which I want to add arrayish behaviour to) should accommodate the difference. 04:45
petdance I have given up on the cleanup of pirc
04:51 ingy joined 05:02 AndyA joined
dukeleto incoming 05:05
purl duck!
05:07 cottoo joined
dalek parrot: 88fbe6e | (David Fetter)++ | Makefile:
Fixed per discussion here: justatheory.com/computers/databases..._pgxs.html
05:09
parrot: 1923558 | dukeleto++ | (2 files):
Comment out some stuff that is not quite right and refactor tests
parrot: 01b3968 | dukeleto++ | plparrot.c:
Get rid of dead code and connect to SPI in handler
parrot: b1a18b7 | (David Fetter)++ | HACKING.postgres:
Added configure instructions.
parrot: 6b733d5 | dukeleto++ | plparrot.c:
Helper function to make creating Parrot_Strings less painful
parrot: 424ee56 | dukeleto++ | plparrot.c:
Call Parrot_ext_call with a flattened ResizablePMCArray as an argument. Still needs to be filled properly
parrot: 05dc842 | dukeleto++ | plparrot.c:
Comment out some debug statements and get rid of some dead code
parrot: 60dcc21 | dukeleto++ | (7 files):
Merge load_pir branch
tracwiki: v9 | plobsing++ | NCITasklist 05:17
tracwiki: add summary of proposal initially passed around on list
tracwiki: trac.parrot.org/parrot/wiki/NCITask...ction=diff
parrot: 9a21723 | (Joshua Tolley)++ | plparrot.c:
Remove header for deleted plparrot_elog() function
05:20
cottoo tab completion in ubuntu is starting to border on creepy 05:38
dukeleto cottoo: why so? 05:44
cotto I find it strange that it knows how to deal with Django's manage.py . 05:45
I'm not complaining, of couse.
davidfetter approves of making tab completion smarter 05:46
cotto I just habitually type tab and it magically dtrt.
davidfetter GUIfying all and sundry just slows everything down :P
cotto, ever since i installed bash completion, it's been awesome :) 05:47
cotto It's nice, even when it takes a few seconds to parse Parrot's now-monolithic Makefile.
06:04 dduncan joined 06:11 snarkyboojum joined
dalek parrot: 24aeccf | dukeleto++ | plparrot.c:
Refactor handler to use a helper function to create PMCs
06:17
sorear Is there any documentation floating around on exactly what auto_attrs does? 06:47
cotto There should be. Poke NotFound if you can't find any. istr that he added that feature. 06:49
docs++, NotFound-- 06:50
chromatic It means Parrot handles allocating/deallocating the memory for attributes for you.
cotto The idea is that if a PMC has that in its pmclass declaration, the storage for its ATTRs will be ... what he said
dalek parrot: 9546712 | dukeleto++ | PLATFORMS:
Add an entry to PLATFORMS and reorganize so newest reports are on top
06:51
parrot: 8cc1388 | dukeleto++ | plparrot.c:
Refactor plparrot_func_handler out of plparrot_call_handler
sorear cotto: yeah that's the idea, but I get uncomfortable when I can't put my hand on a nice heavy block of legalese ;) 06:54
06:58 Austin_Hastings joined
cotto msg NotFound You should to add some proper docs about auto_attrs and manual_attrs to docs/pmc.pod. I'd be glad to do some copyediting if needed. 06:59
purl Message for notfound stored.
cotto It's that time again. 07:00
good night 07:01
07:20 uniejo joined
sorear Where are CallSignature PMCs defined? 07:23
Austin sorear: Is there such a thing as a callsignature pmc? 07:29
moritz there's src/pmc/callcontext.pmc 07:30
sorear Austin: it's referenced in quite a few comments but it doesn't seem to exist 07:31
Austin I thought signatures were just strings
like "PiPS -> INSP"
sorear e.g. pcc.c :66 66:string and call arguments are converted to a CallSignature PMC. 07:32
continuation.pmc 51: ATTR PMC *to_call_object; /* pointer to CallSignature */
Austin sorear: Are you on trunk, or on one of the pcc branches? 07:35
sorear trunk
07:36 dduncan left
Austin Then I think what you want is a callcontext pmc 07:37
src/pmc/callcontext.pmc
If you have a look at core.ops, they call src/call/args.c to Parrot_pcc_build_sig_object...(), which creates a new callcontext 07:38
07:42 jrockway joined 07:50 jjore joined 08:08 he_ joined 08:09 hiroyuki_y joined 08:33 bacek joined
bacek o hai 08:36
sorear Hello! 08:41
dalek rrot: r45147 | gerd++ | trunk/NEWS:
News updated
08:52
09:05 payload joined 09:06 payload1 joined 09:07 payload joined 09:08 iblechbot joined
dalek izkost: 2092fb0 | sorear++ | (3 files):
Convert from manual continuation hacking to (post-hackathon) PCC.
09:09
izkost: 5d2d9e7 | sorear++ | (2 files):
Use a less insane calling convention for eval
sorear oops
forgot to push
09:14 AndyA joined
mj41 wow ... Parrot is green last 100 trunk revs. tt.taptinder.org/buildstatus/pr-Parrot/rp-trunk 09:35
09:41 snarkyboojum joined 09:43 sjn joined 09:44 payload1 joined
mikehh t/op/gc.t - Failed test: 5 in coretest, test and all cores 10:00
in testr - t/dynpmc/dynlexpad.t - Failed tests: 3-4 as well
all other tests PASS (pre/post-config, coretest, test, fulltest) at r45147 - Ubuntu 9.10 amd64 (gcc with --optimize)
bacek mikehh, I wallpapered gc.t in next commit already. 10:01
No idea about dynlexpad...
mikehh bacek: extracted the failing tests - if I just run 4 and 5 it passes, if I run 1-5 as subs it 5 fails, but running the tests as main passes 10:05
thats t/op/gc.t 10:06
10:20 payload joined 10:27 payload1 joined, payload joined
nopaste "mikehh" at 81.149.189.7 pasted "t/dynpmc/dynlexpad.t failing in testr" (39 lines) at nopaste.snit.ch/20065 10:31
10:39 fperrad joined
mikehh in testr - t/dynpmc/dynlexpad.t - Failed tests: 3-4 10:53
all other tests PASS (pre/post-config, make corevm/make coretest, smoke (#32811), fulltest) at r45148 - Ubuntu 9.10 amd64 (g++ with --optimize)
11:24 dalek joined 11:53 sorear joined 12:01 whiteknight joined 12:11 ekiru joined
whiteknight good morning, #parrot 12:12
12:14 clinton joined 12:17 lucian joined 12:20 bacek joined 12:22 tetragon joined 12:29 solarion joined 12:50 payload joined 12:52 payload joined
Austin Hello, whiteknight 13:01
whiteknight good morning Austin
Austin Got your email this morning. Passed it along. 13:05
dalek TT #1529 created by masak++: Rakudo fails to build with newer Parrot revisions, in particular r45148 13:22
TT #1529: trac.parrot.org/parrot/ticket/1529
bacek just reverted "fix" for TT#1172. 13:33
On on this "positive note" I'm departing to bed.
s/On/And/
dalek rrot: r45149 | bacek++ | trunk (9 files):
Revert "Freeze/thaw Sub.outer_sub by name to avoid thawing second

things. bacek--
13:37
TT #1172 reopened by bacek++: Lexical Associations Not Thawed with Tailcalls
TT #1172: trac.parrot.org/parrot/ticket/1172
13:45 theory joined
Coke gerd? 13:46
purl i heard gerd was gastroesophageal reflux disease (or something that makes you want to vomit, c.f. the Perl debugger internals) or Gerd Pokorra
Coke msg gerd r45147 is wrong, unless someone merged a branch back about the dynpmcs that I missed. 13:47
purl Message for gerd stored.
Coke (did I miss that?)
13:47 Coke_ left
whiteknight Austin++ # I really appreciate it! 13:54
14:03 PerlJam joined 14:05 lucian joined 14:15 iblechbot joined
Coke Anyone looking for someone to do some perl development? I appear to have some free time coming up. =-) 14:19
14:25 Mokurai joined 14:26 Mokurai joined 14:36 ruoso joined 14:42 AndyA joined
dalek TT #1529 closed by coke++: Rakudo fails to build with newer Parrot revisions, in particular r45148 14:45
TT #1529: trac.parrot.org/parrot/ticket/1529
15:06 patspam joined 15:10 dalek joined 15:11 fperrad joined
whiteknight slow day today in #parrot-land 15:29
Coke whiteknight: WOOOOOOOOOOOOOOO 15:32
ahem.
Andy I have officially given up on pirc cleanup 15:33
it doesn't compile, or even come close to it.
whiteknight Andy: fuggedaboudit
purl I fuggodaboudit
whiteknight not you, purl 15:34
purl Whatever.
whiteknight don't take that tone with me!
Andy well, except for what I just committed. But I can't break it more than it's broken already 15:35
NotFound Andy: I also did several attempts yesterday, and give up. 15:36
Andy and apparenlty it hasn't been touched since Oct
whiteknight Wow, Khairul's email to the list this morning is quite impressive 15:39
obviously some work to do to bring his proof-of-concept up to best practices, but not bad
Coke Andy: you said you were done! 15:41
Andy I am
Coke ugh, merge of something recently did the property update again. :P 15:42
Andy which prop?
Coke svn:mergeinfo
purl i think svn:mergeinfo is updated every time you merge from trunk to branch
whiteknight svn props are the worst
Coke even though none of those files were modified on branch, their mergeinfo is updated on merge back to trunk. 15:43
seems crazy.
whiteknight if, as purl suggests, svn:merginfo gets changed on merge from trunk->branch, that would explain it 15:44
then anything that was changed in trunk between branch creation and merge would have udpated props
15:44 riffraff joined
NotFound whiteknight: runcores can't be written outside and using inside macros at the same time. 15:45
whiteknight NotFound: what do you mean?
NotFound whiteknight: the .c file attached to that messsage
whiteknight oh, yeah. There are a few problems with it 15:46
but it's not a bad proof-of-concept from a new coder
NotFound It uses code_start and code_end, which are macros.
whiteknight those are commented out
dalek rrot: r45150 | petdance++ | trunk/compilers/pirc/src (2 files):
fixing some consts
rrot: r45151 | petdance++ | trunk/compilers/pirc/src/pirsymbol.c:
fix ARGMOD on a function
rrot: r45152 | petdance++ | trunk/src/gc/gc_ms.c:
Added PARROT_ annotations
whiteknight runcores can be compiled separately and loaded as a dynlib, right? 15:48
or was that feature never finished?
NotFound Don't know, but in any case they can't copy & paste from internal ones without reimplementing the macros. 15:49
whiteknight yeah, there are some best-practices to be followed here
or instance, hijacking a function pointer is bad
Coke Andy: what's PARROT_MALLOC ? 15:50
whiteknight Coke: modifier to tell teh compiler that the function returns newly allocated memory
Andy tells splint that the function is returning newly allocated storage
whiteknight er, splint
Andy OH! And Coke, I was thinking about build targets last night
I'm thinking I could make splint just be a compiler
perl C
Coke Andy: were they sweet, sweet dreams?
Andy perl Configure.pl --cc=splint 15:51
Coke Andy: that would help clean things up a lot.
Andy and boom, there's your target
Coke you have my blessing, whatever that's worth. =-)
Coke needs to automate a build-warning checker. 15:53
seems like quite a few have snuck in.
current warnings with my gcc build: feather.perl6.nl/~coke/ef 15:54
Andy: I'm assuming some of those were caused by you adding -pedantic recently? 15:56
Andy yes, don't know how I missed those 15:57
Coke might want to move that to --cage.
(or fix them all; that'd be super awesome. =-)
Andy well, if we're doing something it doesn't like, we're doing something it doesn't like 15:58
are we relying on gotoing a label?
then can't help that much. :-)
and you'll note I also added a clang target 16:00
or support, rather
NotFound Fixing the gotoing to labels is easy, just drop computed goto core.
whiteknight NotFound++ 16:01
16:02 hercynium joined
whiteknight if we could drop all the unnecessary cores AND get rid of all uses of "goto", I wouldn't be upset 16:03
NotFound Did we use "goto"... let's ack...
whiteknight we do use it in a handful of places, if I remember correctly 16:04
Andy there's a lot of goto goin' on
NotFound Yes, we have a bunch.
Fortunetely several are just PIR usage examples in POD. 16:08
dalek rrot: r45153 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] handles pir_nqp_flags with parrot-nqp
16:19
rrot: r45154 | petdance++ | trunk/config/auto/warnings.pm:
Pedantic warnings are too darn noisy, and complain about stuff we have to do in computed gotos
whiteknight that doctor.c program, how do I even build it? When I build it and try to run it I get an error about can't find libparrot.so.2.2.0 16:27
I'm building with cc -o doctor doctor.o -Lblib/lib -lparrot
and it links fine, with no errors
NotFound whiteknight: you need LD_RUN_PATH 16:28
whiteknight nothing about that in Makefile, and ./parrot runs fine 16:29
I'm building the same way, basically
NotFound whiteknight: borrow from examples/embed/Makefile 16:30
whiteknight nothing about that in there either 16:31
NotFound whiteknight: parrot_config linkflags 16:32
whiteknight "-L/usr/local/lib -lparrot"
NotFound whiteknight: mine has: -Wl,-E 16:33
dalek rrot: r45155 | fperrad++ | trunk/MANIFEST.generated:
since r45091, include/parrot/platform_interface.h is not generated
16:35
whiteknight okay, I think it eeded -Wl,-rpath=... 16:36
NotFound whiteknight: LD_RUN_PATH is usually easier 16:37
(in linux)
whiteknight ...this doctor application is actually very cool 16:40
ls
there are some very real applications for this kind of idea with respect to tracing, profiling, etc 16:41
and the fact that you can write the tools in PIR instead of C is a big plus 16:42
NotFound whiteknight: we had the idea of doing something like that in parrot_debugger, but lacked the time. This may be a good step towards that.
whiteknight NotFound: exactly. I think this could be perfect for that 16:43
performance is an issue, but that's the story of Parrot's life 16:44
NotFound If it helps debugging and locating problems, I don't care about performance.
whiteknight yeah, that's my thought 16:48
adding hooks in various places to catch events and run handlers could be a very cool thing for a lot of uses 16:49
may also be a good way to start the transition to Lorito, and give us the ability to prototype new things in PIR before casting them in C 16:53
16:53 fperrad joined
whiteknight ls 16:56
damnit
the damn VM confuses me every time because the cursor there still blinks even when the VM window doesn't have focus
dalek rrot: r45156 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] add item inc_pir
17:08
rrot: r45157 | NotFound++ | trunk/docs/pmc.pod:
[doc] mention auto/manual_attrs in pmc.doc, by suggestion from cotto++
17:17 tewk joined
cotto_work NotFound++ 17:17
17:48 PerlJam joined 17:55 jsut_ joined 18:01 chromatic joined
whiteknight chromatic: hello today 18:05
nopaste "Whiteknight" at 173.12.37.77 pasted "something evil for chromatic++" (60 lines) at nopaste.snit.ch/20069 18:06
whiteknight it's something I've been idly putting together. Obviously very early stage. Framework for allowing us to write ops in terms of other ops 18:07
cotto_work sounds like win
cotto_work looks
whiteknight the magic is dark, but the spirit is pure
chromatic Interesting. 18:08
whiteknight obviously there are a few blanks to fill in. Like how to insert one op into the table.
and how to get the metadata I need from the signature string
but those problems aren't hard to solve, just require more time that I've spent so far 18:09
I don't think we will use this kind of mechanism for Lorito, I'm hoping the PIR->Lorito translation is much thinner and simpler 18:13
we obviously don't want to build a sig object for every PIR op we invoke
dalek rrot: r45158 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] add item hll_hook
18:14
Coke PerlJam: hey. 18:16
dalek nxed: r436 | julian.notfound++ | trunk/token.cpp:
hex integers in stage 0
18:43
nxed: r437 | julian.notfound++ | trunk/token.cpp:
ooops, forgot uppercase X
18:45 solarion joined
Coke ponders writing some of partcl in tcl. :| 19:05
allison sixperl call now or an hour from now?
chromatic an hour
19:25 riffraff joined 19:30 ash_ joined, pmichaud joined
dalek nxed: r438 | julian.notfound++ | trunk/t/basic/01int.t:
hex test
19:31
ash_ ping whiteknight ? 19:35
whiteknight pong
ash_ whiteknight: i was wondering what all I need to do for the GSOC? do i need to write an outline of my project submission for you guys?
whiteknight ash_: yes, that's a good idea. We've had a few students send in short email proposals already 19:36
ash_ where should I send it? the parrot mailing list?
whiteknight Send a summary of your proposal to the parrot-dev list, and get feedbakc
yeah
ash_ kk, i'll try to get that sent up in the next day or so, is there anything else I should look into doing? 19:37
sorear allison: if you're talking about #rakudosketch, it's right now
Coke sorear: there's a rakudosketch? =-) 19:38
sorear yes, in anticipation of R*
19:39 iblechbot joined
particle coke: started last week, on freenode 19:49
there's a log now, too
r* folks need an update on parrot memory leaks 19:50
moritz I'm writing a mail to parrot-dev right now, askin for aid
Coke ObChromatic: "small pir test cases that show the memory leak help". 19:51
sorear wonders whether to drop blizkost on the floor and switch attention to the Parrot memory profiler 19:53
whiteknight ash_: An email to the list with your proposal is the first step. You're already active here on IRC 19:55
particle moritz++ 19:56
ash_: tpf has an application form
whiteknight particle: application form? link? 19:57
particle getting...
Coke sixperl?
purl somebody said sixperl was perl 6 weekly status conference call.
ash_ whiteknight: mainly, i was just going to focus on the llvm stack frame builder 19:58
particle socghop.appspot.com/gsoc/org/show/g...oc2010/tpf
whiteknight ash_: for your GSOC project?
ash_ yeah
whiteknight okay, I'll look forward to the proposal then 19:59
TimToady phone 20:00
20:04 AndyA joined 20:05 joeri joined
chromatic examples/benchmarks/gc_waves_sizeable_data.pasm is sufficient to demonstrate GC and buffers.. 20:05
dalek rrot: r45159 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] add a variant of run_step (helper for nqp)
20:09
20:10 Mokurai joined
whiteknight chromatic: looks like the rakudo folks need the compact_string fixes kicked into high gear 20:11
chromatic Yeah, I've been working on it, but I don't have the right fix yet. 20:12
ash_ i know when you compile rakudo you see a huge spike in memory usage
most of the time when its running, its not bad (in my experience) but compiling, when its converting all the .pm's to .pir's and so forth, it can be a hog 20:13
chromatic I wonder if reverting r43939 would help.
moritz chromatic: should I try that locally? 20:14
chromatic Yes. 20:15
20:16 lucian joined 20:23 eternaleye joined
moritz chromatic: reverting that patch naively made parrot suck up all memory during compilation 20:29
Coke www.sealiesoftware.com/valgrind/ 20:30
"valgrind for mac os x"
testing it out now... 20:31
NotFound I'm ruminating an idea... mixing several pbc into one fakecutable, instead of mixint into a pbc and pbc_to_exe it. 20:33
Coke Ugh. my osx is TOO NEW.
20:37 Mokurai1 joined 20:41 ruoso joined
nopaste "chromatic" at 173.50.130.127 pasted "moritz: reduce GC size threshold" (13 lines) at nopaste.snit.ch/20070 20:41
chromatic NotFound, what difference do you expect from that? 20:42
moritz somehow parrot HEAD doesn't build... I'll revert all local patches to see if they are to blame 20:47
nope
NotFound chromatic: about the big include chains
s/about/avoid
moritz /usr/bin/ld: src/ops/core_ops_cg.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
src/ops/core_ops_cg.o: could not read symbols: Bad value
really bath & 20:48
GeJ_ Good morning everyone. 20:53
chromatic Hm, no real improvement there. 20:54
Coke so if you lie to valgrind about your os, you can build and install it on OSX 10.6; it then seems to segfault regularly. ah well. 20:55
hopefully if we have some 10.5's out there, it will still beo f some use.
->
dalek nxed: r439 | julian.notfound++ | trunk/examples/pirado.winxed:
.return with values in pirado
21:25
21:42 bacek joined 21:43 riffraff joined
bacek morning 21:43
cotto_work hi bacek
21:45 plobsing_ joined, ekiru joined
bacek aloha cotto 21:45
cotto_work got a new machine yet? 21:46
bacek not yet
msg chromatic compact_pool has nothing todo with core.pir memory consumption. "String pool size 253702596" (this is final size during compilation) 21:51
purl Message for chromatic stored.
bacek msg 253M out of >1.5G. Problem is somewhere else... 21:52
purl Sorry, I've never seen 253m before.
bacek msg chromatic 253M out of >1.5G. Problem is somewhere else...
purl Message for chromatic stored.
chromatic NQP allocates several multi-meg STRINGs. 21:54
bacek yes
chromatic There are memory leaks somewhere though.
21:54 mikehh joined
chromatic That pool size never shrinks, too. That's not good. 21:54
bacek It shrinks. 21:55
String pool size 251013884
chromatic How can you tell?
bacek String pool size 250761840
String pool size 253803748
String pool size 253702596
Looks like rakudo (or nqp) keep too much information.
chromatic I'm sure it does.
plobsing_ why is a parser allocating strings? doesn't it just slice and dice existing strings? shouldn't all strings coming out of a parser be substrings? 21:57
chromatic If it appends anything, it needs a new string. 21:58
Coke particle++ # anti-freaking out antidote. 22:02
plobsing_ so it allocates these strings by concatenating up the PIR source? 22:03
22:03 Whiteknight joined
Coke plobsing_: check out src/pmc/codestring.pmc 22:04
plobsing_ would it be possible/would there be any benefit to compiling blocks as soon as they close? 22:08
chromatic I think it's possible. 22:09
arnsholt bacek: BTW, did you see TT #1528? (my continuation bug from a few days ago redux)
cotto_work Can we hack the GC to show useful information about various gc-allocated objects? 22:11
Whiteknight cotto_work: hack it with a machete
cotto_work Can much useful information about allocated objects be gotten from it in its current state? 22:12
Whiteknight I think so 22:14
depends what you consider useful information 22:15
cotto_work "helps us find what's eating memory in the Rakudo build"
which probably means trying something and finding out whether it gives us something useful 22:16
chromatic Hm, that helped. 22:17
dalek rrot: r45160 | chromatic++ | trunk/src/call/pcc.c:
[PCC] Fixed a memory leak in Parrot_pcc_invoke_sub_from_c_args(). Rant: this

strings are expensive and silly.
22:19
Whiteknight wow, how did we miss that? 22:22
chromatic No one ran Valgrind, and whoever wrote it didn't pay the due diligence tax. 22:23
cotto_work s/valgrind/memcheck/, but yes
chromatic++
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32821), fulltest) at r45159 - Ubuntu 9.10 i386 (g++ with --optimize) 22:24
dalek tracwiki: v5 | plobsing++ | FreezeThawTasklist
tracwiki: update to reflect current status
tracwiki: trac.parrot.org/parrot/wiki/FreezeT...ction=diff
chromatic Let's see what this does.
cotto_work ouch 22:27
chromatic Rakudo still tops out at 700MB RSS for me. 22:28
Parrot_gc_allocate_memory_chunk_with_interior_pointers() leaks. 22:35
dalek rrot: r45161 | chromatic++ | trunk/src/call/pcc.c:
[PCC] Fixed another memory leak related to Parrot_pcc_split_signature_string(),
22:36
chromatic Looks like it always gets called from thaw somehow.
... and there's one bug. 22:47
Coke chromatic++, btw.
chromatic LexInfo doesn't have the mark/destroy flags set. 22:48
cotto_work I thought auto_attrs implied those
chromatic Does it? 22:50
We'll see if that works here then.
Andy shouldI care that my parrot isn't building because it can't find imcc? 22:51
sorear LexInfo are instantiated in O(#subs), right?
Andy I'm guessing yes.
sorear not O(#calls)?
chromatic Right. 22:52
dalek rrot: r45162 | petdance++ | trunk (2 files):
add src/main.c to the list of files that get headerized, so we can remove unused args in it.
chromatic cotto_work, making that change plugged a big memory leak. 22:53
cotto_work I've been wrong before. 22:56
chromatic Still not a huge improvement for Rakudo, but an improvement. 23:01
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32822), fulltest) at r45161 - Ubuntu 9.10 i386 (gcc with --optimize)
Austin sorear: LexPad is per call. LexInfo holds lists of names, which are static
sorear is mikehh a smoke bot? 23:04
Austin: thought so, good to confirm 23:05
23:08 tetragon joined
dalek rrot: r45163 | chromatic++ | trunk/src/pmc/lexinfo.pmc:
[PMC] Enabled the custom mark/destroy flag on all created LexInfo PMCs, which
23:09
sorear how huge 23:10
chromatic 81% of the memory leaked in my test. 23:11
almost 82%
My test is a cut-down version of core.pm, because the real one would take way too long to profile.
Who's interested in Packfile leaks? 23:12
mikehh sorear: no - but sometimes I am not so sure :-} 23:13
sorear chromatic: what % of the memory allocated is leaked? 23:17
23:18 mikehh joined
chromatic Valgrind doesn't report that. 23:18
Oh wait, it does. 23:19
0.24% for Hello, world! in Perl 6.
23:24 ruoso joined 23:28 Whiteknight joined
Whiteknight chromatic: topping out at 700MB is a far cry better than the 1.5GB it was at 23:37
sorear Whiteknight: P64 or P32?
Whiteknight I don' know 23:38
dalek rrot: r45164 | petdance++ | trunk/src/gc/system.c:
removed useless PARROT_INTERPs, and made all pointers const-correct
23:42
rrot: r45165 | petdance++ | trunk/src/gc (3 files):
more consting and removal of unused INTERPs
23:46 kid51 joined 23:54 bacek joined 23:58 ekiru joined