|
www.parrot.org | BoD purchasing a new cert. Thank you for your patience. Set by moderator on 31 August 2009. |
|||
|
00:06
Zak joined
00:27
Andy joined
|
|||
| jrtayloriv | hmmm ... that's weird -- I was failing about 6 different test groups, and then after 'make realclean' and rebuilding, all I'm failing is the sprintf tests. | 00:27 | |
| but then after running them a second time (without running make clean/realclean), I start failing a bunch of them again. | 00:30 | ||
| Whiteknight | yay! nondeterministic test failures | 00:43 | |
| We'll get them nailed down though, this branch is important enough | 00:47 | ||
| NotFound: ping | |||
| dalek | rrot: r40900 | whiteknight++ | branches/kill_parrot_cont: [kill_parrot_cont] Creating a patch to test and fix the patch provided by jrtayloriv++ in TT #926 |
||
| Whiteknight | worst case? | 00:48 | |
| purl | it has been said that worst case is you do something like render() in poe.dyndns.org/~troc/tmp/fax/Fax.pm | ||
| Whiteknight | Clang apparently was doing something about adding closures to C | 00:50 | |
| really awesome, but no way in all of hell that Parrot's codebase would ever use them | |||
|
00:52
japhb joined
00:54
AndyA joined
|
|||
| dalek | rrot: r40901 | whiteknight++ | branches/kill_parrot_cont (18 files): [kill_parrot_cont] Apply patch from jrtayloriv++ in TT #926. Seeing failure in t/op/sprintf.t that is difficult to debug. |
01:11 | |
| bacek_at_work | Whiteknight: en.wikipedia.org/wiki/Setcontext :) | 01:37 | |
|
01:41
TiMBuS joined
|
|||
| Whiteknight | bacek_at_work: I didn't write those accessors tonight, got sidetracked | 01:43 | |
| will do it tomorrow | |||
| ...if you can wait that long :) | |||
| bacek_at_work | Whiteknight: no worries | ||
| Whiteknight | okay, I'm going to bed now. Goodnight | ||
| jrtayloriv | bacek_at_work, as far as writing tickets for the kill_parrot_cont branch, should I just continue to attach comments to TT #926, or should I create a new ticket with a title like "kill_parrot_cont branch fails sprintf tests"? | 01:47 | |
| bacek_at_work | jrtayloriv: just attach more comments to original ticket. | 01:50 | |
| jrtayloriv | bacek_at_work, ok - thanks | 01:51 | |
| bacek_at_work | jrtayloriv: on which platform you are developing this? | 01:53 | |
| jrtayloriv | x86_64 | ||
|
01:54
rhr joined
|
|||
| jrtayloriv | linux | 01:54 | |
| bacek_at_work | try to disable vdso and rebuild without optimise. It will simplify bugs hunting | ||
| jrtayloriv | bacek_at_work, do you mean GCC -O flags? or Configure.pl --optimize flag? | 01:55 | |
| bacek_at_work | Configure flags to build without optimise | ||
| "echo 0 > /proc/sys/vm/vdso_enabled" (or something like this) to disable vdso | 01:56 | ||
| jrtayloriv | bacek_at_work, my kernel does not have vdso support built into it. | 01:57 | |
| bacek_at_work | jrtayloriv: hmm... Then failures should be deterministic... | ||
| jrtayloriv | bacek_at_work, maybe I'm not looking at the correct kernel config option then (CONFIG_COMPAT_VDSO) | 01:58 | |
| bacek_at_work | COMPAT_VDSO for 32 bits afaik | ||
| jrtayloriv | it wasn't in /proc/sys/vm/ either ... I'll browse around and see what I can find as far as Gentoo and VDSO (maybe Gentoo does something weird with it) ... but as far as --optimize, that is not on by default right? | 01:59 | |
| bacek_at_work | --optimize not in default. But in your latest backtrace I did see optimised-out variables :) | 02:00 | |
| jrtayloriv | bacek_at_work, I didn't perl Configure.pl with --optimize, maybe that is GCC ... I do have -02 enabled by default in my Gentoo config files | 02:03 | |
| bacek_at_work | Heh. And effectively switch on optimisation :) | 02:04 | |
| jrtayloriv | bacek_at_work, should I do --> perl Configure.pl --optimize=O0 | 02:08 | |
| hmmm, that just gave me all manner of errors. | 02:10 | ||
| I've got Perl built with -O2 ... maybe that is why is is causing problems when I do that? | |||
| dukeleto | 'ello | 02:13 | |
| bacek_at_work | jrtayloriv: perl Configure.pl --ccflags="-O0" | 02:14 | |
| chromatic | perl Configure.pl --maintainer --optimize && perl -pi -e 's/-DDISABLE_GC_DEBUG=1 -DNDEBUG -O2 /-O3 /' Makefile | ||
| jrtayloriv | ahhh ... ok -- bingo | ||
| chromatic | You can add -g on the rhs if you like too. | 02:15 | |
| dukeleto | jrtayloriv: has anyone gotten back to you about trac.parrot.org/parrot/ticket/958 ? Looks like it can be applied and closed, yes? | 02:17 | |
| jrtayloriv | dukeleto, I haven't heard anything about it since my last post. I recall someone earlier saying that they wanted whiteknight to take a look at it, but I don't think he has had the time to do so. So, honestly, I don't know whether they should be applied or not -- I was waiting for someone more knowledgable to make that decision. | 02:19 | |
| chromatic, I see that this enables GC debugging / debugging, but don't I want to reduce the optimization level like bacek said? Doesn't what you wrote there increase the optimization from O2 to O3? Why do I want to do that? | 02:22 | ||
| chromatic | I don't know why you might. | ||
| I do it to be sure that Parrot continues to work with full optimizations. | |||
| jrtayloriv | chromatic, bacek_at_work was saying that disabling the optimizations would make it easier to debug. | 02:23 | |
| chromatic | I haven't noticed that myself. | 02:24 | |
| dukeleto | chromatic: do we currently keep track of which flags parrot was built with on smolder/taptinder ? | ||
| chromatic | I don't know. | 02:25 | |
| I *think* it's available somehow. | |||
| dukeleto | chromatic: also, what about adding a flag to Configure.pl so that you don't have to perl -pi the Makefile? would that be useful? | 02:26 | |
| perl Configure.pl --debug --maintainer --optimize=3 | 02:27 | ||
|
02:35
janus joined
03:20
donaldh joined
03:58
Andy joined
|
|||
| dalek | kudo: 9bcba63 | pmichaud++ | src/parser/grammar.pg: "Statement not terminated properly" --> "Confused" # TimToady++ |
04:12 | |
|
04:22
davidfetter joined
04:56
ZeroForce joined
05:13
beta joined
05:21
kjeldahl joined
06:01
uniejo joined
06:25
iblechbot joined
|
|||
| bacek_at_work | jrtayloriv: ping | 06:26 | |
| jrtayloriv | pong | ||
| bacek_at_work | I read your comment in ticket. Looks like premature GCing of Continuation (or continuation's ATTRibutes) | 06:27 | |
| jrtayloriv | bacek_at_work, so a problem with how I implemented mark()? | 06:28 | |
| bacek_at_work | jrtayloriv: probably. I can't review it right now. | ||
| jrtayloriv | bacek_at_work, np -- thanks for pointing me to that. | ||
|
06:29
HG` joined
|
|||
| jrtayloriv | bacek_at_work, And later, when you've got more time, could you explain to me how you figured that out? i.e. what gave you the hint that something related to Continuation is being GCed prematurely? | 06:34 | |
|
06:36
Zak joined
|
|||
| bacek_at_work | jrtayloriv: I'm not 100% sure that it GCed prematurely. But in most cases such errors caused by memory access errors. Which mean premature GCing of something. | 06:37 | |
|
06:39
krunen joined
|
|||
| jrtayloriv | OK. Thanks. | 06:42 | |
| bacek_at_work++, just got it, I think -- it had to do with freeing the to_ctx of the continuation in the destroy() VTABLE, which I shouldn't have been doing (although I don't understand why I have to free the from_ctx, but not the to_ctx) ... thanks for the help again :) | 06:59 | ||
| yep -- just passed sprintf test | |||
| sweet! -- passed all tests (except for pcre, which I am failing with trunk/ anyway), bacek++ | 07:01 | ||
| cotto | jrtayloriv, do you think it'd still be worthwhile to have a branch to work against? | 07:03 | |
| jrtayloriv | cotto, I don't understand the question, sorry. Are you asking if I think that there needs to be a separate branch? | 07:05 | |
| cotto, WhiteKnight created it, so I would ask him -- I don't know what the best thing to do here is. | 07:06 | ||
| cotto | nm. I thought he hadn't created a branch yet. | ||
| jrtayloriv, do you know about our weekly meetings in #parrotsketch? | 07:19 | ||
| jrtayloriv | cotto, yes, but I've honestly never sat in -- I'll have to do so. Thanks for reminding me -- I'll actually go browse through the logs in a moment, once I post my patch up, and see what goes on in there. | 07:20 | |
|
07:20
donaldh joined
|
|||
| jrtayloriv | done and done | 07:24 | |
| cotto | That was speedy. | 07:26 | |
| jrtayloriv | coffee ... is ... wearing ... off ... ... ... bedtime soon | 07:42 | |
| purl: msg whiteknight -- kill_parrot_cont is passing all tests now on x86_64 linux. btw -- if you have a few minutes later, could you review the docs/ patches I made in TT #958 | 07:55 | ||
| purl | Message for whiteknight stored. | ||
| jrtayloriv | night night #parrot | ||
|
07:56
rbaumer joined
08:00
chromatic joined,
bacek joined
|
|||
| bacek | o hai | 08:01 | |
|
08:05
rbaumer joined
08:09
MoC joined
08:14
jrtayloriv joined
08:30
Khisanth joined
08:53
MoC joined
09:05
allison joined
09:13
allison joined,
allison left
09:18
masak joined
|
|||
| dukeleto | bacek: good localtime() | 09:20 | |
| bacek | dukeleto: alloha! How is irssi proxy going? :) | 09:21 | |
|
09:21
rbaumer joined
|
|||
| dukeleto | bacek: i did a lot of rtfm'ing, now I just need to set it up ;) | 09:22 | |
| bacek | That's good :) | ||
| dalek | rrot: r40902 | bacek++ | branches/context_pmc3 (42 files): Reintroduce CURRENT_CONTEXT macro. Switch CONTEXT macro to return Parrot_Context structure back |
09:23 | |
| mikehh | All tests PASS at r40902 (pre/post-config, smoke, nqp_test, fulltest) - Ubuntu 9.04 amd64 (g++) | 10:17 | |
| dalek | rrot: r40903 | bacek++ | branches/context_pmc3 (4 files): Add accessors to Regs_* structures. Move Parrot_Context definition into |
10:20 | |
|
10:27
rbaumer joined
|
|||
| mikehh | rakudo (9bcba63) builds on parrot r40902 - make test / make spectest (up to r28155) PASS - Ubuntu 9.04 amd64 (g++) | 10:33 | |
| partcl r650 builds on parrot r40902 - make test PASS - Ubuntu 9.04 amd64 (g++) | 10:39 | ||
| decnum_dynpmcs r181 builds on parrot r40902 - make test PASS - Ubuntu 9.04 amd64 (g++) | 10:42 | ||
| bacek | mikehh: Yay! Can you test latest context_pmc3 branch? | 10:44 | |
| mikehh | bacek: right on | ||
| bacek | mikehh: wait few minutes. It's still dcommiting | 10:45 | |
| (Rakudo will not build with old patch) | |||
| mikehh | ok I am at r40907 | 10:46 | |
| on the branch | |||
| dalek | rrot: r40904 | bacek++ | branches/context_pmc3/src (2 files): Switch Context.inc_recursion_depth to postincrement to avoid assign -1 to UINTVAL. |
||
| rrot: r40905 | bacek++ | branches/context_pmc3/src/runcore/main.c: Remove meaningless assert. |
|||
| rrot: r40906 | bacek++ | branches/context_pmc3 (6 files): Use Context Regs_* accessors |
|||
| rrot: r40907 | bacek++ | branches/context_pmc3/include/parrot/interpreter.h: Finally remove CONTEXT_FIELD and CURRENT_CONTEXT_FIELD macros. |
|||
| bacek | mikehh: yes. r40907 is latest | ||
| mikehh | bacek: ok here goes | ||
| bacek | mikehh: thanks! | ||
| mikehh: after "realclean" codetest failure about c++ comments is expected. | 10:50 | ||
| mikehh | bacek: builds ok - make test PASS running other tests now | 10:58 | |
| bacek | mikehh: ok. I'll prepare new version of patches for rakudo and lua. | 10:59 | |
|
11:05
mberends joined
|
|||
| mikehh | bacek: I also got t/distro/file_metadata.t fails on src/call/context.c and t/op/inf_nan.t (svn properties) | 11:09 | |
| bacek | mikehh: ouch... It's svn related stuff (which isn't supported by git-svn). Just ignore it for now. | 11:13 | |
| mikehh | bacek: and manifest_tests fail - you need to run tools/dev/mk_manifest_and_skip.pl | 11:15 | |
| bacek | Which doesn't support git-svn yet :) | 11:16 | |
| But feel free to run it and commit changes in branch | |||
| mikehh | otherwise looks good - but t/tools/parrot_debugger.t still gives a backtrace (although it passes) - does not in trunk anymore | 11:17 | |
| bacek | mikehh: yeah. But I'm trying to avoid merge from trunk before finishing all jobs. Merges in svn is pain... | 11:21 | |
|
11:21
donaldh joined
|
|||
| dalek | rrot: r40908 | bacek++ | branches/context_pmc3/MANIFEST: [cage] Add context.h into MANIFEST |
11:24 | |
| nopaste | "bacek" at 114.73.43.135 pasted "latest rakudo patch for mikehh++" (77 lines) at nopaste.snit.ch/17767 | 11:25 | |
| bacek | mikehh: rakudo should build seamlessly on r40908 with nopasted patch. | ||
|
11:29
sri joined
11:31
AndyA joined
|
|||
| dalek | rrot: r40909 | mikehh++ | branches/context_pmc3 (2 files): set svn properties as per t/distro/file_metadata.t failures |
11:34 | |
| rrot: r40910 | mikehh++ | branches/context_pmc3/include/parrot/context.h: fix svn properties on include/parrot/context.h |
11:44 | ||
| rrot: r40911 | mikehh++ | branches/context_pmc3/MANIFEST: run tools/dev/mk_manifest_and_skip.pl to fix manifest_tests failure |
|||
| mikehh | and again from the newly added files - need to fix more properties :{ (mind you easy karma) | 11:46 | |
| dalek | rrot: r40912 | mikehh++ | branches/context_pmc3 (2 files): fix svn properties on src/pmc/context.pmc and t/pmc/context.t |
11:58 | |
| mikehh | bacek - apart form src/jit/i386/jit_defs.c with c++ comments codetest now passes and manifest_tests - the rest PASS | 12:04 | |
| how do you apply the patch specifically - not too sure of git patching | 12:07 | ||
|
12:14
JimmyZ joined
|
|||
| Coke | bacek: you can build parrot optimized with debug, at least with gcc: "Configure.pl --optimize --ccflags=-g" | 12:26 | |
| chromatic++ | |||
| Anyone want to fix my segfault before parrotsketch so my report is all hugs and puppies? | 12:27 | ||
| NotFound | Coke: What segfault? | ||
| purl | segfault is, like, xkcd.com/371/ | ||
| Coke | TT #960 | 12:29 | |
|
12:30
ingy joined,
mmpf joined
|
|||
| NotFound | Coke: I no longer have that failures | 12:30 | |
|
12:31
payload joined,
TimToady joined
|
|||
| Coke | NotFound: hurm. any idea which revision fixed it? | 12:32 | |
| updating parrot to double check. (also, try running with --gc-debug) | |||
| NotFound | Coke: r40897 was the last related change | 12:33 | |
| Coke | ok. I'm about six behind that; checking... | 12:34 | |
| NotFound | r40893 was the key | 12:35 | |
|
12:35
quek joined
|
|||
| Coke | so, what, something got recycled, had a custom mark, and then that inappropriate mark got invoked when the new pmc was checked? | 12:35 | |
| NotFound | Looks like there was something like that, yes. | 12:36 | |
| I'm thinking that we need a 'dead' PObj flag | |||
| For things that have been destroyed but aren't yet in a free list | 12:37 | ||
| BTW, I can't #ps today. My report is: fixing, fixing, fixing ;) | 12:39 | ||
| Coke | NotFound: I can no longer duplicate the segfault; feel free to claim the ticket and close it and give yourself a cookie! | 12:40 | |
| NotFound++ | |||
| NotFound | Coke: don't have time today, feel free to close yourself | ||
|
12:42
spinclad joined
|
|||
| Coke | NotFound++ | 12:43 | |
| dalek | TT #960 closed by coke++: segfaults in Parrot_String_mark | ||
|
12:46
sri joined
|
|||
| dalek | rtcl: r651 | coke++ | wiki/ParrotIssues.wiki: this ticket's bug is fixed, just waiting on a test; we don't need to track it |
12:46 | |
| rtcl: r652 | coke++ | trunk/runtime/builtin/info.pir: use more .const |
12:57 | ||
| rtcl: r653 | coke++ | trunk/runtime/builtin/info.pir: move 'body' inline |
|||
| rtcl: r654 | coke++ | trunk/runtime/builtin/info.pir: make 'args' inline |
|||
| rtcl: r655 | coke++ | trunk/src/macros.pir: Add macro for setting up an iterator. |
|||
| rtcl: r656 | coke++ | trunk/config/PARROT_VERSION: There are many fewer segfaults here, NotFound++ |
|||
| rtcl: r657 | coke++ | trunk/runtime/builtin/info.pir: inline all the [info subcommands]; cleanup PIR. |
|||
| rtcl: r658 | coke++ | trunk/runtime/ (25 files): PIR cleanup (also, more macros) |
|||
| Coke wonders why "# vim: ft=tcl :" isn't working. | 13:04 | ||
|
13:08
quek left
13:13
ruoso joined
13:16
mikehh_ joined
13:22
TiMBuS joined
13:23
mikehh joined
13:27
bkuhn joined
|
|||
| mikehh | bacek_at_work: ok rakudo passed make test and make spectest with the patch on parrot from the context_pmc3 branch | 13:33 | |
| and partcl r658 PASSes make test for that matter (forgot to install trunk parrot) :-} | 13:36 | ||
| dalek | kudo: 4c08564 | mberends++ | src/setting/Temporal.pm: [Temporal.pm] replace soon-to-be-deprecated int() with floor() |
13:45 | |
| Coke | NotFound++ | 13:46 | |
|
14:00
PacoLinux joined
14:04
whiteknight joined
14:15
Zak joined
14:17
Psyche^ joined
|
|||
| Coke | NotFound++ | 14:32 | |
|
14:37
Andy joined
14:40
jhorwitz joined
14:41
JimmyZ joined
|
|||
| mikehh | All tests PASS at r40912 (pre/post-config, smoke, nqp_test, fulltest) - Ubuntu 9.04 amd64 (gcc) | 14:41 | |
| partcl r658 builds on parrot r40912 - make test PASS - Ubuntu 9.04 amd64 (gcc) | 14:42 | ||
| (and also on the context_pmc3 branch) | 14:43 | ||
| rakudo (4c08564) builds on parrot r40912 - make test / make spectest (up to r28156) PASS - Ubuntu 9.04 amd64 (gcc) | 14:54 | ||
| decnum_dynpmcs r181 builds on parrot r40912 - make test PASS - Ubuntu 9.04 amd64 (gcc) | 14:57 | ||
| Coke | NotFound: down to 8 segfaults in spectest, some of which were long standing. | 15:18 | |
| 2 of the segfaults have turned back into memory panics; but that reclaimed a lot of passing tests. | 15:20 | ||
|
15:21
donaldh joined
|
|||
| dalek | rtcl: r659 | coke++ | wiki/SpecTestStatus.wiki: Unfudge a lot of tests after NotFound++'s segfault fix in parrot. |
15:24 | |
| jrtayloriv | PMC "headers" are an outdated concept related to when things used to be split into PMC and PMC_EXT right? | 15:25 | |
| Or is that term referring to something else? | |||
|
15:26
frodwith joined
|
|||
| jrtayloriv | Or, rather: since get_new_pmc_header() from src/pmc.c is not being used anywhere, can we just remove it? Aren't we always just using the pmc_new_* functions now? | 15:28 | |
| oh -- nm, I see now that pmc_new is still using it :) | 15:29 | ||
| NotFound | jrtayloriv: is just a name, if you have a better idea we can change it | 15:31 | |
|
15:32
payload joined
|
|||
| dalek | TT #700 closed by doughera++: dynpmc/Makefile problem on Solaris 8/SPARC at r39040 | 15:40 | |
|
16:02
cotto joined
16:15
whiteknight joined
|
|||
| cotto | good mooring | 16:17 | |
|
16:17
darbelo joined
|
|||
| masak | oh hai. Close seems like a really nice thing. is there some way I could contribute to it? | 16:22 | |
| cotto | seen austin | 16:23 | |
| oh noes. the bot got eated. | |||
| masak | "step 1. get ahold of austin", it seems. good to know he's on IRC. | 16:24 | |
| cotto | yup. austin is Close's primary developer. | ||
| masak | austin++ | ||
| darbelo | Maybe someone finally got fed up with purl an killed her. | 16:25 | |
| rg | (14:40:20) purl left the room (quit: Killed (warewolf (reconnect to a server that isn't going down purl))). | ||
| masak | darbelo: :D | ||
| darbelo wanted to a few times. | 16:26 | ||
| masak | I couldn't help but notice that the README file, updated two months ago, refers to two files in docs/ that aren't there yet. so I thought maybe I could help with that. | ||
| rg | looks like purl needs a bit of a push to reconnect (or be told a different server) | 16:27 | |
| darbelo | Say, does PIR have anything like system() ? | ||
| pmichaud | can open a pipe | ||
| to a process | |||
|
16:28
chromatic joined
|
|||
| pmichaud | github.com/rakudo/rakudo/blob/9bcba...system.pir | 16:29 | |
| oh, wait, that doesn't look right | |||
| it's pretty close. If you want to capture the output you need to open a pipe. | |||
| Rakudo does that for the qx{...} term | 16:30 | ||
|
16:30
mokurai joined
|
|||
| pmichaud | github.com/rakudo/rakudo/blob/9bcba...ins/io.pir (the !qx sub) | 16:31 | |
| darbelo | Hmm, Thinking better about it, I don't really care about the output, just want to run a program. | ||
| pmichaud | then either of those should work :) | ||
| #ps in 118 | 16:32 | ||
|
16:45
ash_ joined
16:53
kjeldahl joined
|
|||
| Coke hopes he can finish this spec test run before parrotsketch. | 17:06 | ||
| pmichaud: I was having a lot of segfaults before notfound's recent work; were these not affecting you, or have you been slow to track parrot revs? | |||
|
17:07
iblechbot joined
|
|||
| Coke | (I've been trying to update more frequently after 1.5.0, as I've had a bunch of different problems, and each step forward has resulted in other breakages, so I have to keep moving forward. =-) | 17:12 | |
| moritz | I haven't seen segfaults in rakudo in the last two weeks (when tracking parrot HEAD) | 17:14 | |
|
17:14
theory joined
|
|||
| dalek | rtcl: r660 | coke++ | wiki/SpecTestStatus.wiki: missed one constraint failure. |
17:17 | |
| Coke | moritz: not surprised if we're tickling (HA) different core errors. | 17:18 | |
| whee. all the spec tests we can run (whether or not any tests pass) are now up 93 test files, 7397 individual tests, passing 3363, in 6651 seconds. | 17:20 | ||
| (that's a new record of passing tests) | 17:21 | ||
| (up from 2972 on 6/13 of last year.) | 17:22 | ||
| NotFound++ | |||
| Now if I can get patrick to look at that PGE ticket, I can get about 400 more tests counted... =-) | 17:23 | ||
| <- greedy | |||
| (er, 6/13 earlier this year.) | 17:24 | ||
| mikehh | Coke: seem to get 1 - !! child died with signal 11, without coredump - mathop - after ==== mathop-24.2 FAILED | 17:26 | |
| whiteknight | mikehh: stop bearing bad news! | ||
| If Coke is happy for once, let him be! | |||
| Coke | no, that's fine; thanks. confirmed. Missed that one in the spec test list. (so, it ran it, it failed, and it wasn't counted at all; it just made the test run slower but doesn't impact any of the other numbers.) | 17:27 | |
| mikehh++ | |||
| mikehh | that's down from 3 yesterday - which was an improvement | ||
| Coke | mikehh: and we should have added a bunch of new ones. | 17:28 | |
| s/ones/tests that run to completion/ | |||
| mikehh | all other tests repoort or are skipped | 17:29 | |
| Coke | added it to the skip list for next time. | ||
| next step is to make sure there are parrot tickets for each of the remaining segfaults. (except perhaps binary, which is one of the few places we use C code in partcl.) | |||
| mikehh | I make ir #ps in one hour | 17:30 | |
| dalek | rtcl: r661 | coke++ | wiki/SpecTestStatus.wiki: missed one segfault (mikehh++ for pointing it out.) |
17:32 | |
|
17:34
Zak joined
|
|||
| Coke | ps? | 17:39 | |
|
17:42
AndyA joined
|
|||
| Util | #ps in 41 | 17:49 | |
| Coke | partcl.blogspot.com/2009/09/now-pas...tests.html | 17:53 | |
| jonathan | Coke++ # nice :-) | 17:54 | |
| moritz | aye | ||
|
18:00
joeri joined
|
|||
| dalek | TT #961 created by coke++: segfault in Parrot_oo_find_vtable_override | 18:06 | |
| rtcl: r662 | coke++ | wiki/SpecTestStatus.wiki: link to ticket. |
18:10 | ||
|
18:16
eternaleye joined
18:18
AndyA joined
|
|||
| dalek | kudo: 39c3f4b | (Solomon Foster)++ | (5 files): infix:</>(Int, Int) creates a Rat, infix:<div>(Int, Int) an Int, as per latest S03 Fix Rat.perl to return "N/M" rather than "Rat.new(N,M)". Switch GCD routine to use % instead of -, for a vast performance increase on widely mismatched numbers. Add Rat * Int, Int * Rat, Rat / Int, and Int / Rat overloads. Patch mostly by colomon++, with some minor contributions and cleanups by moritz See RT #68898 for discussion. |
18:21 | |
| kudo: 4b9cd2d | moritz++ | docs/ChangeLog: [docs] ChangeLog updates |
|||
| Coke | mikehh: ww? | 18:35 | |
| mikehh | Coke am running make spectest again - up to parse | 18:37 | |
|
18:39
Tene joined
|
|||
| jrtayloriv | whiteknight, If you've got a few minutes later, can you 'make test' and commit (assuming everything works for you too) the changes I made to kill_parrot_cont branch, so I can continue working on it? | 18:49 | |
| whiteknight, I'm passing all tests on x86_64 linux now. | |||
| whiteknight | jrtayloriv: I won't be able until I get home unfortunately | ||
| jrtayloriv | whiteknight, no prob -- I'm in no rush, just wanted to let you know I've got the patches added to the ticket. | 18:50 | |
| whiteknight | yes, I did see that, just haven't had a chance to work on it | 18:52 | |
|
18:58
purl joined
18:59
bacek joined
|
|||
| dalek | TT #962 created by coke++: segfault in Parrot_Object_assign_pmc | 19:00 | |
| whiteknight would be very happy to see SVN properties disappear | 19:04 | ||
| cotto | clock? | ||
| purl | cotto: LAX: Tue 12:04pm PDT / CHI: Tue 2:04pm CDT / NYC: Tue 3:04pm EDT / LON: Tue 8:04pm BST / BER: Tue 9:04pm CEST / IND: Wed 12:34am IST / TOK: Wed 4:04am JST / SYD: Wed 5:04am EST / | ||
| cotto | good morning, bacek | 19:05 | |
| duk3leto would be very happy to see SVN disappear | |||
| chromatic | We can't get rid of SVN any time soon, but I'd like to get rid of the properties. | ||
| duk3leto | chromatic: I can live with that. | ||
| +1 to making it so that a developer doesn't need to manually set svn properties after adding a new file | 19:06 | ||
| chromatic | Or at least shuffle them off to where they're not easily forgettable busy work that cause more busywork test failures than the test failures we originally added them to prevent. | ||
| whiteknight | In my time with Parrot, the only interactions I've had with properties is forgetting to set them and being yelled at for the test failures | ||
| japhb | yes, I would favor that -- assuming that getting rid of them won't result in svn being stupid. | ||
| whiteknight | they have provided me no benefit whatsoever | ||
| duk3leto | the only use for properties I have had is setting certain files to binary so that "svn diff" doesn't throw garbage on my screen | 19:07 | |
| chromatic | There are a couple of IO tests that need platform-specific newlines. That's the only case where I can think of that we need SVN properties. | ||
| japhb | allison asked to log here that she was in favor of exploring server-side hooks | ||
| mikehh | what about the svn:keywords - they put the latest info at the top of the file - or is there some other way of doing that | ||
| Coke | that should be enabled for all non-binary files. | ||
| and I'm pretty sure we can set a hook and forget it. | 19:08 | ||
| Util | I am willing to tackle the server-side hooks. What access do I need? | 19:10 | |
| Coke | do the research, come up with a plan, have someone with ssh access pull the the trigger? | 19:11 | |
| chromatic | I think just file a bug with OSU, once you have something you think will work. | ||
| Coke | (or we get you access to the VMware box running the parrot.org stuff ) | ||
| chromatic: oh, right, make them do the work. | |||
| +1 | |||
| purl | 1 | ||
| Util | Coke: will do (research/plan) | 19:12 | |
| dalek | rtcl: r663 | coke++ | wiki/SpecTestStatus.wiki: Edited wiki page through web user interface. |
19:15 | |
| Coke | whiteknight: also look at lightning. | 19:20 | |
| chromatic | Lightning is definitely an inspiration. | ||
| whiteknight | yes, I intend to look closely at lightning, libJib, LLVM, etc | ||
| I think an ideal solution would be a pluggable API that supports all of these | |||
|
19:20
donaldh joined
|
|||
| moritz | aye; but don't overdesign ;-) | 19:21 | |
| duk3leto | can anybody recommend some introductory JIT reading materials? | 19:24 | |
| japhb | Note that the browser people have done a metric ton of work on JIT over the last couple years, so they have fresh eyes on the problem (and are seriously kicking butt, I might add) | ||
| duk3leto, I'd honestly look at the developer wikis for the free web browsers | |||
| duk3leto | japhb: good tip, thanks | 19:25 | |
| moritz | V8, tracemonkey might be worthy to look at | ||
| Coke | I wonder if I should be using a different core to speed up partcl work. | 19:26 | |
| japhb | moritz, and Nitro (aka SquirrelFish Extreme) | ||
| whiteknight | Coke: fastcore is the best in profile numbers I've seen | 19:27 | |
| Coke | is there a way to make it the default core in a) built parrot and b) fakecutables? | 19:28 | |
| chromatic | Fakecutables, easy. | ||
| Built Parrot, possible. Do you mean globally or as a configurable default? | |||
| Coke | I just want to have the fastest core running when I say "parrot" | 19:29 | |
| whiteknight | A good JIT system would allow us to build proper binaries too, not fakecutables | ||
| like what our exec core was supposed to be, I think | |||
| chromatic | There's another core we could probably yank.... | ||
| whiteknight | "probably should" FTFY | ||
|
19:30
uri joined
|
|||
| jonathan | I think if you yank the jit core you pretty much have to yank the exec one with it. | 19:30 | |
| japhb | FTFY? | ||
| whiteknight | fixed that for you | ||
| jonathan: probably | |||
| Coke | added 2 segfaults to trac... | ||
| japhb | whiteknight, heh | ||
|
19:30
uri left
|
|||
| moderator | www.parrot.org | Improve test coverage for Array and NameSpace / Fix Segfaults for Coke / Merge Stable Branches for 1.6 SOON | 19:32 | |
| moderator | www.parrot.org | Improve test coverage for Array and NameSpace / Fix Segfaults for Coke / Port Tests to PIR / Merge Stable Branches for 1.6 SOON | 19:33 | |
| duk3leto | the Factor language has some interesting things to say about JIT: factor-language.blogspot.com/search?q=JIT | 19:34 | |
| particle | did somebody once have a script that displayed the type of pmc's used in a program, and how many were created? | 19:35 | |
| chromatic | My thought for Lorito is that a tracing JIT is the way to go, especially if we can do aggressive inlining. | ||
| particle | it might help to improve our test coverage by starting on the most frequently used pmc types | ||
| whiteknight | my big "killer feature" for lorito is that we can write ops definitions once and generate the C code and JIT defs automatically from that | 19:36 | |
| particle | i gather those are FixedIntegerArray, Hash, Key, Sub, and Namespace | ||
| whiteknight | no more having to make symetric edits to keep things lined up | ||
| mikehh | pmichaud: ping | ||
| pmichaud | pong | ||
| chromatic | Namespace is in the list. I put Array in there because other array types extend it. | ||
| treed | What about ResizablePMCArray? | 19:37 | |
| mikehh | pmichaud: I was testing the context_pmc3 branch for bacek++ and he had a patch to make rakudo pass all tests | ||
| treed kibbitzing | |||
| chromatic | I think it extends Array too. | ||
| treed | Oh, wait, this is #parrot not #parrotsketch | 19:38 | |
| pmichaud | mikehh: I don't think I've seen the patch yet | ||
| mikehh | pmichaud: I was just wondering how do we maintain backward compatibility say with 1.5 | ||
| pmichaud | mikehh: I don't understand | 19:39 | |
| if you're asking if we can apply the patch to existing Rakudo, and the patch causes us to no longer build against Parrot, then the answer is that we can't | |||
| you can make a branch of Rakudo master and apply the patch there | 19:40 | ||
| but until the context_pmc3 branch lands in Parrot trunk, Rakudo master can't/shouldn't build against it | |||
| mikehh | pmichaud: nopaste.snit.ch/17767 | ||
| pmichaud | (i.e., we don't want Rakudo master to be tracking a Parrot branch) | ||
| mikehh | no - the patch works in the branch - if the branch is merged what happend if you build the latest rakudo against say 1.5 | 19:41 | |
| cotto | particle, I had something like that. | ||
| pmichaud | mikehh: that's no problem (more) | 19:42 | |
| it's already the case that Rakudo head doesn't build against Parrot 1.5 | |||
| that usually happens just a few days after release anyway | |||
| mikehh | ah - ok I see that now | ||
| pmichaud | that's why we have the PARROT_REVISION marker; it allows Rakudo finer control over the exact version of Parrot being used to build it (in the common case) | 19:43 | |
| moritz | aye, only Rakudo releases target parrot releases | ||
| mikehh | I was just worried that the latest wouldn't build against earlier parrots | ||
| pmichaud | that's already the case. Rakudo development still has a higher velocity than Parrot's monthly release cycle | ||
| cotto | chromatic, I don't think anything extends Array. | 19:44 | |
| chromatic | Maybe it's FixedPMCArray they extend. | ||
| particle | nothing uses Array, just Fixed*Array | ||
| pmichaud | eventually we hope that things will slow down enough that Rakudo development can only target Parrot monthly releases (and then eventually just Parrot supported releases) | 19:45 | |
| particle | which Resizeable*Array extends | ||
| pmichaud | and MultiSub extends ResizablePMCArray, iirc | ||
|
19:45
eternaleye joined
|
|||
| moderator | www.parrot.org | Improve test coverage for FixedPMCArray and NameSpace / Fix Segfaults for Coke / Port Tests to PIR / Merge Stable Branches for 1.6 SOON | ||
| whiteknight | who is releasing 1.6, particle? | 19:46 | |
| particle | FixedIntegerArray is used in every pcc call | ||
| yep, me | |||
| Coke | particle: I had a macro that dumped how many pmcs were allocated, but we don't know what types. | 19:47 | |
| pmichaud | (release targeting) but so far Rakudo hasn't been able to go for very long based on a Parrot release (more) | 19:48 | |
| I suspect this is due to the deprecation policy itself. Suppose that Rakudo development is blocking on feature XYZ in Parrot. | 19:49 | ||
| cotto | particle, it'd be pretty easy to edit include/parrot/vtable.h to add some code to the VTABLE_init and VTABLE_init_pmc macros. IIRC that's what I did. | ||
| pmichaud | And feature XYZ in Parrot is blocking on a deprecation cycle | ||
| actually, let's put actual dates here | |||
| suppose Rakudo development is blocking on XYZ | |||
| and XYZ is blocking because it requires us to give a deprecation notice in January 2010 | |||
| which means doesn't exist until the January 2010 release | 19:50 | ||
| mikehh | Coke: partcl make spectest - all test now either complete of are skipped | ||
| pmichaud | that means that if we say that Rakudo is tied to working against monthly releases, the earliest we could make use of XYZ is February 2010 | ||
| chromatic | That only gets PMCs which use those vtables, not the ones that go through instantiate instead. | 19:51 | |
| pmichaud | if we say that Rakudo is tied to working against supported Parrot releases, the earliest we can make use of XYZ is July 2010 | ||
| blocking 10 months on Parrot is not a viable option for us. | |||
| Coke | mikehh: woot. | ||
| whiteknight is relatively unhappy with the current deprecation policy, but won't fight about it | 19:52 | ||
| pmichaud | some for me, but s/relatively// | ||
| *same | |||
| mikehh | I think chromatic is too :-} | ||
| Coke | I think having /a/ policy is sane; i think our current version over-estimates our user base. | ||
| mikehh | moi aussi | ||
| whiteknight | I'm not sure what to replace it with, we do need somekind of policy so we don't rip the rug out from under our users | 19:53 | |
| but waiting 6 months for major developments, when so many of our current systems are in need of major refactoring if not complete replacement as soon as humanly possible, is not good | |||
| mikehh | cardinal users are v. upset at the moment | ||
| whiteknight | mikehh: upset about what? | ||
| or, what specifically | 19:54 | ||
| pmichaud | anyway, I've been told that revisiting the deprecation policy is not really open for discussion, so I'll drop it here. | ||
| Coke | note that, in general, deprecation blocks removals and incompatible updates, not new things. | ||
| pmichaud | Coke: it blocks refactors. | ||
| and some new things depend on refactors | |||
| Coke | depending on what's been exposed, sure. | ||
| whiteknight | Coke: it's been blocking enough new things that it's worth reconsideration | ||
| moritz | who controls cardinal2.rubyforge.org/? | ||
| it's very out of date | |||
| Coke | But I suspect that we could come up with a way to add something new without removing the old. | 19:55 | |
| mikehh | test failures with cardinal which were passing fine before some brach merges | ||
| Coke | mikehh: ah, just like me. =-) | ||
| if we have to make something pluggable to support both the old and the new, make the old the default until the deprecation point, athen change the default, then rip out hte old stuff, that seems like it should be possible. | |||
| pmichaud | Coke: (1) doing that seems to slow down our development significantly, and (2) we don't have a good success rate even when we've attempted to do that | ||
| whiteknight | yeah, the branches merging this month were more disuptive then normal | 19:56 | |
| mikehh | I think treed is the principal at the moment | ||
| whiteknight | of course, they are making some seriously-necessary changes | ||
| moritz | purl: cardinal? | ||
| purl | i heard cardinal was mail.freesoftware.fsf.org/pipermail...dinal-dev/ or the Ruby-on-Parrot project. or xrl.us/uyz3 | ||
| pmichaud | Coke: per the situation I just gave before, if "rip out the old stuff" can't occur until after January 2010, then projects wanting to target "supported releases" are blocked until July 2010. | 19:57 | |
| particle | slowing down our development has improved our product stability | ||
| mikehh | there is a #cardinal on this server just /join cardinal | ||
| pmichaud | particle: I disagree. | ||
| Coke | particle: can you show us any downstream users taking advantage of this stability? | 19:58 | |
| particle | i don't track any user stats | ||
| pmichaud | particle: I know that for the 1.4 release I had to make emergency changes to Rakudo in order for its July release to be able to build against 1.4 | 19:59 | |
| particle | if our api only changes in 6 month cycles, then it's more stable than it was | ||
| pmichaud | "api only changes in 6 month cycles" is as yet a myth | ||
| Coke | pmichaud: sure. I'm saying adding new things should not be blocked by removing old things, (I'm not saying it should be easy) | ||
| particle | pmichaud: yes, due to a late merge of a branch | ||
| pmichaud | particle: even if it had been an early merge, Rakudo would've been hosed in the same way | ||
| particle | that's a policy that's under review | ||
| mikehh | quite a few persons have developed an HLL on parrot and then come back to it later an it don't work anymore | ||
| Coke | particle: I'm not disagreeing that it is /theoretically/ more stable; but that doesn't really help anyone I know developing against parrot. =-) | 20:00 | |
| pmichaud | and if we were following the "use a supported release policy" today, it would mean that Rakudo couldn't have a working 'make install' target until January 2010. | ||
| Coke | (adding new things) (ok, it SHOULD be easy, but I'm not saying that it really is.) | 20:01 | |
| particle | pmichaud: you don't need to use a supported release | 20:02 | |
| that's a policy for you, as rakudo dev, to set | |||
| japhb | It's the refactor problem -- (I gather) Parrot is in need of much refactoring before adding new things is easy. But the refactoring is part of what is conflicting with deprecation policies. | ||
| pmichaud | particle: that's Parrot's official recommendation as to what users (including HLL developers) should be doing, however. | ||
| chromatic | I think the problem is the biannual releases, not the six month cycle per se. | ||
| pmichaud | particle: you're correct that I can choose to ignore that recommendation, but that introduces impedance mismatch between Parrot and the needs of its (HLL) users | 20:03 | |
| particle | yes, clearly there is an impedance mismatch | ||
| pmichaud | and the claim that this "increases stability" is not thus far borne out by actual experience | 20:04 | |
| what it really does is "reduce volatility" by imposing delays on Rakudo developers. We still have huge changes, but they're spread out over long periods of time | 20:05 | ||
| mikehh | what we need is a stable and "comprehensive" test suite that parrot needs to pass - then we can make changes etc and it *MUST* pass the test suite | ||
| whiteknight | okay, we've all trashed the current policy enough. The question now is, what is the way to fix it? | ||
| japhb | pmichaud, while I agree with you in general, do remember that a lot of committers are still learning how to work within a project that has this kind of deprecation cycle -- I would expect the first couple cycles to be a bit messy even if the policy was perfect. | ||
| whiteknight | mikehh: we do need it to be a lot more comprehensive then it is | ||
| pmichaud | japhb: I'm looking at the patch that mikehh showed me, and I see no way that the existing mechanism could possibly work | 20:06 | |
| mikehh | just look at recent merges - make test/fulltest PASSed but rakudo, partcl cardinal had failures | ||
| japhb | pmichaud, fair enough -- I just doubt that impossibility applied to all of the places Rakudo had to jump the spinning knives of death | 20:07 | |
| chromatic | We need better Parrot test coverage, for one. | ||
| mikehh | in rakudo's case it wouldn't even build at first | ||
| pmichaud | I'm not claiming it applies to all Rakudo development, only that it applies to enough of Rakudo development to be a significant blocker for us | ||
| japhb | .oO( The less sleep I get, the more visual my metaphors become ...) |
||
|
20:07
eternaleye_ joined
|
|||
| japhb | pmichaud, nodnod | 20:08 | |
| pmichaud | shall I shut up now, or would it be worthwhile to look at a very specific change that I think really exemplifies the problem? | 20:10 | |
| whiteknight | pmichaud: do tell | ||
| duk3leto | pmichaud: all ears | 20:11 | |
| pmichaud | from bacek's context_pmc patch for Rakudo: | ||
| mikehh | +1 | ||
| purl | 1 | ||
| pmichaud | - Parrot_Context *ctx = CONTEXT(interp)->caller_ctx; | ||
| + PMC *ctx = Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp)); | |||
| the context_pmc branch is changing the very API that is used to get at context information | 20:12 | ||
| mikehh | that's for the context_pmc3 branch | ||
| pmichaud | (yes, context_pmc3, thanks) | ||
| if someone says "oh, Rakudo was using internal data structures there", the answer is that there wasn't any other API available | |||
| if someone says "Rakudo should've waited until an API became available", the answer is that apparently won't appear until January 2010 | 20:13 | ||
| sorry, *February 2010* | |||
| Coke | I thought allison's answer was 'do it both ways until we can rip out the old one.' | ||
|
20:13
hercynium joined
|
|||
| pmichaud | if we say "oh, Parrot needs to support the old API", I don't see any way to reasonably do that | 20:13 | |
| whiteknight | pmichaud: we can add an API anytime, we don't need to wait for a deprecation point | 20:14 | |
| so if you want an API, ask and ye shall receive | |||
| mikehh | as long as we can test and patch - until we are really *stable* we still need to move forward | ||
| pmichaud | whiteknight: okay, in this case we need an API that preserves the Parrot_Context structure | ||
| but the point of the branch is to eliminate the Parrot_Context structure | |||
| whiteknight | pmichaud: replace it with a Context PMC with the same functionality | ||
| pmichaud | whiteknight: that doesn't work for | 20:15 | |
| 20:11 <pmichaud> - Parrot_Context *ctx = CONTEXT(interp)->caller_ctx; | |||
| note that ctx is *not* a PMC | |||
| whiteknight | so are you arguing for or against the branch? | ||
| pmichaud | let's be clear, I'm very much in favor of the branch | ||
| whiteknight | ok | ||
| jonathan | #defone Parrot_Context PMC /* hey solved */ | ||
| pmichaud | jonathan: and PMC's have a caller_ctx element? | 20:16 | |
| whiteknight | pmichaud, you should never need to see Parrot_Context, take a reference to it, use it's fields directly, etc | ||
| pmichaud | whiteknight: but the problem is that we *do* | ||
| Coke | can't we #define CONTEXT(interp)->caller_ctx to do something? | ||
| whiteknight | You should have a proper API that obscures all those things and provides you access to the data without concerning you over the structure of that data | ||
| pmichaud | whiteknight: I agree we should have one. Parrot didn't. | ||
| whiteknight: at this point, Parrot still doesn't. | 20:17 | ||
| whiteknight | no argument, but it will | ||
| chromatic | Can't we argue over whether the color scheme of our website is offensive? | ||
|
20:17
donaldh_ joined
|
|||
| whiteknight | DAMNIT I HATE GREEN | 20:17 | |
| Coke | so i would argue that poking directly into struct guts is experimental. | ||
| pmichaud | Coke: I'm fine with that. | ||
| whiteknight | Coke: agreed 100% | ||
| Coke | then it's a win win. | ||
| pmichaud | However, the current claim is that the context_pmc3 branch can't land because existing applications depend on the old "API" | ||
| whiteknight | wrong, there was no old API | 20:18 | |
| Coke | "poking into structs is not an API" | ||
| I think that's a reasonable argument to make. | |||
| pmichaud | Coke: that's fine with me also | ||
| japhb | Coke, Also a good slogan for a t-shirt or coffee mug | ||
| chromatic | "Poking into structs" appears *nowhere* in the "What we consider valid deprecation targets" section of our support policy. | ||
| pmichaud | in which case let's merge the branch and be done with it and not worry about trying to maintain backwards compatibility in this case | ||
| Coke | japhb: not very catchy. kids'll never by it. | ||
| "buy" | |||
| pmichaud | but afaict that is not what bacek++ has been told | ||
| whiteknight | we can't merge the branch yet, there's a test failure on the JIT core | 20:19 | |
| japhb | Coke, what, you mean like the 'Geek.', 'code poet', and binary DAD t-shirts I own? | ||
| Coke | chromatic: might be worth adding it to a new "don't you even think about it" section. or at least a section that apologize for the lack of an API. | ||
| whiteknight just made himself more angry | |||
| mikehh | whiteknight: works fine on amd64 :-} | ||
| whiteknight | mikehh: really? in the JIT core? | 20:20 | |
| japhb | whiteknight, I'm still in favor of Bessie. | ||
| whiteknight | Bessie? | ||
| japhb | whiteknight, no JIT core on amd64. ;-) | ||
| (the rifle) | |||
| mikehh | of course - I run everything :-} ha ha | ||
| whiteknight | oh right right, there is no JIT on x64 | ||
| chromatic | What happens when Everyone But Allison agrees on an idea? | ||
| pmichaud | I'm simply saying that there appear to be times when Parrot cannot simultaneously adopt a new API and support an old one | ||
| chromatic | The same as if Everyone But Patrick or Everyone But Coke or Everyone But chromatic agree on an idea? | 20:21 | |
| mikehh | whuich if we gonna use it we need something new | ||
| which | |||
| Coke | chromatic: except for the "everyone but coke", I agree with you. | ||
| whiteknight | Allison seemed more amenable to the idea last I talked to her | 20:22 | |
| I don't want to speak for her, of course | |||
| pmichaud | and when we cannot simultaneously adopt a new API and support an old one, we impose a 7-12 month delay on the downstream users that are depending on (features depending on) the new API | ||
| (less if they choose to target monthly releases instead of supported releases, but it's still a 1-5 month delay) | 20:23 | ||
| er, 1-6 month delay | |||
| dalek | kudo: 0d6c42b | moritz++ | src/setting/Rat.pm: fix infix:</>(Int, Rat) |
||
| chromatic | Right. That's why I never liked and still don't like the biannual releases. | ||
| Coke | I would tend to argue that if we had an actual API to change, we could support both. | 20:24 | |
| mikehh | that's just to fit in with upstream distros etc - not sure I agree | ||
| japhb | The biannual releases might make sense for a project that is considerably more mature than Parrot is ... but this is too early. I partly blame the "need" to stamp "1.0" on it. | ||
| pmichaud | Coke: suppose that CONTEXT(...) had been an actual API | ||
| Coke | then it would have been a function call. | ||
| pmichaud | Coke: the problem is not the macro, it's the fact that it relies on the Parrot_Context structure | 20:25 | |
| so suppose that Parrot_Context is an actual API | |||
| one can claim that it's not a good API, and that's fine, but I posit that we have other APIs that are similarly flawed | |||
| mikehh | well there are published api's and internal ones | 20:26 | |
| maybe those should be dpi's | 20:27 | ||
| whiteknight | we've never actually published a comprehensive API that we do support | ||
| chromatic | Poking into structs is not an API, and any language that does that will have to follow trunk carefully until we have an API which obviates the need to poke into structs. | ||
| pmichaud | chromatic: I agree fully. I'm fine with that. | ||
| whiteknight | and it does seem weird that we support an API that we've never defined | ||
| duk3leto | chromatic++ | ||
| pmichaud | chromatic: I'm not fine with trunk having to wait until January before it can get rid of the old API. | ||
| chromatic | Exactly. | ||
| pmichaud | (and get the new ones) | ||
| duk3leto | (supporting undefined APIs)-- | ||
| Coke | chromatic++ for restating my point more cogently. | ||
| pmichaud | I'll rephrase | 20:28 | |
| chromatic | Applying our deprecation policy to support backwards compatibility for poking into structs works against the goal of backwards compatibility. | ||
| pmichaud | I'm not fine with trunk having to wait until after January before it can get the new API | ||
| jonathan | Just because Rakudo pokes into them doesn't mean it's a supported API. | ||
| pmichaud | I agree. | ||
| jonathan | It just means Rakudo pokes into them. | ||
| pmichaud | I agree. | ||
| chromatic | I haven't read anyone disagreeing with that here now. | 20:29 | |
| japhb | Is anyone disagreeing at this point? | ||
| mikehh | not at all | ||
| pmichaud | I'll agree with anything that means that we can get new features into Parrot without having to wait 6 months to do it. | ||
| whiteknight | That I am aware of, the only thing blocking the context_pmc3 branch from merging is the JIT failure | ||
| Coke | there are 4 items in the support policy that we have to worry about. this isn't one of them. | ||
| japhb | Well OK then. So the branch can land? (And any other branches holding on the same sort of non-API?) | 20:30 | |
| whiteknight | and I can't even really fix and test it, because I don't have JIT on my system | ||
| Coke | =item * bytecode changes (opcode or core PMC removals, renames) | ||
| =item * PARROT_API function changes | |||
| =item * PIR or PASM syntax changes | |||
| =item * API changes in the compiler tools | |||
| pmichaud | whiteknight: let me review the thread | ||
| whiteknight | pmichaud: please do | ||
| japhb | whiteknight, seriously, make --runcore=jit do --runcore=fast, and get on with our lives. That suggestion was not in jest. :-) | ||
| Coke | (with the possible caveat that any PARROT_API items that return or take a struct are, for now, "experimental") | ||
| pmichaud | lists.parrot.org/pipermail/parrot-d...02746.html | 20:31 | |
| chromatic | Right. Pointers returned from PARROT_API functions are *opaque*. | ||
| duk3leto | It seems that if we had a way of running a script on the codebase of a parrot-based HLL, which would complain loudly and bitterly about things that are in DEPRECATED.pod or which poke directly into internals, we would be in a nice position to warn people downstream of impending changes that brake their code | ||
| pmichaud | "Keep backward compatibility with the CONTEXT(interp) macro, by having it | ||
| return the data struct of the Context PMC. Introduce a new function | |||
| 'Parrot_pcc_get_current_context' that returns the PMC (it's a clearer | |||
| name anyway), and we'll deprecate the old macro for 2.0. ... | |||
| --- | |||
| I don't think this is possible. Perhaps I'm wrong. | |||
| whiteknight | japhb: I agree 100%. | ||
| Coke | kkkkkkkkkkkkkkkkkkkkkkkkkk1G:q! | 20:32 | |
| chromatic | It's incompatible with the 1.6 milestone of struct review. | ||
| pmichaud | the fact that bacek's patch is asking Rakudo to get rid of its uses of the CONTEXT(...) macro tells me that bacek hasn't been able to do it yet, and that the branch is blocking on more than just JIT | 20:33 | |
| It's clear to me that allison is asking backe to continue to support the API that was provided by the CONTEXT() macro. | 20:34 | ||
| *bacek | |||
| and that this should be done before the branch is merged. | |||
| moritz | same here | ||
| pmichaud | so we can all say "Parrot_context struct isn't part of the supported API", but this message appears to me to indicate otherwise. | 20:35 | |
| chromatic | That was my interpretation too. | ||
| pmichaud | I'll be happy to be proved wrong. | ||
| chromatic | Okay, hold on one moment then. | 20:36 | |
| Util | cotto: ping | 20:38 | |
| cotto | Util, pong | 20:40 | |
| chromatic | Okay. Now everyone can be mad at me. | 20:41 | |
| whiteknight | chromatic: I could never be mad at you! | ||
| (and why should we be?) | 20:42 | ||
| chromatic | r40913 | ||
| dalek | rrot: r40913 | chromatic++ | trunk/docs/project/support_policy.pod: [docs] Clarified Parrot components not subject to our deprecation policy. |
20:44 | |
| pmichaud | that doesn't make me at all angry. | ||
| whiteknight | chromatic: that commit makes me very happy with you | 20:45 | |
| pmichaud | I think it accurately codifies our majority expectations for how things work | ||
| (I include myself in the majority that agrees with that aspect of the deprecation policy) | |||
| duk3leto | chromatic++ for adding scary language to the support policy | ||
| jonathan | +1 | ||
| purl | 1 | ||
| Util | chromatic++ | ||
| chromatic | Now about that --runcore=fast idea.... | 20:46 | |
| japhb | chromatic++ | ||
| whiteknight | I would love to do that | ||
| keeps functionality the same as far as the user is concerned, improves performance, and brings "JIT" to all supported platforms | |||
| pmichaud | Now I await to see if r40913 has any hope of making context_pmc3 land quicker, or if we still end up having to support CONTEXT() | 20:47 | |
| whiteknight | I see no downside, besides the disappointment that a feature might not internally be implemented in a way that it's name suggests | ||
| chromatic | The only reason I can think of to keep the JIT around is to say "We have a JIT", which is a bad reason because it's mostly a lie. | ||
| whiteknight | It's definitely a lie. I've never had it | 20:48 | |
| Util | Coke: 174 minutes for Partcl's `make spectest`. Is this time roughly normal? | ||
| japhb | whiteknight, we can easily tell people in the release notes that --runcore=jit is now a (more intentional) lie, and we can tell them why -- because we don't want existing scripts and/or habits to break while we rewrite the JIT engine, which is true and happy-making. | 20:49 | |
| whiteknight | it's certainly a less disruptive change then having the PASM1 compiler throw an exception and do nothing else | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "just to make sure my position is clear" (29 lines) at nopaste.snit.ch/17770 | 20:50 | |
| japhb | "We're about to frob the guts so seriously we can't avoid breaking things if we still had --runcore=JIT run the old core, so we won't -- you'll just be happy and stable until we get to the Better Place." | ||
| whiteknight | After the runcore branch lands (ETA on that?) We should start a proof-of-concept branch to replace --runcore=jit with the fastcore | ||
| moritz | Util: are you also 'Util' on github? | 20:52 | |
| chromatic | Trivial after the runcore branch lands. | ||
| Util | moritz: Yes | 20:53 | |
| moritz | Util: would you like commit access to perl6-examples? you currently fork it, and I don't know how attentive the maintainers are | ||
| whiteknight | my point being that it's easier to argue for particular semantics when you have a patch in hand that implements them | ||
| Util | moritz: Yes, thanks. | 20:54 | |
| moritz | Util: done | ||
| chromatic | A benchmark that demonstrates that the fast core is faster than the JIT core wouldn't hurt either. | ||
| Util | Thanks! | ||
| pmichaud hugs moritz++ | |||
| whiteknight: how hard would it be to come up with a patch that removes the JIT core ? | 20:57 | ||
| whiteknight | pmichaud: in terms of changing --runcore=jit to use the fastcore instead, trivia | 20:58 | |
| pmichaud | oh wait, scratch that | ||
| whiteknight | trivial | ||
| pmichaud | yes, that's the patch I'm thinking of | ||
| if we changed --runcore=jit to use fastcore, would that resolve the remaining issue with the context_pmc3 branch? | |||
| whiteknight | in terms of actually removing the JIT system wholesale, it will be more "fun" and less "work" | ||
| japhb | chromatic, any benchmark that causes core switching when run with JIT and doesn't just devolve to native int and num manipulation should do. (Mind you, I'm still in the "broken == infinitely slow" camp on this one.) | ||
| whiteknight | pmichaud: yes it should | ||
| pmichaud | and it wouldn't introduce any other visible stability issues? | 20:59 | |
| (other than things might become much more stable, that is :) | |||
| japhb | I would volunteer to write said benchmark, but I'm valiantly trying to progress against @dayjob_deadlines at the moment,. | 21:00 | |
| whiteknight | that I am aware of, no | ||
| pmichaud | look, I have a good JIT versus non-JIT benchmark -- my desktop is currently running i386 | ||
| and I can certainly run a rakudo spectest both with and without jit | |||
| and rakudo spectest exercises a *lot* of Parrot | |||
| we can also time 'make test' | |||
| so, since I appear to be in an irascible(sp?) mood anyway, I propose we run the timings, and then jfdi with the switch from --runcore=jit to --runcore=fastcore | 21:01 | ||
|
21:01
MoC joined,
bacek joined
|
|||
| japhb | +1 | 21:02 | |
| purl | 1 | ||
| chromatic | Excellent. | ||
| whiteknight | agreed | ||
| duk3leto | pmichaud++ | ||
| whiteknight | land the runcore branch first, then the switch will be easy | ||
| pmichaud | if anyone complains, then we know it's time to see what we need to do to fix the JIT capability to work with the new features that are landing | ||
| chromatic | pmichaud, does the Rakudo spectest suite use the fakecutable or execute Parrot directly? | ||
| pmichaud | and at that point we can ask ourselves "is this really worth it?" | 21:03 | |
| chromatic: it currently uses the fakecutable, but it's an easy patch (env setting, I think) to get it to use Parrot instead | |||
| checking | |||
| export HARNESS_PERL="parrot_install/bin/parrot perl6.pbc"; make spectest # should work | 21:04 | ||
| testing | |||
| yes, it works. | |||
| oh, wait, it appears to still be using the fakecutable | |||
| chromatic | Patch forthcoming. | 21:05 | |
| pmichaud | oh, it's hardcoded in t/harness | ||
| nopaste | "chromatic" at 72.87.39.97 pasted "-t" (12 lines) at nopaste.snit.ch/17771 | 21:07 | |
| pmichaud | changing line 59 of t/harness seems to do it | ||
| whiteknight dreams of the day when we can generate a real executable from a functional JIT system | 21:08 | ||
| pmichaud | does --runcore=fastcore passed to Parrot suffice to select the core I want to use? | ||
| whiteknight | then we can forget about all this "fakecutable" nonsense | ||
| pmichaud: yes | |||
| pmichaud | okay. | ||
| let me set up some timings here locally and I'll report back | 21:09 | ||
| chromatic | whiteknight, any objections to bumping up initial PObj pool sizes by an order of magnitude? | ||
| whiteknight | I have objections to not doing it | 21:10 | |
| I suggest we pick a more sane number then X / sizeof(PMC), because we want pool sizes to be the same on x86 and x86_64 | |||
| but in the interim an increase of 10x should do it | |||
| chromatic | Let me give you a quick benchmark then. | ||
| whiteknight | I'm about to sign off and go home from work | 21:11 | |
| msg them to me? | |||
| purl | Sorry, I've never seen them before. | ||
| japhb | whiteknight, when you say pool sizes the same, | ||
| whiteknight | I mean number of PMCs | ||
| not size in bytes | |||
| japhb | do you mean same number of PMCs in pool? | ||
| ah yes, that's what I thought | |||
| whiteknight was too ambiguous | |||
| japhb | good $commute | ||
| whiteknight | later | 21:12 | |
| bacek | Good morning | 21:14 | |
| purl | Here I am, brain the size of a planet, and all they say is 'Good Morning' | ||
| darbelo | Tested the context_pmc3 branch on OpenBSD getting a segfault on t/pmc/context.t is this a known issue? | ||
| Heh. That was good timing. | |||
| bacek | darbelo: :) | ||
| pmichaud | is there an easy way to verify that I'm running Parrot with the jit core? | 21:15 | |
| (e.g., from PIR) | |||
| bacek | darbelo: it shouldn't fail... It's just creating new Context PMC... | ||
| pmichaud: "running core" isn't exposed into PIR afaik | 21:16 | ||
| pmichaud | not even in the interpreter object? | ||
| darbelo | Wait a sec, I just noticed something... Let me get back to you in a sec. | ||
| japhb | Hmmm, for some reason I thought it was exposed through interpinfo or something. Or maybe we just discussed that last year .... | ||
| duk3leto | pmichaud: sounds like there should be but isn't | 21:17 | |
| japhb | .macro_const INTERPINFO_CURRENT_RUNCORE 14 | ||
| There you go. | |||
| chromatic | Yep, it's in interpinfo. | ||
| mikehh | darbelo: it doesn't fail for - it passes no problemo | 21:19 | |
| there should be a me before the - | 21:21 | ||
| pmichaud | is there a list of the interpinfo runcore values somewhere? | ||
| I'm getting back a value of 0 | |||
| japhb wonders if the key exists but no one is home (meaning INTERPINFO_CURRENT_RUNCORE never gets set) | 21:22 | ||
| chromatic | 0 is the slow core. | 21:23 | |
| darbelo | I remember somebody saying here that string->strstart was TEH EVILZ! What should be used in it's place? 'cause evil or not, it's pretty damm convenient :) | ||
| pmichaud | okay, so 'parrot' defaults to the slow core even when jit is available? | ||
| chromatic | Yes. | ||
| pmichaud | 16 looks like the jitcore then | 21:24 | |
| and then, fwiw, Rakudo appears to segfault when run with the jitcore | |||
| (on my system) | |||
| japhb | \\o/ | ||
| pmichaud | so no chance of --runcore=jit being much improvement for Rakudo :0| | 21:25 | |
| japhb | ... which brings us back to "broken == infinitely slow" | 21:26 | |
| darbelo | Somebody should talk Coke into trying JIT on partcl, see how many segfaults it adds :) | ||
| moritz | broken = terminates very soon ;-) | ||
| pmichaud | no, it still takes a bit of time to terminate | ||
| japhb | moritz, heh | ||
| pmichaud | the fastcore finishes much quicker than it takes the jit core to terminate | 21:27 | |
| japhb | "We now finish the benchmark *much* sooner than before. Too bad that's because it dies partway in ...." | ||
| LOL | |||
| OK, I think that's pretty much conclusive evidence right there, pmichaud. | |||
| nopaste | "pmichaud" at 72.181.176.220 pasted "rakudo timings for fast, slow, and jit cores" (19 lines) at nopaste.snit.ch/17772 | 21:28 | |
| bacek | yak.... | 21:29 | |
| japhb | Interesting how little the fast runcore helps you there. | ||
| pmichaud | most of the cost is startup | ||
| jonathan | bwahaha... | ||
| chromatic | The more bytecode, the slower our "JIT" will run. | ||
| darbelo | The fast core *finishes* faster than the JIT *segfaults*. | 21:30 | |
| jonathan | 13 seconds extra just to generate a segfault :-) | ||
| darbelo | That is seriously broken. | ||
| jonathan | but...but...this is the jit that ran a micro-benchmark faster than gcc -O3! ;-) | ||
| japhb | darbelo, which is exactly what we've been trying to tell Allison at #ps today | 21:31 | |
| s/we've/we had/ | |||
| pmichaud | running Parrot's "make test" for comparison | ||
| darbelo | I wasn't paying attention to #ps today, just now started reading the logs. | ||
| japhb | darbelo, No worries ... I was just confirming. | 21:32 | |
| chromatic | I think that microbenchmark would run even faster now. | 21:33 | |
| ... but that's because of startup time improvements, not JIT improvements. | |||
| japhb | "Runs so fast it strips tiles off the space shuttle! (Wait, what? That's *bad*? Oh, crap.)" | 21:34 | |
| Must ... dial ... back ... fist ... of ... death .... | |||
| pmichaud | stripping tiles off the space shuttle is bad only for re-entry | 21:35 | |
| once it's landed, stripping tiles is a good thing :) | |||
| darbelo | Both points are irrelevant if the JIT explodes during take off :) | 21:36 | |
| dalek | kudo: ba10463 | last.of.the.careless.men@gmail.com++ | src/setting/Rat.pm: Move Rat.Str to new standard, add Rat.nude. |
21:38 | |
| japhb | Nude Rats? OKAY .... | 21:40 | |
| pmichaud | thankfully *that's* not the Perl 6 mascot :) | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "make test timings for fast, slow, and jit core" (15 lines) at nopaste.snit.ch/17773 | 21:41 | |
| pmichaud | that's not really as valid a test as rakudo spectests might be, though. | 21:42 | |
| because it's a bit biased against the jit | |||
| japhb | Interesting ... though I suspect that's a matter of Parrot tests overemphasizing native types. | ||
| moritz | how many tests are skipped in 'make testj'? more than in the other cores? | 21:43 | |
| pmichaud | well, jit should show better performance with loops and the like, and I suspect the Parrot test suite doesn't have many of those | ||
| chromatic | The slow core runs a lot more tests. | ||
| darbelo | bacek: I'm still getting the failure. | 21:44 | |
| bacek | darbelo: nopaste backtrace? | ||
| darbelo: (but Context PMC created very often... So I can't even imagine why it can fail...) | 21:45 | ||
| jrtayloriv | join #parrotsketch | ||
| oops -- sorry :) | |||
| pmichaud | oh, looks like 'make testj' doesn't run the NQP tests | ||
| bacek | jrtayloriv: too late :) | ||
| jrtayloriv | bacek, just wanted to see topic | ||
| mikehh | try testb | ||
| darbelo | nopaste? | 21:46 | |
| purl | i guess nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ or paste or gtfo | ||
| bacek | darbelo: nopaste.snit.ch/parrot will save you few milliseconds :) | 21:47 | |
| nopaste | "darbelo" at 200.49.154.172 pasted "backtrace for bace++." (83 lines) at nopaste.snit.ch/17774 | ||
| darbelo | bacek++ | ||
| bace-- | 21:48 | ||
| there, now that karma is where it belongs. | |||
| mikehh | just look what posting about g++ does for g's karma | 21:49 | |
| moritz | g-- | ||
| darbelo | (g++)-- | 21:50 | |
| mikehh | karma g | 21:51 | |
| purl | g has karma of 620 | ||
| darbelo | mikehh: you and NotFound are to blame for most of that :) | 21:52 | |
|
21:52
joeri left
|
|||
| mikehh | for someone not here he/she/it is doing very well | 21:52 | |
| g | I have lots of karma. WHEE! | 21:53 | |
| all your karma is belong to me. | |||
| mikehh | see if you took it with you :-} | 21:54 | |
| bacek | darbelo: yay! Good catch for Context. | ||
| treed | So, was it ever determined whether the get_pmc_keyed thing was StringIterator breaking again? | 21:55 | |
| bacek | darbelo++ # using some strange architecture | ||
| dalek | rrot: r40914 | bacek++ | branches/context_pmc3 (2 files): [cage] Don't mark non-initialised Context. darbelo++ |
||
| darbelo | Catch what? I have no clue why that pointer is NULL. | ||
| bacek | treed: Yes. After merge keys_revamp branch | ||
| darbelo: I have :) | 21:56 | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "make test timings for fast, slow, and jit core (revised)" (24 lines) at nopaste.snit.ch/17775 | ||
| treed | bacek: Is that actually breakage, or was something deprecated out? | ||
| bacek | pmichaud: looks suspicious. | 21:57 | |
| japhb | fast and slow are within .5% of the same? That sounds swamped by startup time or so. | ||
| pmichaud | agreed | ||
| bacek | treed: something that wasn't covered in test suite. So, actual breakage. | ||
| treed | Ah. Is there an issue assigned? | ||
| chromatic | The difference between fast and slow is that slow does bounds checking of the program counter. That's about it. | ||
| treed | (Or is the fix expected soon/already in?) | ||
| bacek | treed: it should be fixed already. | ||
| treed | k | ||
| treed is pulling down parrot svn now | 21:58 | ||
| particle | you can switch from slow core to trace core, can you do that from fast core? | ||
| japhb | chromatic, I thought "fast" also picked the fastest variant of switch, cg, cgp, etc.? | ||
| Or is that out of date? | |||
| bacek | treed: if it still broken - create ticket and assign to me. I'll fix it tonight. | 21:59 | |
| treed | bacek: k | ||
| chromatic | I don't believe it does. | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "NQP make test timings for fast, slow, and jit core" (24 lines) at nopaste.snit.ch/17776 | 22:00 | |
| pmichaud | anyway, take those for whatever they're worth. It's a bit disappointing that we can't do a similar test with Rakudo. (sigh) | 22:01 | |
| japhb | pmichaud, that's one of the things that drives me mad about the current JIT -- for simple to medium stuff, it can be coerced to work. Through some real meat and it, and *boom*. | 22:02 | |
| But then you can't make a minimized test to demonstrate the problem .... | |||
| er "Throw some" | |||
| darbelo | bacek++ # context_pmc3 shows "All tests successful" on OpenBSD amd64. | 22:08 | |
| treed | bacek: Yeah, still borked. I'll make a ticket. | ||
| mikehh | bacek: cardinal has three failed to compile tests with error - get_pmc_keyed() not implemented in class 'String' | 22:09 | |
| treed | mikehh: Yeah, that's what I was just talking about. | ||
| There's also a warning printed during tests about double free. | |||
| Which isn't related (AFAIK), but might be worth looking into. | |||
| bacek | String or StringIterator? | ||
| treed | It's String, but as far as I know, we don't even call get_pmc_keyed on String ourselves. | 22:10 | |
| The last time I got that error message, I tracked it down to StringIterator. | |||
| mikehh | bacek: that's in trunk - with the context_pmc3 branch there are a loads of failures in make test | ||
| bacek | mikehh: it's not good... | 22:11 | |
|
22:12
whoppix joined
|
|||
| treed | Actually, this doesn't even look like it's anything in Cardinal. | 22:13 | |
| The failure comes after a long list of parrot-compiler stuff. | |||
| get_pmc_keyed() not implemented in class 'String' | |||
| current instr.: 'parrot;POST;Compiler;pir_children' pc 9678 (src/POST/Compiler.pir:81) | |||
| The only cardinal thing in the whole traceback is the top-level main. | 22:14 | ||
| Which instantiates an HLL Compiler and uses it. | |||
| All three failures have that same traceback. | 22:15 | ||
| mikehh | bacek: it builds using home/mhh/context_pmc3/parrot and the tries to run the tests with /nome/mhh/parrot/parrot | ||
| bacek | mikehh: ah. it explains why it fais | 22:17 | |
| fails | |||
| nopaste | "bacek" at 66.215.91.229 pasted "Backtrace" (17 lines) at nopaste.snit.ch/17777 | ||
| treed | er | ||
| darbelo | mikehh: what happens if you "make realclean" both trees and then only 'perl Configure.pl' the one you want to test? | ||
| treed | I misunderstood what -n means, I guess. | ||
| That was me. | |||
| mikehh | bacek: only just noticed now | 22:18 | |
| bacek | Hey. I didn't paste it! | ||
| treed | I know, I did. | ||
| Sorry. | |||
| I thought that was the "pasted for" option for some reason. | |||
|
22:18
Whiteknight joined
|
|||
| mikehh | I always do a make realclean, git pull, perl Configure.pl --parrot-config={{parrot_dir whatever}}/parrot_config, make, make test for cardinal | 22:19 | |
| treed | make realclean more or may not actually capture everything | 22:20 | |
| s/more/may/ | |||
| treed really should just remove the Makefile build system. | |||
| mikehh | using respectively ../g.parrot, ../parrot or ../config_pmc3 | 22:21 | |
| Whiteknight | treed: How is cardinal doing today? Still experiencing failures? | ||
| darbelo | mikehh: That realcleans Cardinal, I meant "realclean both parrot chechouts" , so that there's no 'parrot' executable to confuse cardinal. | 22:22 | |
| treed | Whiteknight: The trace just posted under bacek's name is actually from me. | ||
| mikehh | yeah - it seems to retain the make test run directory | ||
| treed | There are three such failures in the test suite. | ||
| And one instance of parrot(6895) malloc: *** error for object 0xe27ba0: double free | 22:23 | ||
| *** set a breakpoint in malloc_error_break to debug | |||
| That doesn't actually cause bailout. | |||
| Or any failure in Cardinal's test suite. | |||
| Whiteknight | hmmm, weird | ||
| treed | But the get_pmc_keyed failure causes the compiler itself to fail. | ||
| So I can't actually run those three test files. | |||
| darbelo | Whiteknight: Was it you that denounced the evil that string->strstart has brough upon this world? | 22:24 | |
| mikehh | I have about 7 or 8 different versions of parrot (+ whatever I sudo make install-dev) on my system at any one time | ||
| Whiteknight | darbelo: probably not originally, but I certainly agreed | 22:25 | |
| treed | mikehh: The appropriate rake version of that is: rake clobber, git pull, PARROT_CONFIG={{parrot_dir whatever}}/parrot_config rake cardinal, rake test:all | ||
| darbelo | I looked arround and it's used all over the place. Is there any 'standard replacement' for it? | 22:26 | |
|
22:26
whoppix joined
|
|||
| mikehh | treed - I'll make a note of it | 22:26 | |
| treed | k | ||
| I'll probably yank the Makefile system soon. | |||
| bacek | treed: fixed. dcommiting | 22:27 | |
| r40915 | |||
| treed | What's fixed? | ||
| purl | fixed is probably handy | ||
| dalek | rrot: r40915 | bacek++ | trunk (2 files): [cage][t] Add String.get_pmc_keyed and tests for keyed access to string. |
||
| treed | Ah. | 22:28 | |
| treed repulls. | |||
| darbelo | I'm looking for something to do now GSoC is over and removing some of the struct-poking looked like a nice incremental task to take on while I wait for my ideas on big numbers to solidify a bit more. | 22:30 | |
| bacek | treed: any luck? | 22:38 | |
| mikehh | treed: it's still picking up the wrong parrot for me - I'll look into it later - let me try bacek's revision and then I must sleep | 22:39 | |
| darbelo | Whiteknight: Is it reasonable to just use Parrot_str_to_cstring() instead of strstart? Or would the allocation and freeing introduce an unwanted overhead? | ||
| treed | bacek: Running test:all now. | ||
| mikehh: How are you invoking the rakefile? | 22:40 | ||
| bacek | treed: ok | ||
| treed | bacek: It takes about 8 minutes to run it to completion on my laptop. | ||
| Whiteknight | darbelo: I don't know | ||
| bacek | darbelo: why do you need C-string? | ||
| treed | bacek: Still failing, looks like. | 22:41 | |
| darbelo | I want to kill strstart with fire. But it's used all over the place. | ||
| jonathan | darbelo: imo, using strstart is poking into string guts, which I suspect is very wrong. | ||
| darbelo | jonathan: That's why I want to kill it :) | 22:42 | |
|
22:42
rg1 joined
|
|||
| jonathan | Ah, good...when I read the question at first I thought you were debating which to use for some new code. ;-) | 22:42 | |
| Any cleanup we can do to avoid looking at ->strstart outside of the strings subsystem is surely progress though. | 22:43 | ||
| darbelo | jonathan: In some places, like interfaces to external libraries, cstrings are pretty much mandatory. I think strstart might have been introduced as an (premature) optimization for those uses. | 22:45 | |
| jonathan | darbelo: It's surely the wrong way to get at a c string though. | 22:46 | |
| For one, you don't know the encoding... | |||
| mikehh | treed: rake cardinal | 22:47 | |
| darbelo | All other ways to get at a cstring have an (posibly unwanted) overhead, and the cannonical one (Parrot_str_to_cstring) involves memmory allocation/freeing. | 22:48 | |
| treed | PARROT_CONFIG=/path/to/my/parrot_config rake cardinal | ||
| or you can export it beforehand | |||
| rake reads that environment variable | |||
| if it's not set, it just uses the one from $PATH | |||
| (This won't actually accur if build.yaml already exists, since that's the cache for that info.) | 22:49 | ||
| occur | |||
| You could also manage build.yaml yourself with pointers to the various parrot_configs as you want or whatever. | |||
| You can tell if it picked up the env variable by the first line, which will say either "Provided parrot_config reports..." or "Detected parrot_config reports..." | 22:51 | ||
|
22:55
whoppix joined
|
|||
| mikehh | I am starting to make stupid mistakes - I look at it after I sleep some - bbl | 22:55 | |
| treed | k | 22:56 | |
| darbelo | bacek: ping | ||
| bacek | darbelo: pong | 22:57 | |
| darbelo | Would the use of auto_attrs benefit the Context PMC? | 22:58 | |
| bacek | darbelo: yes, absolutely. | ||
| But after merge in next branches | |||
| darbelo | Ok, I was just looking arround and it made me curious. | 22:59 | |
| Oh, wait. You branched from trunk before auto_attrs landed, right? | 23:00 | ||
| bacek | you can help with finishing Continuation. | ||
| darbelo | Continuation? Where? | ||
| purl | continuation is builded inside the opcode, there is no way to pass a differente location. | ||
| bacek | No, I branched after. But it's too much changes for single branch. | ||
| darbelo: jrtayloriv working on Continuations | 23:01 | ||
| darbelo | Ah, sorry I thought you meant on the same branch. I'll bother him when he's arround :) | 23:02 | |
| jrtayloriv | bacek, I'm passing all tests at this point. The next thing I was going to start working on, after the current patches are merged, is to see if I can move new_ret_continuation logic out of sub.c and into init() vtable for RetContinuation PMC | 23:03 | |
| But I'm pretty much for now as far as Continuation PMC itself is concerned (I think) | 23:04 | ||
| bacek | jrtayloriv: I'm not across this branch. But looks like darbelo can help with it :) | ||
| jrtayloriv | pretty much *done*, that is | ||
| bacek | jrtayloriv: ok. | 23:06 | |
| jrtayloriv | bacek, I'm passing all tests on context_pm3 (r40915) on Linux x86_64 btw ;) | ||
| bacek | jrtayloriv: it's... expected :) | 23:07 | |
| jrtayloriv | cool -- just didn't know if you had any tests for it lately. | ||
| darbelo | bacek: If all tests pass, what's holding back the merge? | 23:09 | |
| bacek | mikehh++ tested it on x86_64, darbelo++ on openbsd. | 23:10 | |
| darbelo: JIT | |||
|
23:11
beta joined
|
|||
| darbelo | Oh, *that* is what triggered the JIT-bashing today. | 23:11 | |
| bacek | :) | ||
| darbelo wants to see a kill_JIT_with_fire branch. | |||
| treed | bacek: Yeah, still failing on the same three files, same backtrace. | ||
|
23:11
kid51 joined
|
|||
| bacek | treed: yak... | 23:12 | |
| bacek wants to see make_sane_jit branch instead... | |||
| jrtayloriv | bacek, why is the conditional in mark_context_start() in sub.c? Why do you need to check if it is 0? Why not just do context_gc_mark = 1, and skip the check? | 23:13 | |
| bacek | jrtayloriv: which line? which branch? | 23:14 | |
| jrtayloriv | context_pmc3 line 43 | ||
| oh nm -- I see | |||
| darbelo | bacek: make_sane_jit depends on kill_insane_jit ;) | ||
| bacek | jrtayloriv: leftover. Many of this functions can be removed now | ||
| treed: it's strange. I've implemented exactly this method in String... | 23:17 | ||
| treed | Huh. | ||
| Maybe I didn't get your revision with that svn up? | 23:18 | ||
| Whiteknight | jrtayloriv | ||
| purl | jrtayloriv is using r40849 | ||
| Whiteknight | has anybody committed those patches of yours? | ||
| japhb | OK, so where are we now? It sounds like we need to merge the runcore/profiling branch, then twiddle --runcore=jit to be --runcore=fast, then merge context_pmc3? | ||
| treed | Huh. | 23:19 | |
| treed just got an ssh error trying to svn up. | |||
| jrtayloriv | Whiteknight, nope, don't think so | ||
| Whiteknight | okay, I'm on it now | ||
| jrtayloriv | Whiteknight, thanks :) | ||
| Whiteknight | so that's the latest two patches need a'committin'? | 23:20 | |
| bacek | japhb: +1 for this sequence. | ||
|
23:21
donaldh joined
|
|||
| bacek | bacek ~~ $dayjob | 23:21 | |
|
23:23
whoppix joined
|
|||
| jrtayloriv | Whiteknight, yes | 23:23 | |
| Whiteknight | Okay, testing the first one now | ||
| dalek | rrot: r40916 | whiteknight++ | branches/kill_parrot_cont (2 files): [kill_parrot_cont] remove the new_continuation and new_ret_continuation function. Patch from jrtayloriv++ |
23:26 | |
| Whiteknight | ...and testing the second | 23:27 | |
| treed | purl: msg bacek The error is now: Method 'lineof' not found for invocant of class 'String' | 23:31 | |
| purl | Message for bacek stored. | ||
| dalek | rrot: r40917 | whiteknight++ | branches/kill_parrot_cont/src/pmc/continuation.pmc: [kill_parrot_cont] fix a GC bug that was causing a test failure. Courtesy jrtayloriv++ |
23:33 | |
| chromatic | Whiteknight, doesn't Parrot_custom_mark_destroy_SETALL also the active destroy flag? | 23:34 | |
| Whiteknight | chromatic: I have no idea. Seems like it should, but probably doesn't | 23:35 | |
| I usually see the two set together | 23:36 | ||
| (I'm also not entirely clear what the difference is) | |||
| jrtayloriv | chromatic, IIRC one of them says " I have a custom mark()" the other says I have custom destroy() | ||
| chromatic | See include/parrot/pobj.h:358 | ||
| jrtayloriv | I honestly don't remember which is which. | ||
| chromatic, oh I see -- I must have read about custom_mark and active_destroy, and accidentally put custom_mark_destroy, which does both. | 23:38 | ||
| chromatic, and is there any reason not to rename active_destroy to custom_destroy, so that the connection between it and custom_mark is obvious? | 23:39 | ||
| chromatic | I like the idea. | 23:40 | |
| Whiteknight | the active_destroy flag can probably disappear completely | 23:41 | |
| the auto_attrs work has left it mostly useless | |||
| darbelo | Whiteknight: Not all PMCs have auto_attrs set, and some still need custom destruction. | 23:42 | |
| chromatic | But it can be rarer. | 23:43 | |
| Whiteknight | darbelo: VTABLE_destroy() is called on all PMCs now, those without custom destruction just call the empty Default PMC version | ||
| doesn't matter if it has auto_attrs or not | |||
| darbelo | Wait. The flag is ignored? | ||
| chromatic | I'm not a fan of that. | 23:44 | |
| Whiteknight | that I am aware of, yes | 23:45 | |
| There are ways we could avoid unnecessary VTABLE calls without using the flag | 23:46 | ||
| if we want to avoid them | |||
| darbelo | Whiteknight: Parrot_pmc_destroy only calls VTABLE_destroy if PObj_active_destroy_TEST(pmc) is true. | ||
| Hell, if the VTABLE starts getting called unconditionally then decnum-dynpmcs will start segfaulting again. | 23:47 | ||
| Whiteknight | oh, does it? I thought that had changed | 23:48 | |
| maybe | |||
| NotFound unchanged it | |||
| darbelo | Also, not calling VTABLE_destroy() is the only available workarround for TT#956 that I can think of. | 23:51 | |
| chromatic | I think the right answer to that is don't use a custom destroy there. | 23:52 | |
| Or don't make them a singleton. | |||
| darbelo | Well, I need it to be a singgleton, and not using a custom destroy "leaks" the memory. | 23:56 | |
| chromatic | That's not how singletons work. | 23:57 | |
| Whiteknight | The issue is order-of-destruction. The GC finalizer should be smart enough to understand the dependency between Library PMCs and the dynpmcs they contain | 23:58 | |
| chromatic | The right fix is probably to perform one final GC run, collect all PMCs with custom destruction, then order that graph according to heuristics we know in advance. | 23:59 | |
| Whiteknight | At the very least, in the final sweep run, it should not free Library PMCs, but save them for another step to free them together at the end | ||
| darbelo | If singletons live "forever" then the leak isn't one. But the 'immortatlity' of the singleton is not documented as a feature anywhere, so I'd rather not depend on it. | ||