|
www.parrot.org | 1.5.0 "TEH PARROTZ!" Released! | Weekly development focus: Bugfixing and stability. Keep those branches merging! Set by moderator on 26 August 2009. |
|||
|
00:00
mokurai joined
|
|||
| Whiteknight | the exceptionhandler.t test pass? | 00:00 | |
| haha, I used mk_native_pbc, the packfile tests are all still failing, and now 4 new tests are failing too | 00:03 | ||
| darbelo | Say, is there any way to find the a PMC's class from the value of vtable->base_type ? | ||
| Whiteknight | sortof | 00:04 | |
| if it's a builtin type, you can figure it out. It's one of the enum_class_* values | |||
| bacek | exceptionhandler.t works | ||
| Whiteknight | awesome | 00:05 | |
| bacek | World Domination getting close :) | ||
| Definitely $dayjob time. | |||
| darbelo | Eh, at least I'll find out if it's a built in type. I'll go ack that. | ||
| bacek | bb | ||
| dalek | kudo: 81d6216 | pmichaud++ | (6 files): Move prefix:<-> into the setting. |
00:32 | |
| darbelo | Ok, it's Dec*Context destruction that segfaults, but I can't figure out what I'm doing wrong. | ||
|
01:18
TiMBuS joined
|
|||
| dalek | kudo: d0b88cf | pmichaud++ | Configure.pl: Check for some more needed Parrot files during Configure.pl . |
01:21 | |
| kudo: 586076e | pmichaud++ | (5 files): Move prefix:<~> into setting. |
|||
|
01:23
mokurai left
|
|||
| nopaste | "bacek" at 211.29.157.151 pasted "Interesting failure for Whiteknight++ to look :)" (27 lines) at nopaste.snit.ch/17709 | 01:26 | |
|
01:28
mokurai joined
01:40
theory joined
01:55
darbelo left
02:06
davidfetter joined
02:11
rhr joined
02:28
zostay joined
02:34
japhb joined
02:35
janus joined
02:37
mokurai joined
|
|||
| dalek | kudo: aab4bf9 | pmichaud++ | src/classes/ (3 files): infix:<===> should not be defined in terms of infix:<==> or infix:<eq>. |
02:46 | |
|
03:04
Andy joined
|
|||
| dalek | kudo: f351f60 | pmichaud++ | (4 files): Move infix:<ne>, infix:<!eq>, infix:<!=>, and infix:<!==> into setting. |
03:28 | |
|
03:32
Coke joined
03:41
dukeleto joined
|
|||
| dalek | rtcl: r640 | coke++ | wiki/SpecTestStatus.wiki: massive update after running 'unfudge' (tools/tcl_test.pl --skip) |
03:48 | |
| dukeleto | hola | 03:50 | |
| mikehh | All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r40835 - Ubuntu 9.04 amd64 (g++) | 03:52 | |
| hi there | |||
| rakudo (f351f60) builds on parrot r40835, make test / make spectest (up to r28093) PASS - Ubuntu 9.04 amd64 (g++) | 03:54 | ||
| rakudo (f351f60) - t/spec/S05-match/capturing-contexts.rakudo - TODO passed: 14 | 03:55 | ||
|
03:59
mokurai joined
|
|||
| mikehh | partcl r640 builds on parrot r40835 - make test - same 6 tests fail but all subtests PASS - Ubuntu 9.04 amd64 (g++) | 04:05 | |
| Coke: running make spectest in partcl | 04:06 | ||
| nopaste | "dukeleto" at 72.11.81.253 pasted "blizkost fails to compile on darwin/perl 5.10.0" (97 lines) at nopaste.snit.ch/17710 | 04:07 | |
| dukeleto | oops, wrong channel | ||
| what does "positional inside named args at position 3" mean? | 04:31 | ||
| Coke | ISTR the spec for PCC dictates where in the arg list named args can go. | 04:35 | |
| foo(1,2,3) has 3 positional args. | |||
| dukeleto | is there an equivalent of warn() in parrot ? | ||
| Coke | not really. "printerr" helps. | 04:36 | |
| I think the warning has to do with the .param listing: I think all the :named have to come at the end. | |||
| there's a PDD about that. | |||
| pdd03, line#246 | 04:37 | ||
| dukeleto | coke++ | 04:38 | |
|
04:44
cognominal joined
|
|||
| dukeleto | is there something like warn Dumper [ $foo ] for parrot ? | 04:47 | |
| Coke | look at the data dumper lib. | ||
| .macro dumper(dingus) load_bytecode 'dumper.pbc' load_bytecode 'PGE/Dumper.pbc' $P9999 = get_root_global ['parrot'], '_dumper' $P9999(.dingus) | 04:48 | ||
| .endm | |||
| dalek | rtcl: r641 | coke++ | wiki/SpecTestStatus.wiki: svn up parrot by one, reclaim a few more tests. |
04:49 | |
| rtcl: r642 | coke++ | trunk/config/PARROT_VERSION: This version avoids a few more segfaults. |
|||
| dukeleto | coke++ | ||
| jonathan: ping | |||
| dalek | rrot: r40836 | dukeleto++ | trunk/t/op/gc.t: [TT #950][t] Convert t/op/gc.t to PIR, jrtayloriv++ |
04:56 | |
| TT #950 closed by dukeleto++: [PATCH]: Convert Perl tests to use test_more.pir for t/op/gc.t | |||
| dukeleto | why does load_bytecode silently fail when it can't find the file? I find that highly annoyting | 04:57 | |
| annoying even | |||
| Coke | old battle between return null and throw exception. | ||
| mikehh | partcl make spectest - still get 4 -> !! child died with signal 11, without coredump | 04:59 | |
| Coke | mikehh: which version of parrot? | 05:01 | |
| purl | which version of parrot are you using? | 05:02 | |
| mikehh | partcl mathop, between magcat and namespace (fails straight away), subst and while-old | ||
| parrot r40835 - Ubuntu 9.04 amd64 (g++) | |||
| Coke | hurm. at r40826, namespace.test did not segfault for me. | 05:03 | |
| dukeleto | coke: A method named '__dump' already exists in class 'PGE;Match'. It may have been supplied by a role. :( | ||
| Coke | dukeleto: what kind of objects are you trying to dump? | 05:04 | |
| (if not PGE, you don't have to use the PGE/Dumper) | |||
| mikehh | Coke: not namespace - the test between msgcat and namespace - it doesn't say which one it is | ||
| dukeleto | Coke: ResizableStringArray or things that contain them | ||
| Coke | mikehh: ah! | 05:05 | |
| that's 'info'. the output is odd on that one, yes. | |||
| dukeleto | Coke: i get that error even when not loading 'PGE/Dumper.pbc' . it might be loaded by blizkost already | 05:06 | |
| Coke | mikehh: hurm. none of those failed for me at 40825. running another check at 40826. | 05:07 | |
| (of parrot) | |||
| danke. | |||
| mikehh | Coke: I logged the results - do you want it? | 05:08 | |
| Coke | not today; thanks for running the tests. | 05:09 | |
| mikehh | 'k | ||
| anyway will run some more tests later | 05:11 | ||
| Coke | (&*#$ tests pass when run standalone but segfault when run in 'tools/spec_info.pl' :P | 05:14 | |
| bacek_at_work | Coke: I've got "good" news for you. PGE use some uninitilised values inside... | 05:18 | |
| Coke | ... which might be causing my occasional segfaults? | 05:21 | |
| bacek_at_work | Coke: it can be | 05:22 | |
| Coke | seems like parrot could warn us when we use a register that didn't have a value assigned to it. | 05:24 | |
| (during compilation, even.) | 05:25 | ||
| if you could fix it, I'd appreciate it. =-) | 05:26 | ||
| (your report, not my wishlist) | |||
| cotto | particle or jonathan, ping | 05:29 | |
| dukeleto | Coke: depends on the register, right? | 05:30 | |
| Coke: $P0 should return PMCNULL if nothing is there, correct? | |||
| bacek_at_work | It's INT registers. | 05:33 | |
| dukeleto | there are things, at least from C-land, that you can check to see how many regs of a certain type exist. the debugger uses them | 05:35 | |
| i found that in the debugger, if you attempt to print a register, and disable the check for looking if that many registers of that type exist, you just get random garbage data back | 05:36 | ||
|
05:51
dukeleto joined
06:02
uniejo joined
06:06
dukeleto joined
06:10
rbaumer joined
06:17
desertm4x joined
06:33
HG` joined
06:59
kjeldahl joined
07:00
uniejo joined
07:01
mrsaturn joined
07:04
iblechbot joined,
rbaumer joined
07:08
dukeleto joined
07:21
mokurai joined
|
|||
| dukeleto | seen jnthn | 07:24 | |
| purl | I haven't seen 'jnthn', dukeleto | ||
| dukeleto | seen jonathan | ||
| purl | jonathan was last seen on #parrot 21 hours, 53 minutes and 42 seconds ago, saying: Ah, broken copy op woulda caused problems in Rakudo for sure. It's used very heavily. | ||
| dukeleto | msg jnthn i have created some issues for blizkost at github.com/jnthn/blizkost/issues | 07:28 | |
| purl | Sorry, I've never seen jnthn before. | ||
| dukeleto | msg jonathan i have created some issues for blizkost at github.com/jnthn/blizkost/issues | ||
| purl | Message for jonathan stored. | ||
| GeJ | Good morning everyone | ||
| dukeleto | GeJ: good localtime() | 07:29 | |
| cotto | hi dukeleto | ||
| dukeleto | cotto: werd up | 07:30 | |
| cotto | are you on windows by chance? | ||
| dukeleto | cotto: thankfully, no ;) | 07:31 | |
| cotto: i can test stuff on linux/os x/freebsd for you, if that helps | 07:32 | ||
| cotto | nope. I need some win32-specific code tested. | ||
| I should see about getting my XP VM running again. | 07:33 | ||
| It's hard to find anyone who's got a windows box ready for testing. | 07:34 | ||
| dukeleto | cotto: you need to talk to alias in #msopensource | 07:40 | |
| cotto | dukeleto, good idea. Ironically I helped get that started. | ||
| dukeleto | cotto: have you heard of the farm of windows boxen that CPAN developers have access to now? they have every permutation of win32 that you could want, with VNC access to them all | ||
| cotto++ | |||
| cotto | yeah | 07:41 | |
| dukeleto | i have a login but haven't utilized it much yet because I haven't touched windows in a long while | ||
| cotto | Looks like I'll need a CPAN id. | 07:45 | |
| It'd be really ironic if I couldn't get a access because I'm not a Perl 5 hacker. | 07:48 | ||
| he | BTW, did anyone pick up and commit the patch for NetBSD FP handling I posted here the other day? | 07:51 | |
| cotto | he, can you renopaste it? I'll commit it if it's sane and nobody else already did. | 07:53 | |
| he | sure. | 07:56 | |
| dukeleto | cotto: say that you will be testing Blizkost and you will be in the clear :) | 07:57 | |
| nopaste | "he" at 158.38.152.119 pasted "Patch to fix FP variant selection for the NetBSD math library" (44 lines) at nopaste.snit.ch/17711 | ||
| dukeleto | he: i saw that and liked it, but didn't try it | 07:58 | |
| he | It's a patch applied to 1.5.0; needed it for the self-tests to pass on NetBSD/i386 when I updated the pkgsrc package. | 07:59 | |
| cotto | he, I assume make test passes with that patch applied? | 08:01 | |
| I'd test it, but a patch to that file can only effect netbsd. | |||
| dalek | rrot: r40837 | cotto++ | trunk/config/gen/platform/netbsd (2 files): [platform] netbsd fp variant selection fix from he++ |
08:02 | |
|
08:02
rbaumer joined
|
|||
| he | cotto: yes, make test passes with it applied (I uploaded a smoke test; look for the latest netbsd test) | 08:11 | |
| thanks, btw. | 08:12 | ||
| cotto | thanks for the patch, he | ||
| mj41 | cotto: I can probably setup some VMware Windows box for Parrot developers. Not sure if our university has some Server licenses. Probably yes, for development (no production, no comercial). | 08:31 | |
| cotto | mj41, that'd be great | ||
| mj41 | irc://irc.perl.org/msopensource can't help ? | 08:32 | |
| cotto | ideally we could get in with Alias' CPAN Testing Lab, but any access would be helpful | ||
| I've pinged Alias. | |||
| mj41 | WinXP Professional is not problem, but it's one user at one time only. | 08:36 | |
| cotto | That'd be fine. | 08:37 | |
|
08:37
payload joined
|
|||
| dalek | rrot: r40838 | dukeleto++ | trunk/docs/book/pct/ch03_compiler_tools.pod: [cage] Fix some typos in docs/book/pct/ch03_compiler_tools.pod |
08:44 | |
| rrot: r40839 | fperrad++ | trunk/tools/dev/fetch_languages.pl: [languages] add blizkost |
08:47 | ||
|
09:23
cotto joined
|
|||
| mikehh | All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r40839 - Ubuntu 9.04 amd64 (gcc) | 09:33 | |
|
09:35
cotto joined
|
|||
| mikehh | rakudo (7666e92) builds on parrot r40839, make test / make spectest (up to r28096) PASS - Ubuntu 9.04 amd64 (gcc) | 09:45 | |
|
09:47
MoC joined
|
|||
| mikehh | partcl r642 builds on parrot r40839 - make test - same 6 tests fail but all subtests PASS - Ubuntu 9.04 amd64 (gcc) | 09:54 | |
| dukeleto | mikehh++ | 09:55 | |
| mikehh | messages | 09:58 | |
| dukeleto: how did you get on with the NaN stuff | 09:59 | ||
| dukeleto | mikehh: complex NaN is still broken, some rounding NaN is still broken. but I wrote a bunch of tests :) | 10:00 | |
| the fact that complex numbers don't obey NaN is the broken-ness | 10:01 | ||
| mikehh | tests good - dukeleto++ | ||
| dukeleto | so you can get NaN+5i and such | ||
| but you have to be tricky | |||
| mikehh | so you can get a NaN calculating the real part which does not effect the i part (or vice versa) | 10:03 | |
| affect | |||
| dukeleto | mikehh: yep | 10:04 | |
|
10:04
donaldh joined
|
|||
| dukeleto | mikehh: see t/op/inf_nan.t for all the fun details :) | 10:04 | |
| mikehh | will have a look | 10:05 | |
| dukeleto | when a Numeric PMC register containing NaN is cast down to an Integer register, internal things go south and a machine-dependent number is returned (-2147483648 on my system) | 10:07 | |
| and the Complex PMC knows nothing of NaN | |||
| mikehh | do we have any standards to follow on this? | 10:09 | |
| what does ieee 794 (I think) have to say | 10:10 | ||
| dukeleto | actually it is just for a plain numeric register, not a pmc numeric, that it happens. at least that is what the tests are for. numeric pmc's probably have the same issue, but those tests aren't written yet :) | ||
| mikehh:ieee754 | |||
| mikehh: it probably has a lot to say ;) | 10:11 | ||
| mikehh | yup that's right | ||
| dukeleto | also, there are many "flavors" of ieee754, 1985, 1987 and 2008. i am just going to assume that parrot would like to support 2008 unless someone can explain why that would be a bad idea | 10:15 | |
| mikehh: www.validlab.com/754R/nonabelian.co...54.129.pdf is the draft for 2008, the actual pdf requires a login | |||
| mikehh: it has documentation about quiet and singalling NaN, woohoo | 10:16 | ||
| dukeleto realizes he is one of the few people who gets excited about NaN | |||
| wow, ieee754 thinks up some crazy shit to do with NaN's, this is scary :| | 10:21 | ||
|
10:30
cognominal joined
|
|||
| mikehh | dukeleto: was just looking at speleotrove.com/decimal/ which has been updated since he last looked | 10:30 | |
| looked in the t/op directory - loads of files - need to look after a make realclean :-} | 10:40 | ||
| my editor nearly had a fit - invoked swap - I thought it had died - t/op -> 2,333 items, totalling 3.2 MB | 10:45 | ||
| dukeleto | mikehh: lots of generated files :) | 10:46 | |
| mikehh | especially after running fulltest -> testr whivh generates .pbc files as well | 10:47 | |
| which | |||
| dukeleto | i think -2147483648=ilogb('NaN'), that is actually one of the failure modes in ieee754 | ||
| dukeleto needs sleep | 10:48 | ||
|
11:03
desertm4x joined
|
|||
| dalek | TT #954 created by dukeleto++: Inf/NaN from ieee754-2008 | 11:04 | |
|
11:20
donaldh joined
|
|||
| dalek | rtcl: r643 | coke++ | trunk/docs/spectest- (2 files): update spectest data; - includes some segfaults from previously passing tests, skipping those in next commit. |
12:07 | |
| rtcl: r644 | coke++ | wiki/SpecTestStatus.wiki: 14!? more segfaulting tests with latest parrot. |
|||
| Coke | ok. there are now /forty one/ partcl spec tests that are segfaulting. | 12:08 | |
| out of 137. | |||
| 41/137 | 12:09 | ||
| purl | 0.299270072992701 | ||
| Coke | so, 30%. | ||
| szbalint | ouch | 12:11 | |
|
12:16
ruoso joined,
cosimo joined,
whiteknight joined
|
|||
| whiteknight | good morning #parrot | 12:19 | |
| NotFound | whiteknight: what do you said about kicking asses? | 12:25 | |
| whiteknight | I said you're doing it | ||
| NotFound | Soemones's ass, or bug's ass? | 12:26 | |
| whiteknight | bugs ass | ||
| NotFound | Ah, nice | ||
| whiteknight | and generally being awesome | ||
| NotFound | Thanks | 12:27 | |
|
12:27
szabgab joined
12:29
quek joined
|
|||
| Coke | NotFound, whiteknight : with notfounds last fixes, I get most of my spec tests back, but I'm now up to 41 spec test segfaults in partcl. | 12:49 | |
| After $DAYJOB today, I'll try to track some of them down more specfically, but for now, the list of segfaults is on the partcl wiki at SpecTestStatus if anyone wants to go segfault hunting. | 12:50 | ||
| (I run against an optimized parrot; some of those may revert to assertion errors in a non-opt parrot) | |||
| NotFound | Coke: partcl uses asignment to Undef, isn't it? | 12:51 | |
| Coke | I believe we do, yes. | 12:52 | |
| NotFound | I'm looking at that now, looks broken to me even if it pass tests | ||
| Coke | the concept, or the current impl? | 12:53 | |
| NotFound | Impl | ||
| Coke | ok. I'm surprised that I don't have MORE failures if that's borked, but I'm happy to test (or show you a test that's failing right now)... | 12:54 | |
| if-old is probably the shortest test on the list. (build parrot, install it, build partcl, then you can: "./tclsh t_tcl/if-old.test" | 12:55 | ||
| NotFound | I'm testing now an attempt of ix. | ||
| Coke | ix? | ||
| purl | ix is boring i mean professional programming magazine :) | ||
| NotFound | fix | ||
|
12:55
Zak joined
|
|||
| whiteknight | kid51 ping | 13:49 | |
| purl msg kid51 I don't think I'm going to make it up to NYC in September. My wife is having a baby shower then so we have to be in town. Sorry! | 13:53 | ||
| purl | Message for kid51 stored. | ||
| Coke | there's a nyc thing in september? hurm. | ||
| whiteknight | not a "thing". I was supposed to be in town on unrelated business | 13:54 | |
| well, my wife was supposed to be in town and I was in charge of driving her there (and back again) | 13:55 | ||
| Coke | ahhh. | ||
| whiteknight | which would have left me in NYC with nothing to do for an afternoon | ||
|
14:00
quek left
14:06
rbaumer joined
14:11
kid51 joined
|
|||
| Coke | kid51: hio | 14:12 | |
| kid51 | hello | ||
| purl | hello, kid51. | ||
|
14:14
Andy joined
|
|||
| NotFound | I think I've found a serious bug: the stacktop for GC marking is not set when calling PackFile_fixup_subs | 14:16 | |
| Coke | I don't know what that means, but woot. =-) | 14:18 | |
| kid51 | msg pmichaud Please see trac.parrot.org/parrot/ticket/936#comment:9 re 'make install' problems. | ||
| purl | Message for pmichaud stored. | ||
|
14:21
Psyche^ joined
|
|||
| NotFound | Coke: it may mean that with a two line change most segfaults wil disappear | 14:21 | |
| Coke | NotFound: I'd be excited to test that patch. | ||
|
14:27
cosimo joined
|
|||
| nopaste | "NotFound" at 213.97.96.43 pasted "Set stacktop in packfile fixups" (22 lines) at nopaste.snit.ch/17714 | 14:27 | |
| NotFound | Well, 3 lines ;) | ||
| Coke | YOU DIRTY LIAR! | 14:28 | |
| </humor> | 14:29 | ||
| bah. when pbc2exe was failing, I created a shell script called 'mytcl' that wrapped the call to parrot. I should have called it tclsh; my fingers type that all the time now. | 14:31 | ||
| NotFound: util.test gets past the original segf. | 14:32 | ||
| so this was a GC bug? | 14:33 | ||
| woot: util.test: Total 290 Passed 130 Skipped 128 Failed 32 | |||
| NotFound | Coke: maybe *the* GC bug | ||
| Coke | damnit, I was going to finally post a ranty blog entry on partcl complaining about the (&#$ segfaults. you stole my thunder! | 14:34 | |
| (I will do an unfudge run and see if this magically fixes everything. =-) | |||
| NotFound | Not everything, but maybe a lot of tests can be unskipped | 14:35 | |
| Coke | fixed 2/3 so far. 38 to go. =-) | 14:38 | |
| NotFound | Coke: 2/3 of partcl segfaults? | ||
| Coke | I have run the test for 3 spec tests that were segfaulting, 2 no longer segf with your patch. | 14:39 | |
| (will take a while to run the remaining 38 tests that were segfaulting.) | |||
| NotFound | Not so bad :) | ||
| Coke | (esp since I'm just running all 72 skipped tests, some of which are looong.) | 14:41 | |
|
14:41
ewilhelm joined
|
|||
| kid51 | whiteknight ping | 14:41 | |
| whiteknight | pong | 14:42 | |
| kid51 | Thanks for prodding on tt509_install_files branch. Am testing wayland's last patch. Will post results and ask for comments and testing on systems/situations that don't support symlinks. | 14:44 | |
| whiteknight | gotcha | 14:45 | |
| kid51 | Also, sorry NYC trip is off? | ||
| whiteknight | yeah, plans got changed that weekend | ||
| kid51 | whiteknight: Had you given any thought to the Victory brewery tour on Sat Sept 12? | ||
| Coke | NotFound: OOC, did tcl prod you to find that segfault maker, or did you just find it during code analysis, or...? | ||
| whiteknight | kid51: you going to that? | 14:46 | |
| kid51 | I was thinking of driving down for that. | ||
| It falls into the Excuses to Get Out of Town Department. | |||
| whiteknight | that's actually right down the road from where I work, the wife of the guy who owns Victory works with me | ||
| kid51 | It's being organized by ABE.pm, but I believe details have also been posted on Phila.pm list | 14:47 | |
| whiteknight | yeah, I've seen the emails flying bye | ||
| kid51 | Well, keep it in mind and I'll ping you about it right after Labor Day. | 14:48 | |
| whiteknight | when is labor day? | ||
| kid51 | Mon Sep 7 | ||
| whiteknight is not nearly as good with a calendar as he is with a keyboard | |||
| okay | |||
| NotFound | Coke: I looked at the backtrace of the test you said me | 14:53 | |
| whiteknight: take a look at my last nopaste | |||
| dalek | rrot: r40840 | jkeenan++ | branches/tt509_install_files/lib/Parrot/Install.pm: Applying patch submitted by wayland++ in trac.parrot.org/parrot/attachment/...ier.patch. Needs testing in non-symlinkable situations. |
14:56 | |
| kid51 | So, we can use testing (perl Configure.pl --prefix=/home/user/some_safe_directory && make manifest_tests && make && make install && make install-dev) of the tt509_install_files branch on Win32 and also on, e.g., Linux w/FAT32 filesystems. See TT509. | 15:03 | |
|
15:19
mokurai joined
15:27
theory joined
|
|||
| Coke | NotFound: looking good here, though it'll take some time to go through all the tests; anything stopping you from applying that? | 15:35 | |
|
15:45
nopaste joined
|
|||
| dalek | TT #936 closed by pmichaud++: "make install" doesn't install PCT | 16:05 | |
| pmichaud | msg kid51 Added note to #936, closed ticket, thanks! | ||
| purl | Message for kid51 stored. | ||
| Coke | NotFound: the segfaults are still squishy. (util.test ran to completion by itself; in the spec test, boom. | 16:08 | |
| as part of the spec test, that reclaims 12 test files out of 41 segfaults, though. | 16:09 | ||
|
16:14
kjeldahl joined
|
|||
| NotFound | Coke: not so bad, I'll commit it now | 16:18 | |
|
16:20
darbelo joined
|
|||
| dalek | rrot: r40841 | NotFound++ | trunk/src/packfile.c: [gc] mark stacktop in PackFile_fixup_subs |
16:22 | |
| darbelo | NotFound: while you're looking at segfaults. decnum-dynpmcs is still seeing segfaults during interpreter destruction. | 16:23 | |
| NotFound | darbelo: Are you using auto_attrs in the pmcs? | 16:24 | |
| darbelo | Nope. and attr_size is correctly set to 0, from what I've been able to see it segfaults when calling VTABLE_destroy() | 16:25 | |
|
16:25
MoC joined
|
|||
| darbelo | If I remove the active_destroy flag everything is fine. | 16:26 | |
|
16:26
JimmyZ joined
|
|||
| NotFound | darbelo: What trunk release is merged into that branch? | 16:27 | |
| darbelo | I'm working against trunk. decnum-dynpmcs is my GSoC project. | 16:28 | |
|
16:28
yath joined
|
|||
| yath | heya | 16:28 | |
| darbelo | purl: decnum-dynpmcs? | ||
| purl | decnum-dynpmcs is code.google.com/p/decnum-dynpmcs/ or a 2009 GSoC porject or a set of 'big' decimal arithmetic types for parrot. | ||
| NotFound | Ah, ok, I was mixing things in my head. | ||
| yath | the docs for PCT tell me to use mk_language_shell.pl for building a scaffold, but i can't find that on a halfway recent parrot... | 16:29 | |
| what should i use instead? | |||
| pmichaud | you might need "install-dev" for parrot | 16:30 | |
| afk # lunch | |||
| yath | euh, i was not going to do make install* or so.. | ||
| nopaste | "darbelo" at 200.49.154.172 pasted "The segfault." (15 lines) at nopaste.snit.ch/17716 | 16:31 | |
| darbelo | NotFound: removing either the active_destroy flag OR the singleton declaration for the PMC fixes the segfault. | 16:33 | |
| Thing Is I can't find anywhere in the pmc-destruction code where singleton-ness is checked for or where it should matter at all. | 16:36 | ||
| Coke | <sigh> partcl's 'make test' is now failign after updating parrot. | ||
| darbelo | Coke: does partcl use any sigleton PMCs with the active_destroy flag set? | 16:37 | |
| Coke | ... and now it's not. wtf. I swear, someone with root on feather is messing with me. | 16:38 | |
| darbelo: not unless it's a core pmc. | 16:39 | ||
| darbelo | Coke: | ||
| Coke: Then you can feel lucky. There's at leat one parrot bug that isn't biting you. | 16:40 | ||
| NotFound | Someone should write "Singleton considered harmful" | 16:41 | |
| darbelo | I sort of did, back when I started using them :) | 16:42 | |
| www.parrot.org/content/singletons-h...buse-them. | 16:43 | ||
| NotFound | darbelo: you can try to use Parrot_atexit for the destruction. | ||
| dalek | rtcl: r645 | coke++ | wiki/SpecTestStatus.wiki: unfudge some tests thanks to NotFound++ |
16:44 | |
| rtcl: r646 | coke++ | trunk/config/PARROT_VERSION: NotFound++ # fewer segfaults at this revision. |
|||
| darbelo | I can just leak the memory, singletons are immortal anyway. But I'd like to confirm that it's a bug on parrot and not my code. | 16:46 | |
| Coke | (P*&@#$(*&@#$(*@#&$(*@#$&(@#*$&@# | ||
| NotFound | I don't know if destruction of singletons has been planed or even thinked about. | 16:47 | |
| Coke | (unfudge test a. run test in harness. test now segfaults.) | ||
| This is reaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaally frustrating. | |||
| perhaps I will now get to write my snarky blog post after all, despite NotFound. =-) | |||
| NotFound | Coke: you can write it anyway | 16:48 | |
| darbelo | s/destruction o // | ||
| 'There can only be one of this' != 'make it immortal' | 16:49 | ||
| Highlander references notwithstanding :) | 16:50 | ||
| yath | hm. docs say i should run mk_language_shell.pl in languages/, but there is no languages/. is compilers/ the successor? | 16:51 | |
| darbelo | yath: nope. Languages have left the nest. They live outside of the parrot tree now. | 16:52 | |
| NotFound | You can just mkdir ir for testing | ||
| yath | darbelo: hm. and where would i get started (as in: in which directory) to do some fiddling with parrot? | ||
| err, PCT | |||
| ah ok | |||
| $ ../../parrot test.pbc | 16:53 | ||
| > | |||
| \\o/ | |||
| thanks :) | |||
| darbelo | Anywhere you like, actually. I think create_language.pltakes an argument for the directory it should put stuff into. | ||
| NotFound | Coke: What test is failing now? | ||
| Coke | sadly, we have, what, 2 different ways to create a language shell? | ||
| NotFound: -appendComp.test, -compExpr-old.test | 16:54 | ||
| 2/12 | |||
| purl | 0.166666666666667 | ||
| darbelo | Coke: Yup, and neither one did exactly what I wanted last time I tried them :) | ||
| Coke | so that's already lost 17% of the gains you just made, just by running the full harness instead of just an unfudging run. | 16:55 | |
| darbelo | But what I wanted was fairly odd too. So I guess it's ok. | ||
| Coke | (possible those are lost due to recent changes in parrto from my last run and your commit.) | ||
| (just by running) and I just started that spec test run, many more chances for regressions. | 16:56 | ||
| yath | hm, where would i get a pir.vim from? | 16:57 | |
|
16:57
jrtayloriv joined
|
|||
| yath | ah, got ir | 16:57 | |
| it. | |||
| darbelo | editor/ in the parrot tree | ||
| yath | yep :) | ||
| NotFound | Coke: Some easy to try segfault? | 17:03 | |
| treed | . | 17:07 | |
| Coke | notfound: ./tclsh t_tcl/appendComp.test | 17:09 | |
| (segfaults after 3rd test.) | |||
| ... unless you run it in gdb, apparently. :P | |||
| NotFound | Coke: doesn't segfault for me now, in a non optimized build. | 17:11 | |
| Coke | NotFound: try with --gc-debug | 17:16 | |
| nopaste | "coke" at 65.91.151.195 pasted "backtrace for notfound." (23 lines) at nopaste.snit.ch/17718 | ||
|
17:17
ruoso joined
|
|||
| Coke | 9 new failures so far... | 17:27 | |
| jrtayloriv | I want to convert the tests in t/pmc/filehandle.t to use test_more.pir instead of Perl, but a lot of the tests are using the "create_tempfile()" sub from Parrot::Test::Util to create a tempfile before running the pir_output_is tests. Is there any way to get around using Perl here? | 17:43 | |
| Coke | NotFound: net loss of one test file after the update. | 17:53 | |
| jrtayloriv | Is there any reason that I can't just use -- tempfile = open 'tempfile', 'w' -- instead? | 17:54 | |
| NotFound | jrtayloriv: because a file with a fixed name is no good por people doing paralel tests | 17:56 | |
|
17:56
AndyA joined
|
|||
| Coke | we probably need a File::Temp in parrot. | 17:58 | |
|
17:59
whiteknight_ joined
|
|||
| Coke | jrtayloriv: so, skip that one. | 18:00 | |
| jrtayloriv | NotFound, thanks -- Coke, will do ;) | 18:03 | |
| Coke | jrtayloriv: trac.parrot.org/parrot/ticket/955 | 18:05 | |
| dalek | TT #955 created by coke++: need ability to create tempfile from PIR | 18:08 | |
| duk3leto | coke++, i likes temp files | 18:10 | |
| is the current PID available from Parrot? | |||
| jrtayloriv: making test_more.pir better is going to be necessary to convert many tests | 18:12 | ||
| NotFound | BTW conveting to pir tests that have known problems not fully solved is not a good idea, and even worse doing it without testing in several different platforms. | 18:13 | |
| Coke | how can one converting tests know which ones have known problems? | 18:16 | |
| NotFound | Good question | 18:17 | |
| purl | Yeah, it is. I'm stumped. | ||
| Coke | anything SKIPPED is dangerous. | ||
| NotFound | Yeah, and converting to pir just to be forced to skip it is the worse of the ideas. | 18:18 | |
|
18:19
davidfetter joined
|
|||
| NotFound | I mean, converting a todo that segfaults, for example. | 18:19 | |
| Coke | I'd be happy if todos/skips were left in foo-old.t | ||
| I don't think it's a moral imperitive, but it's not worth expending extra effort on, sure. | 18:20 | ||
|
18:36
joeri joined
18:39
szabgab joined
|
|||
| jrtayloriv | As far as implementing create_tempfile() in PIR, File::Temp uses File::Spec::tmpdir() to check for the correct tmp directory ... ultimately, if tmpdir() doesn't find a tmp dir it is supposed to use, it just defaults to cwd -- is there any reason why the tempfiles for the tests should not be created in the test directory? | 18:49 | |
| NotFound | jrtayloriv: because they are temporary files | ||
| jrtayloriv | NotFound, What would be the problem with having the temporary files in the test directory? Why is that a Bad Thing? | 18:52 | |
| NotFound | jrtayloriv: mainly, because people don't want that lots of files of unknown purpose appear in his work directories for unkown reasons. | 18:53 | |
| jrtayloriv | Doh ... that was dumb ... it's just because the files wouldn't get cleaned up if the test died. Sorry for the time waste. | 18:55 | |
| pmichaud | (create_language.pl) -- I need to update that with the latest improvements from Rakudo's configuration | 18:56 | |
| cotto | anyone want to try a windows patch on pluggable_runcore? | 18:57 | |
| Coke | can we kill one or the other of those scripts? | 19:00 | |
| cotto | +1 | 19:01 | |
| purl | 1 | ||
| cotto | +kick purl | ||
| Coke | if we don't have a ticket, someone should make one. | ||
| even if it doesn't decide which one to pick. | 19:02 | ||
| -> | 19:03 | ||
| NotFound | Coke: "There's more than one way to do it" ;) | ||
| particle | cotto: i can try the patch | 19:08 | |
| nopaste | "cotto" at 74.61.2.46 pasted "runcores patch for win32" (17 lines) at nopaste.snit.ch/17719 | 19:09 | |
| cotto | although it'd be nice to know first why those printf lines yesterday weren't printfing. | 19:10 | |
| That patch should work, but it'll also be vulnerable to noise from context switches. | 19:20 | ||
| nopaste | "cotto" at 74.61.2.46 pasted "alternate runcores patch for win32 using GetProcessTimes" (27 lines) at nopaste.snit.ch/17720 | 19:21 | |
| cotto | mj41, ping | 19:23 | |
| dalek | rrot: r40842 | NotFound++ | trunk/src/pmc/undef.pmc: [pmc] fix set_pmc vtable in Undef PMC |
19:38 | |
| particle | cotto: neither patch changes anything, and i'm still not seeing the fprintf output | 19:45 | |
| neither patch changes the 0 in second column, i didn't look closely for anything else | |||
| cotto | That's not sane. | 19:47 | |
| particle | sadly, no :( | 19:48 | |
| cotto | Does src/platform.c have the right Parrot_hires_get_time function? | ||
| particle | oh give me a break! | 19:49 | |
| i need to reconfigure after i change this. duh. | 19:50 | ||
| cotto | yeah | ||
| that'd help | |||
| particle | i'm just gonna modify src/platform.c | ||
| cotto | fine by me | ||
| particle | it takes too damned long to reconfig/compile | ||
|
19:52
mokurai joined
|
|||
| particle | cotto: i'm seeing a lot of <<<<<1>>>>> now | 19:52 | |
| so the command is succeeding | |||
|
19:52
mokurai left
|
|||
| particle | but the times are still 0 | 19:53 | |
| cotto | That shouldn't be the case for any program that takes more than 100ns. | 19:54 | |
| particle | your second patch doesn't change anything | 19:55 | |
| the first patch works! | 19:57 | ||
| cotto | the one with QueryPerformanceCounter? | 19:58 | |
| particle | ayep | ||
| nopaste | "particle" at 76.121.106.245 pasted "hanoi.pir profiling output" (1301 lines) at nopaste.snit.ch/17721 | ||
| cotto | That's a lot better than nothing, but I really want to know what's not working about GetProcessTimes. | ||
| Thanks! | 19:59 | ||
| particle | ship it! | ||
| cotto | I'll commit that and figure out what's wrong with GetProcessTimes when I have a windows box to play with. | ||
| mikehh | All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r40842 - Ubuntu 9.04 amd64 (g++) | 20:00 | |
|
20:04
AndyA joined
|
|||
| mikehh | rakudo (7666e92) builds on parrot r40842, make test / make spectest (up to r28100) PASS - Ubuntu 9.04 amd64 (g++) | 20:07 | |
| Coke | NotFound: is r40842 going to rock my wold? | 20:08 | |
|
20:08
chromatic joined
|
|||
| Coke | ... world? | 20:08 | |
| wold: The yellow dye obtained from dyer's rocket. | 20:09 | ||
| NotFound | Coke: don't know what to says, seems to change from build to build | ||
| chromatic | msg whiteknight How encapsulated is the current GC? If I wanted to fork the current M&S and use the linked list idea (I figured out the missing part today), how much work is it? I also need to change the Arena structs slightly. | ||
| purl | Message for whiteknight stored. | ||
|
20:10
mokurai joined
|
|||
| chromatic | NotFound, sudo echo 0 > /proc/sys/kernel/randomize_va_space ? | 20:10 | |
| NotFound | Uh, forgot to play with that, | 20:11 | |
|
20:11
AndyA joined
|
|||
| Coke | NotFound: it sure does. :| | 20:14 | |
| chromatic: my segfaults are killing me. any help greatly appreciated. =-) | |||
| NotFound++ # all his work so far today. | |||
| bah. using git-svn, is there an easy way to get .parrot_current_rev to update after 'git svn rebase' ? | 20:15 | ||
| (ATM I have to do a full rebuild or handedit the thing.) | |||
| NotFound++ #good measure | 20:16 | ||
| PerlJam | git svn info | awk '/Revision:/ { print $2 }' > .parrot_current_rev # ? | ||
| Coke: that was for you in case it wasn't obvious :) | 20:17 | ||
| Coke | PerlJam: ... easier to edit it by hand. =-) | ||
| (actually, easier (but slower) to just run my "rebase and re-intsall for tcl" script. =-) | |||
| mikehh | partcl r647 builds on parrot r40842 - make test - same 6 tests fail but all subtests PASS - Ubuntu 9.04 amd64 (g++) | 20:18 | |
| Coke | PerlJam++ | ||
| PerlJam | Coke: I wonder if there's a way to trigger scripts to be executed after "git svn rebase" Seems like that would be a good thing for svn:ignore properties at the very least. | 20:19 | |
| Coke | PerlJam: that would be spiffy. | 20:20 | |
| NotFound | Mmmmm... looks like r40842 breaks a rakudo spectest | ||
| cotto | Now I can finally go back to not caring about windows. | ||
| Coke | with it got a failure in 'make test' that went away when i ran the test by hand. | ||
| mikehh | NotFound: which - I just PASSed them all | 20:21 | |
| chromatic | Coke, PerlJam, I have a script to reconfigure Parrot and rewrite config_lib.pasm whether I use svk or git. | ||
| PerlJam | chromatic++ | ||
| dalek | rrot: r40843 | cotto++ | branches/pluggable_runcore/config/gen/platform/win32/hires_timer.c: [profiling] Switch to QueryPerformanceCounter for high-resolution timing info on win32. |
||
| PerlJam | I guess an ordinary post-receive hook would probably be able to do it. | ||
| nopaste | "chromatic" at 72.87.39.97 pasted "Reconfigure Parrot" (1 line) at nopaste.snit.ch/17722 | 20:23 | |
| duk3leto | chromatic: welcome back | ||
| purl | Your dreams were your ticket out. | ||
| NotFound | mikehh: S12-attributes.clone | ||
| Coke | *snrk* | ||
| nopaste | "chromatic" at 72.87.39.97 pasted "Rewrite config_lib.pasm" (19 lines) at nopaste.snit.ch/17723 | ||
| NotFound | Mmmm... maybe the test pass, even if segfaults at exit | 20:24 | |
| nopaste | "coke" at 65.91.151.195 pasted "this is the second segfault bt with recent parrot in Parrot_String_mark" (23 lines) at nopaste.snit.ch/17724 | 20:25 | |
| mikehh | NotFound: passes for me and ./perl6 t/spec/S12-attributes/clone.t passes all 12 tests | ||
| dalek | rtcl: r647 | coke++ | wiki/SpecTestStatus.wiki: More spectest churn. from the previous unfudge round.) |
20:26 | |
| Coke | that backtrace was from head of parrot, partcl, optimized, against tcl.pbc t_tcl/if-old.test | ||
| chromatic | You can add debugging symbols to an optimized build. | ||
| Coke | what's the magic Configure.pl option for that? | 20:27 | |
| --CCFLAGS=-G ? | |||
| --ccflags=-G, I mean. | 20:28 | ||
| mikehh | hey dalek is really slow I picked that partcl r647 with svn up 20+ minutes ago | ||
| PerlJam | mikehh: it probably depends on how often the RSS feed is updated. | 20:29 | |
| mikehh | I thought it was every 5 minutes or so - maybe not for partcl | ||
| Coke | chromatic: huh. says write in the gcc manual "GCC allows you to use -g with -O" nifty. | 20:30 | |
| "who knew" | 20:31 | ||
| duk3leto | Coke: -g increases the size of the binary by adding debug symbols, which is orthogonal to what -O does. That is how I understand it, anyway | 20:32 | |
| nopaste | "coke" at 65.91.151.195 pasted "now, with debug" (64 lines) at nopaste.snit.ch/17725 | 20:34 | |
|
20:34
whoppix joined
|
|||
| Coke | (gdb) p str_val | 20:35 | |
| $3 = <value optimized out> | |||
| I have to head out soon; anything I can dump from this gdb session that would help someone debug it? | 20:36 | ||
| rant: all these macros make it hard to debug. :| | 20:38 | ||
| laters. | 20:39 | ||
| particle | ~~ | ||
| dalek | rrot: r40844 | cotto++ | branches/pluggable_runcore/config/gen/platform (3 files): [profiling] pick a more descriptive name for a high-resolution timer function |
20:42 | |
| mikehh | cardinal - builds on parrot r40842 - make test - 3 failures - 593 tests were run, from 98 files, 511 tests passed, 0 of which were unexpected, 82 tests failed, 82 of which were expected | 20:43 | |
| NotFound | Can a String be Special? | 20:44 | |
| Ah, no, is a String PMC | |||
| mikehh | cardinal - There were 3 files that completely failed to compile: gen_08-class.pir, gen_alias.pir,gen_freeze.pir | ||
| dalek | rrot: r40845 | cotto++ | branches/pluggable_runcore/src/runcore/cores.c: [profiling] remove some unused or unnecessary variables |
20:45 | |
| mikehh | cardinal - all 3 failed with get_pmc_keyed() not implemented in class 'String' - Ubuntu 9.04 amd64 (g++) | 20:46 | |
| cotto | karma g | 20:50 | |
| purl | g has karma of 595 | ||
| mikehh | ok what else can I test lua doesn't build for me | 20:52 | |
| dalek | rrot: r40846 | NotFound++ | trunk (2 files): [cage] add some checks to C stack gc related code |
20:53 | |
| mikehh | ok I'll test that :-} | 20:54 | |
| NotFound | lua doesn't build with g++, last time I checked | ||
| darbelo | mikehh: I have something for you to test on decnum-dynpmcs | 20:57 | |
| mikehh | doesnt build with gcc either or on i386 for me | 20:58 | |
| darbello - ok just rebuilding | |||
| nopaste | "darbelo" at 200.49.154.172 pasted "[PATCH] Leak memory, don't segfault." (13 lines) at nopaste.snit.ch/17726 | ||
| darbelo | mikehh: nopaste.snit.ch/17726 | 21:00 | |
| mikehh | got it - will try in about 10 minutes or so | 21:03 | |
| treed | Did get_pmc_keyed get removed from String recently? | 21:11 | |
| bacek_at_work: I'm probably looking at you. | 21:12 | ||
| chromatic | www.tcl.tk/doc/scripting.html | 21:21 | |
|
21:22
Whiteknight joined
|
|||
| mikehh | darbello: looks good so far | 21:25 | |
| darbelo | mikehh: tests are segfault-free? | ||
| Whiteknight | hello #parrot | 21:26 | |
| mikehh | darbello: not all Failed 1/17 test programs. 0/14629 subtests failed. - t/remaindernear.t .. All 121 subtests passed | ||
| treed | Whiteknight: Do you know if get_pmc_keyed was removed from String? | 21:27 | |
| darbelo | That's ok, remaindernear.t was my control sample :) | ||
| mikehh: are you on i386 or on amd64 ? | 21:28 | ||
|
21:28
mokurai joined
|
|||
| mikehh | darbelo: the rest pass - Ubuntu 9.04 amd64 (gcc) | 21:28 | |
| Whiteknight | treed: was get_pmc_keyed ever implemented in String? | 21:29 | |
| chromatic: ping | |||
| chromatic | pong | ||
| treed | Whiteknight: It used to be. | 21:30 | |
| mikehh | All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r40846 - Ubuntu 9.04 amd64 (gcc) | ||
| treed | cardinal's been using it for ages | ||
| Whiteknight | chromatic: the PObj part of the GC is relatively well encapsulated, yes | ||
| treed | I'd bisect, but I'm on Windows right now, and therefore away from my dev environment. | ||
| Whiteknight | there is a problem in the Buffer allocator though, it expects to be able to walk the STRING pool linearly | ||
| treed: what would get_pmc_keyed even do on a String? | |||
| chromatic | Is that to compact buffer pools? | 21:31 | |
| darbelo | Whiteknight: is there anything in particular about singleton dynpmcs that could cause segfaults if they heve their active_destroy flag set? | ||
| Whiteknight | yeah, it walks the STRING pool linearly to find used buffers and compacts them | ||
|
21:31
mokurai joined
|
|||
| Whiteknight | darbelo: nothing that I am aware of, but I'm hardly an expert on the dynpmc loading mechanism | 21:31 | |
| darbelo: I take that to mean you are seeing problems when a dynpmc gets collected? | 21:32 | ||
| chromatic: so what is this "missing piece" that you figured out? I'm very interested to hear about that | |||
| treed | Whiteknight: Return a character at a given index? | 21:33 | |
| darbelo | Whiteknight: It segfaults in Parrot_pmc_destroy() where it should call the destroy vtable. | ||
| chromatic | Whiteknight, I could never figure out how to find all garbage PObjs without sweeping the pools. | ||
| treed | There's a get_string_keyed | 21:34 | |
| Maybe get_pmc_keyed used to auto-cast? | |||
| I swear it used to work. | |||
| chromatic | The secret is to add another linked list, maybe_garbage. Every time you allocate a new PObj (free list or from the pool), stick it on that linked list. | ||
| Whiteknight | treed: that doesn't make sense, why would get_pmc_keyed be expected to return a character? It's defined to return a PMC | ||
| treed | Maybe it returns a String PMC with a length of 1? | 21:35 | |
| chromatic | Then when you run a normal GC (not a full sweep), stick everything you mark on the live list. | ||
| treed | StringIterator uses get_pmc_keyed, IIRC | ||
| chromatic | Everything remaining in the maybe_garbage list is unused, and you can stick it on the free list with one pointer swap. | ||
| Whiteknight | chromatic: the maybe_garbage list would need to be doubly-linked if you're going to be randomly accessing it and pulling things out of the middle | ||
| treed | Last time I got this error message while building: | 21:36 | |
| Last time I got this error message while building: 12:59 <purl> bacek_at_work [Fri Aug 7 04:18:34 2009] said: I'll fix parrot today-tomorrow so StringIterator.shift_pmc will work again. | |||
| chromatic | True. | ||
| Whiteknight | unless you "swept" it from the root, moving items with the live flag to the alive list, and everything ese to the free list | ||
| chromatic | I want to avoid sweeps. | 21:37 | |
| Whiteknight | I always figured sweeps were the least expensive part | ||
| chromatic | Not really. | ||
| Whiteknight | never benchmarked of course, but that's what it logically seems like it should be | ||
| chromatic | About half of our GC time is sweeping. | 21:38 | |
| Whiteknight | you're not really talking about avoiding sweeps so much as you are talking about being more selective about what objects we sweep | 21:39 | |
| so don't sweep over objects that are not allocated | |||
|
21:39
beta joined
|
|||
| chromatic | Right. | 21:41 | |
| Not only does that save CPU cycles, but it has a chance of avoiding expensive cache games. | |||
| Whiteknight | it's a good heuristic anyway, I bet there are some savings to be had if (1) a large portion of our PObjs at any given time are free and (2) we can make this cache-friendly | ||
| chromatic | (1) is almost undoubtedly true for most workloads. | 21:42 | |
| We also avoid a lot of add_to_free_list calls this way. | |||
| Whiteknight | and we could improve (1) by tuning the GC, using the Lazy allocator, and increasing our initial allocations | ||
| chromatic | I did the latter. | 21:43 | |
| Whiteknight | is it in trunk already? | ||
| (i never had a good opportunity to test it) | |||
| Adding two pointers to every PObj (I assume as part of a header) is going to have a noticable impact on our memory footprint | 21:45 | ||
| chromatic | It's not in trunk. | 21:46 | |
| We do need a better approach than storing two pointers. | 21:47 | ||
| Whiteknight | we do have the _next_for_GC field that can reasonably be remoed | ||
| removed* | |||
| chromatic | Sweeping is about 50% more expensive than marking, but part of that is managing fixed-sized memory through malloc/free. | 21:48 | |
| Whiteknight | what is being managed with malloc/free during the sweep anymore? | ||
| And I know the STRING compacting stuff is expensive, that has to play a big part | |||
| chromatic | PMC attributes. | ||
| Whiteknight | that pointer is only available when the PMC is not aliv | 21:51 | |
| chromatic | en.wikipedia.org/wiki/XOR_linked_list | 21:53 | |
| Alternately, we don't store the linked list structures in the headers themselves (probably a good idea for cache friendliness) and store them in the Pools/Arenas instead. | 21:54 | ||
| Getting rid of _next_for_GC gets PMCs down to 24 bytes apiece (32 bit). | 21:55 | ||
| Moving _synchronize into _metadata gets us to 20 bytes. | |||
| NotFound | chromatic: a problem is to locate all points that poke into pmc internal, like I'm learning these days. | 21:57 | |
| chromatic | _next_for_GC bothers me, because I've never understood it. | ||
| PMC_sync is fairly well encapsulated. | |||
| NotFound | For example, the copy opcode poke into next_for_gc for no aparet reason | ||
| chromatic | That's probably because it's a free pointer. | 21:58 | |
| mikehh | rakudo (7666e92) builds on parrot r40846, make test / make spectest (up to r28100) PASS - Ubuntu 9.04 amd64 (gcc) | 22:00 | |
| chromatic | Let's try to moveof PMC_ | ||
| Let's try to move PMC_sync into PMC_metadata. That'll give us 14.29% more PMCs for free. | 22:01 | ||
| Lazy allocation means they're free, anyway. | |||
| Whiteknight | _next_for_GC is a premature optimization, trying to create a way to mark PMCs with priority | 22:03 | |
| removing it from the GC would be trivial | |||
| however, that space is also used in src/freeze.c for an unrelated purpose, and I don't know anything about that | |||
| chromatic | Yeah. That's what always trips me up. | 22:04 | |
| Whiteknight would love to travel to the jungle of src/freeze.c with a machete and do some real damage there | |||
| that whole goddamn system is a liability | 22:05 | ||
| cotto | Do it! Kill it with fire. | ||
| jrtayloriv | Is there no way to open a file with the O_TEMPORARY flag in PIR? | 22:10 | |
|
22:19
Zak joined
|
|||
| Whiteknight | jrtayloriv: not that I know of, no | 22:24 | |
| jrtayloriv | Is there a reason why it shouldn't be added, or is it just that nobody has had the time to do it yet? | 22:29 | |
| it == "ability to do so" | |||
| dalek | TT #956 created by darbelo++: [gc] Singleton PMCs with the active_destroy flag set cause segfaults when ... | 22:31 | |
|
22:39
Limbic_Region joined
22:41
rg joined
|
|||
| Whiteknight | jrtayloriv: no reason why not, I don't think. Probably need to ask allison about it. Probably just waiting for people with tuits | 22:44 | |
| that's quite the interesting ticket, darbelo | 22:47 | ||
| quite a head-scratcher | |||
| chromatic | Shouldn't be: pmc->vtable = (VTABLE *)0xdeadbeef; | 22:48 | |
| First time through, the vtable turns into hamburger.S | |||
| darbelo | Whiteknight: Tell me about it. I've been looking at all of the surrounding code for two days and can't find anything even remotely suspicious. | 22:49 | |
| chromatic | Second time through, dereferencing hamburger causes segfaults. | ||
| Whiteknight | what do you mean hamburger? | 22:50 | |
| chromatic | 0xdeadbeef | ||
| darbelo | chromatic: The (pmc)->vtable pointer is quite valid a the point the segfault happens. | ||
| (pmc)->vtable->destroy could be a suspect. But I can't see anyone tampering with that value anywhere. | 22:51 | ||
| chromatic | What's (pmc)->vtable->destroy? | ||
| darbelo | 0x211a31170 | 22:52 | |
| for a bit more context: | 22:55 | ||
| delprop = 0x202f87e60 <Parrot_default_delprop>, destroy = 0x211a31170, | |||
| chromatic | Are there any Parrot_Segfaulty_* functions in p *pmc->vtable? | 22:56 | |
| Oh, this is during global destruction. | |||
| Hm. | |||
| Conjecture: the dynpmc library is already unloaded at this point, so the dlclose for the shared library handle has already happened. | |||
|
22:57
mokurai joined
|
|||
| chromatic | The pointer is still valid, but the OS has already unmapped that area of memory. | 22:57 | |
| darbelo | chromatic: Yes. Singletons live in the constant pool. They are immortal. | ||
| chromatic | Okay. | ||
| The PMC has outlived its C functions loaded from the shared library. | 22:58 | ||
| darbelo | chromatic: Non-singletons die quietly :) | ||
| chromatic: Oh. That make sense. | |||
| chromatic | Just another order of destruction problem, this time in the constant PMC pool. | ||
| darbelo | chromatic: What prevents singletons from moving out of the constant pool? (probaly after a deprecation notice) | 23:00 | |
| chromatic | The only way I can think of to make them singletons right now without them being in the constant pool is to add a check to the GC sweep not to reap them. | 23:01 | |
| That *may* be the right approach, but when the constant PMC pool goes away for good, we may still have this problem. | 23:02 | ||
| darbelo | Why not treat them as regular PMCs? "Nobody needs you, bub. Have a nice death." | 23:03 | |
| chromatic | Because we can't reap them during GC sweep, otherwise they're not singletons. | ||
| darbelo | I don't see why 'Only one ever created' == 'Can't kill it'. | 23:04 | |
| chromatic | You create one. It lives for a while. | ||
| You can never create another one. | |||
| What happens when that first one you created is unreachable from the root set? | 23:05 | ||
| Now you have none and you are sad. | |||
| dalek | kudo: 7666e92 | pmichaud++ | (6 files): Move infix:<%>, infix:<div>, and infix:<mod> to the setting. so add dummy versions of those to NYI.pm for now so people know what's going on. |
||
| darbelo | "You can never create another one." is not true in current parrot. | ||
| I've always read singleton as "Only one at any given time." Which is different, to me, from "always the same one" | 23:07 | ||
| And if parrot singletons are defined as "always the same one" (A reasonable thing too). Then I need a new kind of PMC for waht I want to do. | 23:08 | ||
| Whiteknight | chromatic: so you think the Library PMC is being collected earlier in the sweep, unloading the library, and taking all the funcitons with it? | 23:09 | |
| Whiteknight has no good idea about how we're going to implement strict order-of-destruction in a non-hackish way that doesn't eat up a shitload of memory/performance | 23:14 | ||
| chromatic | Whiteknight, I'm certain of it. | ||
| cotto | Andy, whatever happened to that automatic makefile dependency generation you were working on? | 23:15 | |
| Whiteknight | I'm not sure that makes sense to me. Items in the constant pool never get collected, so they should always be laid out in the order they were allocated in, and soruning a sweep backwards through the pool should always do things in the right order | ||
| oh shoot, temporary_pmcs are allocated out of the constant pool, aren't they? | 23:16 | ||
|
23:20
Zak joined
|
|||
| darbelo | cotto: That reminds me, I had a "make -j" build failure a few days back in the pluggable_runcore branch. You might have to check your makefile deps. | 23:20 | |
| cotto | darbelo, thank. I'll see if I can break anything. | 23:21 | |
| I usually use -j, but it's very possible I missed something. | 23:22 | ||
|
23:25
MoC joined
|
|||
| cotto | darbelo, if you get the build failure again, please nopaste the relevant bits of the error message. | 23:26 | |
| nopaste | "darbelo" at 200.49.154.172 pasted "Build failure for cotto++." (50 lines) at nopaste.snit.ch/17727 | 23:35 | |
| darbelo | cotto: does your make have a -dp option? | 23:39 | |
| cotto | darbelo, can you reproduce it in trunk? It doesn't look like something runcore-specific. | ||
| lemme check' | |||
| -dp spits out excessively verbose debugging information | 23:40 | ||
| darbelo | Hmm on BSD it's "Help finding concurrency issues for parallel make by adding some randomization." | ||
| But maybe it's one of those "Randomize everything" things the OpenBSD developers like to do. :) | 23:41 | ||
| nopaste | "darbelo" at 200.49.154.172 pasted "Another -j failure, this one on trunk." (77 lines) at nopaste.snit.ch/17729 | 23:51 | |
| darbelo keeps breakin' stuff all over the place. | 23:53 | ||
| cotto | It seems to be having trouble with the generated file lib//Parrot/OpLib/core.pm | ||
| darbelo | I had to "$ make realclean && perl Configure.pl && make -dp -j9" twice before I finally broke it. | 23:55 | |
| I could be an issue of inter-Makefile dependencies. | 23:58 | ||
| cotto | I'm not sure what to do about that. It looks like Ops2c/Utils.pm is getting a partially written version of that file. | ||