Parrot 2.9.1 Released | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GC tuning | remove deprecations |
Set by moderator on 19 October 2010.
mikehh ok TapTimder seems to be starting the cygwin prep - getting r49617 00:00
nwellnhof 1. we create a reference from a gen2 object to a gen0 object.
2. the reference is tracked in root_objects. 00:01
3. we perform a gen0 GC.
4. the gen0 object is propagated to gen1.
5. root_objects is cleared. 00:02
6. the program continues.
7. we perform a gen1 GC.
8. the old object from gen0 that is now in gen1 is swept, because we lost the old reference. 00:03
Tene I keep having the (entirely unhelpful) urge to fix kid51's memory issues by buying ram for him. 00:05
dukeleto Tene: indeed, but we will have to solve these issues when we want to support mobile/embedded stuff 00:08
Tene Yes, I completely agree. 00:09
00:12 dngor left
bacek_at_work nwellnhof, incorrect. gen2 object will be in root_objects. After m&s bring_them_together will put gen0 object into gen2 00:27
nwellnhof, magical vtable_mark_propagate inside bring_them_together 00:28
00:33 dngor joined
nwellnhof bacek: ok, i see. 00:37
bacek: what is PObj_GC_generation_2_FLAG for, exactly? 00:38
bacek_at_work nwellnhof, flag to check that PMC was already processed. 00:46
e.g. when we bringing objects into same generation and have circular reference 00:47
nwellnhof is it used somewhere outside of gc_ms2.c?
PObj_GC_generation_2_FLAG is set and cleared in various places, but i don't see where its value is actually read. 00:50
bacek_at_work I think I got rid of almost all usage of this flag. 00:51
It can probably disappear.
Ah, yes.
r49578 I think 00:52
yes, I reworked vtable_mark_propagate to not use this flag.
nwellnhof bacek: looking at gc_ms2_bring_them_together again, i think it should be safe to iterate only over gen2 objects in the original root_objects list. 00:54
that should be a lot faster.
bacek_at_work nwellnhof, ?
I think you are talking about proper handling of old_object_tails 00:55
which should apply to gen1 and gen2
nwellnhof i still don't understand the old_object_tails thing. i'll have a look at it later. 00:58
bacek_at_work basically - I remember old objects[n]->last to avoid processing of untouched objects in bring_them_together 01:00
01:01 kid51_at_dinner is now known as kid51
kid51 taptinder? 01:07
Bring back purl! purl would know where taptinder is located?
s/\\?/!/
bacek_at_work aloha, taptinder? 01:11
aloha bacek_at_work: taptinder is continues integration tool - taptinder.org . For Parrot project running on tt.taptinder.org/ and reporting build failures to #parrot channel as ttbot.
01:11 dngor left
mikehh tt.taptinder.org/ 01:11
bacek_at_work kid51, aloha is too shy to answer without explicit question 01:12
mikehh YES - r49617 worked for cygwin, now we gotta figger out what kid51 needs on Darwin ppc 01:13
01:13 dngor joined 01:17 GodFather joined 01:18 GodFather left 01:20 dngor_ joined 01:21 dngor left
dalek rrot: r49618 | jkeenan++ | trunk/config/gen/platform (2 files):
Correct spelling errors in POD only.
01:26
cotto It's nice to see something from rgrjr.
nopaste "kid51" at 192.168.1.3 pasted "find /usr/include -type f -name '*.h' | xargs grep -ni 'physical.*memory'" (6 lines) at nopaste.snit.ch/24645 01:28
bacek_at_work kid51, /usr/include/sys/sysctl.h:551: * hw.memsize - The number of bytes of physical memory in the system. 01:29
this is what we want for darwin
afk # lunch 01:30
dukeleto brianwisti: just pushed some changes to parrot-handler, take a look
nopaste "kid51" at 192.168.1.3 pasted "darwin: /usr/include/sys/sysctl.h (excerpts)" (13 lines) at nopaste.snit.ch/24646 01:35
cotto seen rgrjr 01:37
aloha Sorry, I haven't seen rgrjr.
01:38 nwellnhof left 01:46 s1n left 01:47 dngor joined 01:51 dngor_ left 01:52 bacek left 01:54 dngor left 01:58 dngor joined
nopaste "kid51" at 192.168.1.3 pasted "Darwin: first attempt to prove for physical memory" (55 lines) at nopaste.snit.ch/24648 02:23
kid51 when compiled and run, above paste returns: sysctl HW_PHYSMEM: 268435456 bytes 02:24
kid51 is exhausted from writing his first-ever useful C program 02:25
cotto Nice. Do you want someone else to prepare a patch using that or can you?
kid51 We will need to create a file called: config/gen/platform/darwin/sysmem.c 02:26
... analogous to those created by bacek and fperrad for 'generic' and 'win32'
cotto Sure. It's pretty easy once the code exists. 02:27
kid51 Then use the code in my program as the guts of that.
kid51 must sleep
cotto ok. I'll get a patch ready for you to test (or just commit and see what ttbot says).
kid51++ 02:28
02:34 kid51 left 02:35 janus left
cotto bacek_at_work, is it safe to use size_t for the number of bytes in physical memory? 02:47
02:49 dngor_ joined 02:51 dngor left 02:52 dngor_ is now known as dngor 03:00 janus joined
bacek_at_work cotto, it is only one right way to do it. 03:08
cotto Would INTVAL be better, for systems with >2*32 bytes of memory? 03:18
bacek_at_work no 03:29
size_t is special type for addressing memory
plobsing there is *no* truly correct way of doing it. size_t is large enough to store the size of anyone object. it is possible to have memory that is discontiguous (eg: banked memory) where maximum object size << ram size. C89 doesn't provide an integral type guarranteed to be equivalent to pointer size. 03:31
size_t is the closest to right answer possible
cotto yay 03:33
plobsing C99 tries to remedy this with ptrdiff_t, but I somehow suspect it is also insufficient 03:34
cotto anyone have a darwin system handy? 03:35
dalek rrot: r49619 | cotto++ | trunk (2 files):
[gc] first attempt to detect available memory on darwin
03:45
03:57 davidfetter left
dalek rrot: r49620 | cotto++ | trunk/config/gen/platform/darwin/sysmem.c:
[platform] codingstds fix
04:00
rrot: r49621 | cotto++ | branches/opmap_aware_pmcs:
create a branch to make Packfile PMCs useful after the dynop_mapping merge
GeJ Thanks to cotto, I can do C. 04:15
cotto ? 04:17
GeJ Well, I mostly copy-n-pasted the darwin/sysmem.c to freebsd/sysmem.c and fixed the build locally. 04:18
cotto ok 04:20
04:40 cognominal left 04:59 contingencyplan left
GeJ cotto: sorry to bother you, but looking at kid51's nopaste, he's looking at the HW_PHYSMEM sysctl while your commit uses HW_MEMSIZE. 05:06
I'm just asking because under FreeBSD, I also used HW_PHYSMEM. 05:10
cotto HW_PHYSMEM is limited to 32 bits according to Apple's docs. 05:12
developer.apple.com/library/mac/#do...ctl.3.html
HW_MEMSIZE is 64-bit
GeJ Oh, ok. Sorry. 05:30
cotto no need to apologize for apple's docs ;) 05:32
I'm glad you noticed.
seen chromatic 05:39
aloha chromatic was last seen in #parrot 1 days 3 hours ago saying "libparrot-dev?".
06:00 jan left 06:05 jan joined 06:19 spinclad left 06:43 theory left 06:54 particle joined 07:06 fperrad joined
dalek rrot: r49622 | geraud++ | trunk (3 files):
[platform] Fix the build under FreeBSD. kid51++ and cotto++ for the darwin version.
07:20
GeJ now I wonder how much stuff I broke. 07:23
07:25 fperrad left 07:39 fperrad joined 07:45 bacek_at_work left 07:47 aloha left 08:08 krunen joined 08:13 aloha joined
GeJ aloha: welcome back girl. 08:13
cotto aloha, clock? 08:38
aloha cotto: cotto: LAX: Thu, 01:38 PDT / CHI: Thu, 03:38 CDT / NYC: Thu, 04:38 EDT / UTC: Thu, 08:38 UTC / LON: Thu, 09:38 BST / BER: Thu, 10:38 CEST / TOK: Thu, 17:38 JST / SYD: Thu, 19:38 EST
08:47 jjore left 08:54 fperrad left 08:55 bacek joined
cotto We should make sure this idea from the Saturday meeting doesn't get lost: slatelanguage.org/2004/05/thesis-on...-dispatch/ 09:09
ttbot Parrot trunk/ r49620 i386-freebsd-64int make error tt.taptinder.org/file/cmdout/412104.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 09:49
bacek aloha, humans 09:50
seen mikehh 09:51
aloha mikehh was last seen in #parrot 8 hours 37 mins ago saying "YES - r49617 worked for cygwin, now we gotta figger out what kid51 needs on Darwin ppc".
mikehh bacek: here 09:55
bacek mikehh, is g++ build still an issue?
mikehh bacek: not in trunk, but many problems in generational_gc 09:56
bacek mikehh, yes, I know. I ignore it for now. But if you have time - feel free to fix it. Just leave c++ style comments. 09:57
mikehh bacek: 'k there are ASSERTS and docs in codetest in generaational_gc among others 09:59
10:03 bacek_at_work joined 10:18 bacek_at_work left 10:19 bacek_at_work joined 10:20 jjore joined 10:25 bacek_at_work left 10:26 bacek_at_work joined
mikehh need to backupup and update stuff - bbl 10:35
10:35 mikehh left 10:40 luben left 10:44 kid51 joined
kid51 GeJ ping 10:44
GeJ kid51: pong 10:47
kid51 Gej: never mind; my error; thought there was a MANIFEST problem with your last commit, but it was mine
GeJ So, no pointyhat for me? 10:48
kid51 Afraid not.
GeJ Good thing. :)
kid51 I had drafted a file called config/gen/platform/darwin/sysmem.c -- but not placed it under version control. 10:49
When I did 'svn up', I got cotto's version, but also a warning about that.
That short-circuited the 'svn up'. 10:50
GeJ ok.
kid51 Then, when I did Configure.pl, I got an error in init::manifest saying your file was missing.
It simply hadn't arrived because svn up hadn't completed.
GeJ Ah, makes sense. 10:51
Well, partially. I'm not sure if stopping a download at the first error is a good thing. 10:52
but I'm too tired to think correctly anyway.
Good night gentlemen.
kid51 Good night! 10:53
GeJ kid51: It looks like LLVM is not detected on my box at work, I'll have a look at it tomorrow. Will you have a few minutes for me if I get stuck? 10:54
GeJ & 10:56
kid51 Yes. You should understand that I cobbled that config step together out of LLVM docs on the net, with no prior understanding of LLVM.
It has been tested on a Linux box where I installed LLVM and on Darwin where I had not, and gave the correct results in each. 10:57
But if "box at work" is your freebsd box, then probably no one has assessed it on that. 10:58
nopaste "kid51" at 192.168.1.3 pasted "Darwin: build failure at r49622" (534 lines) at nopaste.snit.ch/24656 11:06
11:07 bacek_at_work left
kid51 The patch cited was my first attempt to build on Darwin subsequent to cotto's patch based on what I pasted last night. 11:07
11:07 bacek_at_work joined
kid51 Of note: a warning at line 355: "config/gen/platform/darwin/sysmem.c:38: warning: no previous prototype for 'Parrot_sysmem_amount'" 11:08
11:08 dngor left
kid51 I don't know if that led to the ultimate failure at lines 533-534, or not. 11:09
The ultimate build failure could, of course, be due to revisions made in other areas of Parrot since the last time I successfully built on this box (r 49573). 11:14
But no more time to diagnose this now.
11:14 dngor joined 11:28 kid51 left 11:32 kid51 joined 11:37 whiteknight joined
whiteknight good morning, #parrot 11:38
kid51 ~~ 11:39
11:40 cognominal joined
whiteknight hello Jim, how are you today? 11:47
11:53 mj41 left
kid51 Mostly de-jetlagged from my West Coast trip. 12:02
Last night was first chance to deal with Parrot code problems since then.
12:05 bacek_at_work left, bacek_at_work joined 12:15 bacek_at_work left 12:16 bacek_at_work joined 12:17 mikehh joined 12:22 kid51 left 12:29 aloha left 12:36 bluescreen joined 12:38 aloha joined 12:50 contingencyplan joined
whiteknight kid51: I don't know if you saw all the stuff at #ps and after, but you got nominated to be the lead on the new Project Management team 12:57
I suspect you might be happer on the QA team, but that's for you to decide of course 12:59
happier* 13:00
13:04 bluescreen left 13:05 bluescreen joined 13:14 mikehh left 13:26 bacek_at_work left 13:29 bacek_at_work joined, ruoso joined 14:07 aloha left 14:08 aloha joined 14:12 ruoso left 14:13 Andy joined 14:18 aloha left 14:19 aloha joined 14:31 bacek_at_work left, bacek_at_work joined 14:45 particle left, particle joined 14:58 theory joined 15:06 brianwisti joined 15:13 dmalcolm joined 15:54 mikehh joined 16:02 bluescreen left
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#741) fulltest) at r49622 - Ubuntu 10.10 amd64 (g++-4.5 with --optimize) 16:46
16:55 bacek_at_work left, theory left 16:56 bacek_at_work joined 17:05 luben_work joined
cotto at least ubuntu's happy 17:12
dukeleto 'ello 17:13
dalek rrot: r49623 | NotFound++ | trunk/t/pmc/lexpad.t:
add a LexPad test to cover a corner case
17:27
17:31 lucian joined 17:32 tadzik joined 17:43 allison left 17:49 chromatic joined 17:50 cotto left 17:52 theory joined, luben_work left 18:01 allison joined 18:10 davidfetter joined
particle happy birthday, cotto! 18:14
jnthn Anyone know if the native calls branch worked on for GSoC got merged yet? 18:15
dukeleto jnthn: nope, it didn't
jnthn: it is one failing test away from being mergable 18:16
jnthn: would you care to take it for a test drive? 18:18
jnthn: and see if the test suite fails for you?
jnthn: i think one of the packfile tests coredumps on certain platforms on the gsoc_nci branch
jnthn dukeleto: Was asking mostly since somebody on #perl6 wondered about it. I would like to play with it when I get chance though, because I want to see how Zavolaj handles on it. 18:20
dukeleto: And also what ways I can extend Zavolaj with the new stuff on offer.
dukeleto jnthn: it is on my short list of branches to get merged soon 18:25
davidfetter dukeleto, how was your flight?
davidfetter wishes cotto a happy birthday
dukeleto davidfetter: short and sweet 18:28
jnthn: you can assume that when gsoc_nci lands, parrot will be able to do anything that libffi can do
davidfetter dukeleto, that's the way i like 'em
18:33 bacek_at_work left
dukeleto davidfetter: what are you hacking on these days? 18:33
18:36 bacek_at_work joined
davidfetter $work and putting together a "fungicide farm" for pg patches 18:36
like a buildfarm, only it alerts on bit rot
whiteknight after the generational_gc branch lands, I'll focus my attentions on the gsoc_nci branch, if nobody beats me to it
that does sound like a very valuable improvement
dukeleto davidfetter: very interesting. care to explain a bit more about how you alert about bit rot? 18:38
davidfetter dukeleto, imagine you've made a branch from master, done some cool stuff on it 18:44
what i'd like to do is pull patches from master as they arrive, try to apply them, configure, build, etc., and alert if any of these steps fail
pgbuildfarm.org <-- very likely the system i'll be extending/abusing for this 18:45
because of security considerations, the first people to go with this would be the authors of patches
but i could see having others decide that they trust the patch author and would be willing to subscribe a box to this 18:46
davidfetter hopes he's making some sense
brianwisti It makes sense to me. Grab and apply patches, but only if they come from a trusted source. 18:47
davidfetter master is the trusted source
this is for the postgresql project, btw
18:50 brianwisti left
davidfetter on the pg project, there are a relatively few people who are "committers," i.e. can push to the master repo 18:52
other developers need to work on separate branches, and there can be a lag--sometimes quite a long lag--between when the patch is originally done and when it's actually reviewed by a committer, applied, and pushed 18:53
but even in other kinds of development models, an auto-patcher/bitrot alert could be quite useful
whiteknight ah, okay. So it's an automated tester to ensure older patches still apply and run cleanly. I like the idea 18:54
atrodo I like the idea. It's a nice novel approach
davidfetter :)
the code is mostly perl5 (pretty brutal stuff, a lot of it) and the data store is (of course) postgresql. i don't really see any point in changing the data store 18:55
maybe making the perl5 code a little more modern would help
chromatic I can recommend a book or two for that. 18:56
davidfetter please do :) 18:57
davidfetter might even be able to get work to throw down for this :) 18:59
dukeleto davidfetter: sounds awesome! I know chromatic is interested in something that determines if patches apply to trunk/master 19:00
davidfetter: we want to emulate pgbuildfarm.org. we need a good way to utilize our access to the GCC build farm 19:01
dalek rrot: r49624 | coke++ | trunk/config/gen/makefiles/root.in:
Track new include file in dependencies.
19:05 theory left 19:13 jsut_ joined
dalek rrot: r49625 | mikehh++ | branches/generational_gc/src/gc/gc_ms2.c:
[generational_gc] fix codetest failure - line length
19:17
19:17 brianwisti joined 19:18 jsut left, allison left 19:25 luben joined 19:35 luben left
dalek rrot: r49626 | mikehh++ | branches/generational_gc/src/gc/gc_ms2.c:
[generational_gc] add missing ASSERT_ARGS
19:47
19:53 allison joined 19:57 theory joined 20:15 whiteknight left 20:30 theory left 20:31 theory joined 20:33 aloha left 20:36 bacek_at_work left 20:37 bacek_at_work joined 20:39 luben joined
GeJ Bonjour everyone. 20:43
brianwisti Hi GeJ 20:44
20:44 aloha joined
GeJ heya brianwisti 20:44
G'Day bacek. 20:45
20:46 brianwisti left 20:47 brianwisti joined 21:01 theory left, theory joined 21:09 lucian_ joined 21:12 lucian left 21:13 whiteknight joined
GeJ Good evening whiteknight. 21:24
21:31 lucian_ left 21:49 spinclad joined 22:09 dngor_ joined 22:13 dngor left 22:31 brianwisti left 22:35 kid51 joined 22:48 kid51 left 22:50 dngor joined 22:51 theory_ joined, theory left, theory_ is now known as theory 22:52 kid51 joined
GeJ Good evening kid51. 22:53
22:54 dngor_ left
kid51 GeJ: Hi 22:57
moderator Parrot 2.9.1 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GC tuning | remove deprecations | 22:58
23:01 bacek_at_work left 23:02 bacek_at_work joined 23:03 cotto joined 23:06 Andy left
whiteknight hello GeJ 23:07
kid51 Gej: you had ?s about auto::llvm? 23:08
GeJ kid51: I think I have a clue : llvm was installed, but not llvm-gcc (2 distinct ports on FreeBSD). 23:10
and running Configure.pl --verbose=2, it seems that the test is looking for `llvm-gcc --version` 23:11
23:11 bacek_at_work left
GeJ I'm currently fetching llvm-gcc and will retry. 23:11
kid51 k
23:11 bacek_at_work joined
kid51 I've just been reviewing the page in the LLVM docs cited in config/auto/llvm.pm. 23:12
I think for our purposes we probably do need both those ports, hence the test for llvm-gcc --version.
But I think that if you look at the tests I wrote, they simply test for the bare minimum existence of the required packages. 23:13
Why, oh, why am I getting these build failures on Darwin?
src/string/api.c:702: failed assertion 'encoding'
make: *** [runtime/parrot/include/config.fpmc] Error 134
moritz why does llvm-gcc even need a separate config step? I thought it was a drop-in replacement for gcc 23:14
(and last time I trid, it worked fine with parrot)
kid51 I can't see anything committed to trunk since my last successful build on that system that touches that error
moritz: It's a step that handles both llvm and llvm-gcc 23:15
moritz kid51: ah
kid51 But, in any event, someone asked me to write a configure step, and I did so.
Whether we could get away with only one package/port ... I leave that to people who have actually *used* LLVM, which I have not. 23:16
23:18 s1n joined 23:19 s1n left 23:27 davidfetter left 23:33 dngor_ joined 23:36 dngor left
dalek rrot: r49627 | jkeenan++ | trunk/config/gen/platform (2 files):
Correct typos in POD.
23:38
23:46 davidfetter joined
dukeleto Java is being deprecated on OS X: developer.apple.com/library/mac/#re...orthy.html 23:58
Sign of the times?
moritz that you don't see anything on the page unless you have JS enabled? yes, I'm sure it is... 23:59