|
www.parrotcode.org/ Set by moderator on 12 July 2009. |
|||
|
00:32
lordk joined
|
|||
| lordk | Hello? | 00:33 | |
| purl | Raise your hand in the back if you can't hear me. | ||
| lordk | i cant here yous | ||
| Ello dare | |||
| *there | |||
| do you know if any parrot devs are here | |||
|
00:33
brooksbp joined
|
|||
| lordk | beacuse i cant find a graphics libary | 00:34 | |
| and that annoys me | |||
| badly | |||
| purl i cant here you if your usein a audio chat system | |||
| purl | lordk: i'm not following you... | ||
| lordk | oh | ||
| well i need a libary to write stuff to the screenbuffer | 00:35 | ||
| you know | |||
| like images | |||
| and text | |||
| and fractias | |||
| like the print command | |||
| except for png | |||
| ... | 00:36 | ||
| soo tiering | |||
| bacek_at_work | lordk: purl is bot. Sometime very annoying :) | ||
| purl: good girl | 00:37 | ||
| purl | :) | ||
| lordk | ah | ||
| dam | |||
| thats annoyin | |||
| but do you know of the elsuive lib im serchin for | |||
| because trying to rewrite a dead dialect of basic is hard when its for graphics | |||
| purl bad dog | 00:38 | ||
| purl | lordk: excuse me? | ||
| lordk | purl die or die | ||
| purl | lordk: i'm not following you... | ||
| lordk | purl log off | ||
| purl | lordk: sorry... | ||
| lordk | purl DO IT | ||
| purl | lordk: i'm not following you... | ||
| lordk | .. | 00:39 | |
| this place is dead... | |||
| brbrooks | seen Whiteknight | 00:40 | |
| purl | Whiteknight was last seen on #parrot 1 hours, 43 minutes and 20 seconds ago, saying: it goes down pretty often unfortunately | ||
| brbrooks | hah | 00:41 | |
| jdv79 | what is "it"? | 00:43 | |
| purl | "it" is almost never used as a noun, so who cares what its plural is? | ||
| Coke | purl, forget it | 00:46 | |
| purl | Coke: I forgot it | ||
|
00:54
chromatic joined
|
|||
| dalek | rtcl: r533 | coke++ | wiki/SpecTestStatus.wiki: Update SKIP notations, including some new regressions. |
00:58 | |
|
01:01
hiroyuki_y joined
01:08
patspam joined
01:15
Whiteknight joined
|
|||
| brbrooks | Whiteknight: any update since the gc_inf patch yesterday? | 01:17 | |
| Whiteknight | brbrooks: It's committed to trunk now | 01:19 | |
| so, I guess that qualifies as "news" | |||
| and I fixed the bug I was running into last night | |||
|
01:21
patspam joined
|
|||
| brbrooks | What's with the headerizer? Does it just automatically create function defs? and the ASSERT_ARGS macros? | 01:26 | |
|
01:40
kid51 joined
|
|||
| dalek | rrot: r40040 | jkeenan++ | trunk/tools/dev/install_files.pl: Small regex correction. |
01:43 | |
|
01:46
szabgab joined
|
|||
| dalek | rrot: r40041 | jkeenan++ | branches/io_cleanups/src/pmc/handle.pmc: Conform to coding standards: c_parens. |
01:59 | |
| rrot: r40042 | jkeenan++ | branches/io_cleanups/src/pmc/handle.pmc: Improve some POD formatting. |
02:06 | ||
| rrot: r40043 | jkeenan++ | branches/io_cleanups/src/io/unix.c: Provide minimal documentation for one function so that file conforms to coding standard: c_function_docs. |
02:13 | ||
| kid51 | Infinoid: ping | 02:14 | |
| msg Infinoid Did some codingstd cleanup in io_cleanups branch, please 'svn up'. src/io/socket_unix.c and src/io/socket_win32.c fail the c_indent test (preprocessor) -- but that's as much a deficiency of the test as of the code. | 02:16 | ||
| purl | Message for infinoid stored. | ||
| Infinoid | thanks | 02:19 | |
|
02:42
janus joined
02:53
eternaleye joined,
Andy joined
|
|||
| dalek | cnum-dynpmcs: r107 | darbelo++ | trunk/ (8 files): Some changes to the testing infrastructure. Change all #! lines to something a bit more useful. Change the include path for the library. If you have an installed parrot available on your $PATH variable, then you're all set up for make test. |
03:14 | |
| purl | dalek: that doesn't look right | ||
| purl | dalek: that doesn't look right | ||
| cotto | < purl-- > | 03:20 | |
| botsnack | |||
| purl | thanks cotto :) | ||
| cotto feels sneaky | |||
| not that it's hard to trick purl or anything | |||
| darbelo | cotto, ping | 03:23 | |
| cotto | darbelo, pong | 03:28 | |
| cotto is learning himself a Haskell | |||
| darbelo | I just commited some changes to the tests and the way they run. If you get the time try out make test and msg (or nopaste) me the results. | 03:30 | |
| cotto | The nice thing about your project is that make realclean && perl Configure.pl && make takes so little time | 03:31 | |
| darbelo | If I did this right all you need to test (or build) are "parrot" and "parrot_config" executables on your $PATH. | 03:32 | |
| cotto | The tests are failing pretty epically. Let me check if it's possibly my fault. | ||
| darbelo | We're still failing 176/3689, I'll star TODO-ing them once I'm sure they're library issues and not my fault | 03:33 | |
| nopaste | "dabelo" at 190.3.141.124 pasted "This is actually the closest we've come to succsess." (19 lines) at nopaste.snit.ch/17236 | 03:35 | |
| cotto | I'm seeing 72 failures. | ||
| darbelo | I have 72 failures just on subtract.t over here. | 03:36 | |
| cotto | Failed 72/647 tests, 88.87% okay | ||
| darbelo | Hmm. That's what it prints after it finishes a file. You should get something similar to my nopaste after that. | 03:38 | |
| cotto | I seem to be running a lot fewer tests than you. | ||
| darbelo, you're right | |||
| Failed 4/6 test scripts. 176/3689 subtests failed. | |||
| looks good | 03:39 | ||
| darbelo | Now I just have to manually verify and TODO 176 tests. Lucky me! | 03:40 | |
| cotto | Yay! | ||
| darbelo | Oh, and while you are still here. I'm going to start writing some basic user-level docs. Do you think the google code wiki is a good place to put them? | 03:43 | |
| cotto | Personally I'd stick them in with the source but the wiki works too. | 03:44 | |
| darbelo | The google code wiki is also accessible from svn, look at code.google.com/p/partcl/source/browse/#svn/wiki | 03:48 | |
| cotto | It's your call. I'm happy as long as the docs exist and are reasonably up-to-date. | 03:51 | |
| Also, thanks for being responsive to my msg. The test changes should make life better for users. | 03:53 | ||
| darbelo++ | |||
| What are you thinking about a PCT-based test suite? | 03:54 | ||
| darbelo | I'm still not sure wether I want to convert decTest files to PIR or a decTest interpreter. I wake up wanting a different one every week. | 03:56 | |
|
03:58
cottoo joined
|
|||
| darbelo | Right now I want to translate to pir and have a bunch of generated .t files in the repo. | 04:00 | |
| cotto | irclogs | 04:02 | |
| irclogs? | |||
| darbelo realizes that it's been Monday for and hour on his timezone. | |||
| purl | it has been said that irclogs is irclog.perlgeek.de/parrot/today or see also: infrared clogs | ||
| cotto | It's your call how to do it. An interpreter would mean fewer troubles with PCT (since that's closer to what it's been designed for). | 04:05 | |
| Actaully, there's no compelling reason I can think of to have a test->pir converter. If the user's running make test, he's already got a working Parrot install. | 04:06 | ||
| but if it's 0100 in your corner of the world, you should probably wait for sleep to make the decision. | |||
| darbelo | Having an interpreter means users have to build the interpreter just to test the PMCs, with the decTest->PIR converter they get the generated file and just run them. | 04:08 | |
| I think I'll go to sleep and see what I wake up wanting this week :) | 04:11 | ||
| cotto | The test suite is already pretty big. I don't think the extra time will be much of a burden. | ||
| do that | |||
| good night | 04:12 | ||
| darbelo | Unrelated thought: has tewk (he was the other GSoCer, right?) resurfaced? Midterm evaluations close this week. | ||
| cotto | I know. I haven't heard anything about his project. I'm not optimistic. | ||
| darbelo | Ouch. | 04:14 | |
| cotto | It'd be a pity because he's obviously capable. | ||
| I guess it'll make a good #ps question. | 04:17 | ||
|
04:17
Zak joined
|
|||
| dalek | rdinal: 430ad39 | (Ted Reed)++ | src/classes/Array.pir: Fix Array.uniq to use a hash. |
04:45 | |
| rdinal: f022fb8 | (Ted Reed)++ | src/classes/Array.pir: Add the ability to pass a block to uniq to munge the items before matching. Apparently this is a feature only otherwise found in Ruby SVN. Ah, well. |
06:08 | ||
|
06:12
uniejo joined
06:34
iblechbot joined
06:54
mokurai left
07:06
jan joined
07:21
patspam joined
08:09
barney joined
08:36
janus joined
09:10
Eevee joined
|
|||
| mikehh | All tests PASS (pre/post config, smolder, fulltest) r40043 - Ubuntu 9.04 amd64 | 09:19 | |
|
09:31
donaldh joined
09:38
bacek joined
09:41
mikehh joined
09:50
Eevee joined
|
|||
| bacek | o hai | 10:02 | |
| dalek | rrot: r40044 | bacek++ | branches/ops_pct/src/pmc/fixedstringarray.pmc: [pmc] Implement FSA.get_number. |
10:03 | |
| mikehh | hi bacek | 10:04 | |
| bacek | hi mikehh | 10:05 | |
| purl | somebody said hi mikehh was still getting some weird results on Kubuntu Intrepid Amd64 - TT#412 | ||
| bacek | purl: forget mikehh | ||
| purl | bacek: I forgot mikehh | ||
| mikehh | :-} | ||
| Infinoid | forget hi mikehh | 10:07 | |
| purl | Infinoid: I forgot hi mikehh | ||
| Infinoid | hi mikehh | ||
| :) | |||
| mikehh | hi Infinoid | 10:08 | |
|
10:10
masak joined
10:31
Khisanth joined
11:08
TiMBuS joined
11:09
gaz joined
11:20
donaldh joined
11:22
cognominal joined
|
|||
| dalek | rrot: r40045 | fperrad++ | trunk/config/gen/makefiles (2 files): [build] files generated by Configure.pl must be removed only by target 'realclean' |
11:26 | |
|
11:33
AndyA joined
11:37
skids joined
|
|||
| dalek | rrot: r40046 | bacek++ | branches/ops_pct/compilers/nqp (2 files): [nqp] Fix quoting of multi-words. Add more tests |
11:43 | |
| rrot: r40047 | bacek++ | branches/ops_pct (2 files): [opsc] Split opsc.pir into 2 parts for simplify testing. |
|||
| rrot: r40048 | bacek++ | branches/ops_pct/compilers/opsc (2 files): [opsc][t] Add test for future ops files parsing. |
|||
|
11:46
kid51 joined
12:03
Whiteknight joined
|
|||
| Whiteknight | good morning #parrot | 12:11 | |
| kid51 | good morning whiteknight | 12:13 | |
| dalek | rrot: r40049 | bacek++ | branches/ops_pct/compilers/opsc/ops/oplib.pm: [opsc] Remove redundant call to parse_ops_file. |
12:14 | |
| bacek | good morning Whiteknight, kid51 | ||
| Whiteknight | good morning, bacek and kid51 | ||
| bacek | Bah! "good mor<tab>" expands to "good moritz". Bad sign... :) | 12:15 | |
| dalek | rrot: r40050 | bacek++ | branches/ops_pct/compilers/opsc/builtins.pir: [opsc] Add slurp to builtins |
12:17 | |
| rrot: r40051 | bacek++ | branches/ops_pct/compilers/opsc (2 files): [opsc] Initial implementation of parse_ops_file |
|||
| bacek | msg cotto Look! trac.parrot.org/parrot/browser/bra...arse_ops.t It's beautiful :) | 12:24 | |
| purl | Message for cotto stored. | ||
|
12:31
HG` joined
12:48
Andy joined
|
|||
| dalek | rtcl: r534 | coke++ | trunk/docs/spectest- (2 files): Doc latest spectest run - several test file regressions and a slowdown. |
13:03 | |
| moderator | www.parrot.org/ | 292 RTs left | Next release: 2009-07-21 | 13:10 | |
| dalek | rrot: r40052 | bacek++ | branches/ops_pct/compilers/nqp/src/Grammar/Actions.pir: [nqp] Implement regex quoting. |
13:18 | |
| rrot: r40053 | bacek++ | branches/ops_pct/compilers/opsc/builtins.pir: [opsc] Borrow old PIR based "split" from Rakudo. |
|||
| rrot: r40054 | bacek++ | branches/ops_pct/compilers/opsc (2 files): [opsc] Borrow code from Ops2pm for parsing ops.num and ops.skip files |
|||
| rrot: r40055 | bacek++ | branches/ops_pct/compilers/opsc (2 files): [opsc] Implement parsing of skip file |
13:36 | ||
|
13:41
MoC joined
13:49
Andy joined
|
|||
| dalek | rrot: r40056 | bacek++ | branches/ops_pct/compilers/opsc/ops/oplib.pm: [opsc][cage] Remove commented-out code. |
13:53 | |
|
13:56
PacoLinux joined
|
|||
| Coke | (anyone who has fixed a memory leak)++ | 13:58 | |
| bacek | Coke: which one? | 13:59 | |
| Coke | I don't know. | ||
| bacek | Anyway. It wasn't me. I spent time trying to keep memory from angry GC. | 14:00 | |
| Coke | But I was just able to run a tcl spec test that previously leaked. | ||
| (to death) | |||
| dalek | rrot: r40057 | bacek++ | branches/ops_pct/compilers/opsc (2 files): [opsc] Add hash() to builtins. Made OpLib.BUILD more perlsish |
||
| bacek | Coke: btw, #776 can have some good progress. A lot of GC related stuff was fixed recently. | 14:04 | |
| Coke | bacek: 776 isn't GC related is it? | 14:06 | |
| bacek | "segfault in Parrot_str_equal..." looks like closely related to GC. | 14:07 | |
| But I can be wrong. | |||
| Very wrong. | |||
| As usual. | |||
| *sigh* | |||
| bacek start crying and moving to bed. | 14:08 | ||
| Coke | I can double check it later. | ||
| bacek | Sleep time. It's tomorrow already | ||
| Coke | ~~ | ||
| bacek | msg cotto Jump on ops_pct! It's waiting for some love :) | 14:10 | |
| g'night Coke | |||
| purl | Message for cotto stored. | ||
|
14:14
skids joined
|
|||
| Coke | is there some way I can tell the GC to show me where everything is rooted? | 14:22 | |
| something in tcl is holding onto PMCs too long, I think. | 14:23 | ||
|
14:23
iblechbot joined
|
|||
| Whiteknight | Coke: not at the moment, no | 14:24 | |
| although some sort of visualization plugin might be very cool to have | |||
| Coke | Whiteknight: in the meantime, feel free to track down these segfaults for me. :| | 14:25 | |
| Whiteknight | what segfaults? | ||
| purl | No whammies! | ||
| Coke | partcl's dict.test and expr.test spectests. | 14:26 | |
| they segfault after 5 or 10 minutes without completing. | |||
| Whiteknight | urg | 14:27 | |
| Coke | rerunning expr.test under gdb now, will check back in 20m. :| | ||
|
14:35
Theory joined
14:47
mokurai joined
|
|||
| Coke | if anyone can suggest more information to extract for TT #831, I'd appreciate it. | 15:09 | |
| dalek | TT #831 created by coke++: segfault in clone_key_arg | ||
|
15:20
donaldh joined
|
|||
| Coke | Whiteknight: there, a segfault in *malloc. =-) | 15:39 | |
| Whiteknight | w00t | 15:40 | |
| so that means the heap is getting corrupted somewhere | |||
| dalek | TT #832 created by coke++: segfault in _int_malloc | 15:41 | |
| Coke | I still have that gdb session open, if I can get anything from it, let me know. | ||
| Whiteknight | nothing that I can think of right now | 15:56 | |
|
16:04
Psyche^ joined
|
|||
| mj41 | Whiteknight: Another odd result on my 64bit Linux machine. t/op/gc.t test 4 start failing in r39993 ... tt.ro.vutbr.cz/report/pr-Parrot/do?...un-5982=on | 16:21 | |
| Whiteknight | mj41: that's in trunk right now with the MS collector activated? | 16:22 | |
| pmichaud | good morning, #parrot | ||
| Whiteknight | good morning pmichaud | 16:23 | |
| dalek | kudo: 03bc9da | pmichaud++ | docs/spectest-progress.csv: spectest-progress.csv update: 415 files, 11796 passing, 0 failing |
16:31 | |
| pmichaud | Memo to all of the gc bug hunters.... "Thanks!!!" | 16:32 | |
| pmichaud points at "0 failing" and does a celebration dance. | |||
| Coke | pmichaud: now it's my turn. =-) | ||
|
16:32
ujwalic joined
|
|||
| Whiteknight | holy shit, is it fixed? | 16:33 | |
| It was still failing when I checked it yesterday | |||
| pmichaud | Whiteknight: for the past two days I haven't been seeing any obvious gc-related bugs | ||
| Whiteknight | I wonder what was happening about that one bug I was trying to track down? | ||
| pmichaud | we still have the abort-on-exit failures, but I think those are exception bugs and not gc ones | ||
| the one you were trying to track down is the abort-on-exit one | 16:34 | ||
| it's still there, but my bug-counting-script doesn't treat it as a failure | |||
| Whiteknight | oh, okay | ||
| pmichaud | (all of the tests passed, so it counts them as such. It's just that Parrot dies on exit) | ||
| (so we don't consider that a Rakudo bug at the moment for spectest purposes) | |||
| Whiteknight | is there a ticket for this abort-on-exit thing? I have information I can probably add to it | ||
| pmichaud | I don't think there's a ticket. But I was able to narrow it down to a simple test case | 16:35 | |
| Whiteknight | I CAN HAZ SIMPLE TEST CASE? | ||
| :) | |||
| pmichaud | looking | ||
| Whiteknight | Because I've been using failing spectests in my work, and that's a pain | ||
| pmichaud | nopaste.snit.ch/17227 | 16:36 | |
| that seems to always produce the abort-on-exit | |||
| Whiteknight | okay, yeah, I was using a snippet like that for a while | ||
| what's interesting is that both of those two statements need to be there, although can be in any order | 16:37 | ||
| pmichaud | the problem has to do with errors in evals for code that also has BEGIN semantics | ||
| Whiteknight | either one by itself doesn't fail | ||
| pmichaud | right | ||
| Whiteknight | okay | ||
| what's interesting is that the failure does indeed happen towards exit time, but the failure happens inside IMCC | 16:38 | ||
| so something is calling into IMCC after the script has completed | |||
| pmichaud | ....failure happens inside IMCC? | 16:39 | |
| oh! | |||
| it's probably not finding 'self' | |||
| Whiteknight | yeah, let me see if I can find the backtrace that I nopasted | 16:40 | |
| irclogs? | |||
| purl | hmmm... irclogs is irclog.perlgeek.de/parrot/today or see also: infrared clogs | ||
| pmichaud | so, I wonder... | ||
| Whiteknight | nopaste.snit.ch/17216 | 16:42 | |
|
16:42
bruce joined
|
|||
| Whiteknight | you can see the PIR snippets passed into IMCC during the error, which happens after those segments are already compiled and executed (because the test prints "ok") | 16:43 | |
| nopaste.snit.ch/17220 <-- And this is one of the PIR snippets being passed into IMCC that starts the fail train in motion | 16:44 | ||
| pmichaud | ...that's the whole bit of PIR that is being compiled? | ||
| or just an excerpt ? | |||
| Whiteknight | the whole thing | 16:45 | |
| purl | the whole thing is, like, confounded | ||
|
16:46
ruoso joined
|
|||
| Whiteknight | I don't think it appears in the backtrace, but in gdb I compared the string lengths to make sure it was the entire string | 16:46 | |
| pmichaud | I don't see anything there that would cause IMCC to fail | ||
| perhaps it's failing from within the load sub | 16:47 | ||
| hmmm. | |||
| Whiteknight | well yes, it's failing in the :init sub | ||
| pmichaud | which :init sub ? ;-) | ||
| Whiteknight | (which is the :load sub, but gets executed because of the :init flag) | ||
| pmichaud | and :init shouldn't matter | ||
| :init only matters for files run from the command line, which this one isn't. | |||
|
16:48
Bruce joined
|
|||
| Whiteknight | maybe that's the only time it *should* matter | 16:48 | |
| but the function is being executed because of the :init flag in IMCC when it's compiled | |||
| pmichaud | that's wrong. | ||
| purl | pmichaud is channeling thoth! | ||
| pmichaud | or I'm misremembering. One second. | 16:49 | |
| (I'm probably misremembering.) | |||
| Whiteknight | this then causes a segfault because the contexts are screwed up and it can't find the signature object | ||
| I think you're thinking about :immediate | |||
| or :postcomp | |||
| pmichaud | no | ||
| :load subs get executed when something is done via :load | |||
| :init subs get executed ... | 16:50 | ||
| okay, you're correct | |||
| including when compiled from memory | |||
| for some reason I _always_ get that backwards :-) | |||
| so yes, because of the :init flag | |||
| Whiteknight | right, so the :init function executes (I don't know which of the two in that snippet), it goes to handle the return value but can't find the signature object and crashes | 16:51 | |
| now, I tried out a patch that prevented searching for return values from an :init sub, but then there was a segfault | |||
| so somewhere the context stack is getting corrupted | 16:52 | ||
| pmichaud | okay, I have a PIR example. | ||
| Whiteknight | !!! | ||
| pure PIR, or PIR with Perl6 PMCs and runtime and stuff? | |||
| pmichaud | pure PIR | ||
| Whiteknight | oh w00t | 16:53 | |
| nopaste | "pmichaud" at 72.181.176.220 pasted "Pure PIR example showing abort-on-exit failure" (74 lines) at nopaste.snit.ch/17242 | 16:54 | |
| Whiteknight | oh wow, that's bizarre | 16:55 | |
| I have a suspicion that we can even trim that example down a little bit | |||
| pmichaud | oh, we probably can | 16:56 | |
| Whiteknight | well, maybe it wouldn't be as instructive | ||
| pmichaud | but the problem has to do with exceptions being thrown from within imcc | ||
| Whiteknight | ah, that makes more sense then | 16:57 | |
| how did you figure that out? | 16:58 | ||
| I'm probably missing some necessary information about the Perl6 runtime | |||
| nopaste | "pmichaud" at 72.181.176.220 pasted "more abort-on-exit-failure description" (88 lines) at nopaste.snit.ch/17243 | 16:59 | |
| pmichaud | I figured it out based on what you just said about the failure happening inside of IMCC | ||
| Whiteknight | pmichaud++ | ||
| pmichaud | that's the piece that I hadn't recognized yet | ||
| in nopaste 17243, I just halt execution after the first eval and before the second one, then print out a backtrace | 17:00 | ||
| you can see that the previous imcc run is still in the execution stack | |||
| Whiteknight | whoa whoa, that's rediculous! | ||
| the exception is jumping from IMCC directly to the next runcore without unwinding the stack? | 17:01 | ||
| pmichaud | exceptions don't normally unwind the stack | ||
| that's Parrot's exception model | |||
| Whiteknight | well, if they cause a longjmp back up to the previous runcore it would | ||
| for a very liberal definitoin of "unwind" | 17:02 | ||
| pmichaud | anyway, if there's something that needs to be done to cause an exception to say "okay, handled it" and unwind up the stack, I'm curious to know what that is. | ||
| Whiteknight | this is absolutely bizarre | 17:03 | |
| NotFound: ping | |||
| NotFound | Whiteknight: pong | 17:04 | |
| Whiteknight | NotFound: got a very interesting exception-related backtrace here if you want to look at it | ||
| nopaste.snit.ch/17243 | |||
| NotFound | Yes, I'm looking | ||
| Whiteknight | okay, I think what is happening is that we have a runloop in IMCC handling the :init function, which throws the exception. There is a PIR handler for it, so THAT runloop executes the exception directly, not the uppermost "parent" runloop | 17:05 | |
| and then it continues execution after the handler, which brings us to your debug 0 statement | 17:06 | ||
| so when that terminates, the stack unwinds back to the parent runloop, which continues execution and creates problems after the program appears to have run to completion | 17:07 | ||
| pmichaud | exactly. | ||
| bingo. | |||
| Whiteknight | so the test "passes", but then we get a failure at the end that looks like it's coming from the middle of the test file | ||
| pmichaud | Whiteknight++ | 17:08 | |
| Whiteknight | so we need a way to specify that certain runloops cannot execute certain exception handlers from parent runloops | 17:09 | |
| or maybe we need to not execute :init functions inside the PIR compreg | |||
| Coke | I wonder if this is related to... | ||
| Whiteknight | Or better yet, add init functions from the PIR compreg to the scheduler so they still get executed but in the parent runloop | 17:10 | |
| Coke | rt.perl.org/rt3/Ticket/Display.html?id=38432 | ||
|
17:10
chromatic joined
|
|||
| Whiteknight | Coke: I'm sure it's very related to that bug, yes | 17:11 | |
| same recursion mechanism | |||
| NotFound | I was thinking about using for pir throws/pir handles the sam way I introduced for the C throws/pir handles, but I'm not tested that yet. | ||
| Whiteknight | What we need now is to figure out which method we want to use to solve this, and then it should be relatively straight forward | 17:12 | |
| particle | the scheduler option seems best to me, but i can't put my finger on why yet | 17:14 | |
| Whiteknight | yeah, that's what I'm leaning towards now | ||
| this has the benefit that it should resolve many of our "inferior runloop" issues | |||
| pmichaud | I'm wondering if 'pushmark' is actually what is needed here, though. | ||
| Whiteknight | what's pushmark? | ||
| purl | pushmark is the first step of a list operator or subroutine call | ||
| pmichaud | purl, forget purhsmark | 17:15 | |
| purl | pmichaud, I didn't have anything matching purhsmark | ||
| particle | wasn't pushmark deprecated and removed? | ||
| pmichaud | purl, forget pushmark | ||
| purl | pmichaud: I forgot pushmark | ||
| pmichaud | let's look at the code I'm running for a sec | ||
| I create an exception handler | |||
| then do an operation (compile some PIR) | |||
| that operation throws an exception, which my handler catches | |||
| I'd like to have a way to say "okay, roll everything up and continue execution from the point where I expected to be catching an exception | 17:16 | ||
| (because I've handled it) | |||
| Whiteknight | ok | ||
| pmichaud | right now there's no way for me to say "roll up" | ||
|
17:16
HG` joined
|
|||
| pmichaud | I can try resuming after the exception -- but that's wrong. I don't want to resume execution from the point where the exception was thrown | 17:17 | |
| I want to resume execution in my runloop from the point where I expected to catch the exception | |||
| that's kinda what the pushmark and popmark opcodes do, iirc | |||
| right now we handle "continue execution from the point where I expected to be catching an exception" by use of a goto -- but that leaves the original place in the call stack chain, because no rollup occurred. | 17:18 | ||
| I think I can come up with a simple example. | 17:19 | ||
| NotFound | So this failure can be, in addition to an exception handler problem,a 'imcc is not reentrant' problem? | 17:20 | |
| Whiteknight | NotFound: no, it's larger then that. Not just IMCC | 17:22 | |
| it's not that we are re-entering into IMCC, it's that we never leave IMCC when we execute a handler from outside it | 17:23 | ||
| NotFound | Whiteknight: yeah, but supposedly the code must work even with that undesired behavior. | 17:24 | |
| pmichaud | I suspect the problem will arise anytime we end up throwing an exception from an inferior runloop | 17:27 | |
| dalek | ose: r74 | Austin++ | trunk/t/02-adverbs.t: Updated test #s, reordered adv tests |
17:28 | |
| Whiteknight | The question really is one of design then, what do we want to happen in these cases? | ||
| because it should be easy enough to detect it, we just need to know what to do | |||
| do we allow exceptions from an inner runloop to be handled by handlers in an outer "scope"? | 17:29 | ||
| pmichaud | you have to allow them to be caught by an outer scope, yes. | ||
|
17:30
darbelo joined
|
|||
| Whiteknight | okay, that's what I was thinking | 17:30 | |
| pmichaud | otherwise we end up with uncatchable exceptions. | ||
| NotFound | One problem is that 'push_eh label' is not so simple as it looks. Is not a goto, is calling an exception handler that just happen to be using the same sub block. | 17:32 | |
| chromatic | and you can't tell when the exception handler has ended. | ||
| pmichaud | push_eh label creates an ExceptionHandler PMC and sets it to the address of 'label' | 17:33 | |
| NotFound | And the ExcpetionHandler isa Continuation | 17:34 | |
| pmichaud | correct | ||
| it almost makes me want to have a "rollback label" opcode or method on the ExceptionHandler, which causes the stack to rollback to the frame in which the ExceptionHandler was created and continue execution at the given label | 17:37 | ||
| NotFound | And we can't do some unwinding before invoking it, because we must preserve context, C stack, et al. for a possible resume. | ||
| chromatic | allison and I wrote up a quick design to denote when an exception handler should return, but she hasn't yet had time to post design notes to the list. | 17:39 | |
| Mostly we need a way to mark the control scope of an exception handler. | |||
| Coke | chromatic: I just opened some hard to reproduce segfaults. I still have those gdb windows open, if I can provide any more information on the segfaults, I'm happy to. | 17:40 | |
| chromatic | Coke, what does *string show in the int_malloc segfault in callframe #29? | 17:41 | |
| up 29; p *string | |||
| sorry, p *meth instead | |||
|
17:44
fdorothy joined
|
|||
| NotFound | I wondering if we must able excpetions to propagate out of do_sub_pragmas. Did we expect to be able to sanely resume an exception from an init or load sub? | 17:47 | |
| s/able/allow | |||
| Coke | chromatic: is there an easy way to jump to that callframe? | ||
| damnit: Program terminated with signal SIGSEGV, Segmentation fault. | 17:48 | ||
| The program no longer exists. | |||
| re-running... | |||
| chromatic | up 29 should do it | 17:50 | |
| Coke | chromatic: ok. give me another 5m to get to the segf again. | ||
| thanks. | |||
| chromatic: the stack is slightly different this time; Are you interested in Parrot_run_meth_fromc_args ? | 17:56 | ||
| nopaste | "coke" at 72.228.52.192 pasted "stack trace this time" (55 lines) at nopaste.snit.ch/17244 | ||
| chromatic | Yes; it'd be good to know which PMC and which method it's trying to invoke. | 17:59 | |
| cotto | good beforenoon | 18:00 | |
| Coke | DAMMIT | ||
| after poking around again (up, down, l)... the program exited again. | |||
| re-re-running. | |||
| dalek | rrot: r40058 | cotto++ | trunk/lib/Parrot/OpsFile.pm: [ops2c] more cleanup of existing code; no functional changes |
18:02 | |
| Coke | the method is "get_string" | 18:07 | |
| chromatic | p obj->vtable->whoami | ||
| p *obj->vtable->whoami | |||
| Coke | Object | 18:08 | |
| it's /probably/ a TclDict | |||
| chromatic | How certain are you? | ||
| Coke | > 50% | 18:09 | |
| (given the nature of that test file) | |||
| chromatic | Okay. Hm. That doesn't tell me anything. | ||
| How much memory is the process using? | |||
| Coke | looks like 152m | 18:10 | |
| if it /is/ tcldict, then its get_string is: code.google.com/p/partcl/source/bro...ict.pir#22 | 18:11 | ||
| (though I do wonder why it would be invoking that as a method) | 18:12 | ||
| chromatic | Yeah, that doesn't sound quite right. | 18:13 | |
| dalek | rrot: r40059 | cotto++ | trunk/lib/Parrot/OpsFile.pm: [ops2c] remove debugging messages |
18:16 | |
| Coke | chromatic: I can get a maximum recursion depth exceeded with the failing test if I tweak it slightly. Going to see if I can make /that/ go away, and see if that avoids the segf. | 18:20 | |
| chromatic | Do you have a per process memory limit? | 18:21 | |
| Coke | chromatic: whatever the default on feather is. | ||
| (yes) | |||
| oooh. I can duplicate the actual segfault with just that test case. that should narrow it down a bit. | 18:22 | ||
| chromatic | I'm surprised it segfaulted then. | ||
| Coke | I don't think it's running out of memory - parrot is pretty good about PANIC'ing then. | ||
| chromatic | But it's segfaulting within malloc, which is strange. | 18:23 | |
| Whiteknight | that's probably indication that the heap is corrupted | 18:24 | |
| which suggests that somebody is writing more data then they have allocated space | |||
| dalek | rrot: r40060 | pmichaud++ | trunk (4 files): [pge]: Add <?> and <!> to Perl6Regex syntax. |
18:37 | |
|
18:46
japhb joined
|
|||
| NotFound | I think we can have a manageable compreg 'PIR', and other imcc invocations, by catching exceptions in do_sub_pragmas, returnning an error code from him, propagate it to his callers, and checking it in imcc_compile. This requires to change the signature of several functions, though. | 18:50 | |
| chromatic | That seems sensible to me for now. | 18:51 | |
| NotFound | I'll give it a try, then. | ||
| Whiteknight | that's a nice workaround for now, but it really ignores the larger problem | 18:55 | |
| after all, IMCC is not the only place were this problem manifests | 18:56 | ||
| NotFound | Whiteknight: one problem at a time. | ||
| chromatic | It's not, but we're not going to solve this problem while we have mixed runloops. | ||
| Whiteknight | I'm just saying, is all I'm saying | ||
| purl | i already had it that way, Whiteknight. | ||
| NotFound | Is not just a workaround, inhability to detect that problems inside imcc compiling is a real problem. | ||
| Whiteknight | a little voice in my head keeps telling me that the real long-term solution is called "L1" | 18:57 | |
| but then I take my medication and silence | |||
| dalek | TT #833 created by whiteknight++: Exception from :init sub in PIR compreg causes problems | ||
| NotFound | Whiteknight: surely, but I don't think L1 will solve imcc problems, or even pirc ones. | ||
| Whiteknight | NotFound: it solves the problem that we don't recurse into child runloops | ||
| one runloop means zero problems due to runloop recursion | 18:58 | ||
| and phasing out our reliance on PIR means we don't need to worry about bugs inside the PIR compiler | 18:59 | ||
| NotFound | Whiteknight: I'm not sure we can solve all, unless we forbid calling parrot code from C extensions. | 19:00 | |
| chromatic | The less C code they have to write, the better. | ||
| Whiteknight | NotFound: the exceptions can "call" into the existing runloop with a longjmp | 19:01 | |
| NotFound | Whiteknight: try to implement callbacks that way. | ||
| Whiteknight | or we can sandbox extensions so exceptions thrown from a child runloop in an extension do not propagate back to the parent runloop | ||
| NotFound | That's the point. We need to do some things, L1 or not. | 19:02 | |
| Whiteknight | some things, yes | ||
| NotFound | L1 can solve a lot, but not all. | 19:03 | |
| Whiteknight | if L1 is powerful enough, extensions won't be written in C | 19:04 | |
| they will be written in a Parrot language, and won't need to recurse | |||
| the only C code will be libraries through NCI and callbacks | |||
| NotFound | Maybe. In that case, we just need to do that things for reentrances from NCI. | 19:06 | |
|
19:43
AndyA joined
|
|||
| Coke | Whiteknight: for another runloop ticket, see also: rt.perl.org/rt3/Ticket/Display.html?id=57088 | 19:50 | |
| Whiteknight | yeah, nice | 19:51 | |
| NotFound | An interesting note: just adding a exit instruction at the end of TT #833 example avoids the segfault. | 19:55 | |
| Coke | note that exit throws an exception. | ||
| cotto | darbelo, ping | 19:58 | |
| darbelo | cotto: pong | 19:59 | |
| cotto | darbelo, If you write a PCT-based decTest interpreter, you can always use --target=pir to generate tests instead of running them directly. That' | 20:00 | |
| ll give you the simplicity of using HLLCompiler as intended while also not requiring that users build the compiler to run the test suite. | |||
| It'll mean a bit of trickery to generate the tests, but I don't think it'll be too onerous. | 20:01 | ||
| thoughts? | 20:06 | ||
| purl | Moonlight shines through the dark night / clouds move overhead, casting shadows / dancing in the firelight | ||
| NotFound | And another funny note: adding a :main qualifier to the sub, it fails on a different way | ||
| darbelo | Sounds good to me, especially since I woke up on the interpreter side of the bed this morinig :) | 20:10 | |
| cotto | Start coding before you change your mind! | 20:11 | |
| darbelo | Heh. I think I was heading in the other direction when I wrote the grammar, but I'll dive back into that now. | 20:14 | |
| I don't think I was making any deep-reaching assumptions there. Not intentionally. | 20:15 | ||
| cotto | btw, you can get nice syntax highlighting if you install perl6.vim and add a coda for vim (unless you're using the other editor) | 20:22 | |
|
20:23
Bruce1 joined
|
|||
| darbelo | Neither. I'm using a less bloated clone of the other editor :) | 20:26 | |
|
20:28
Bruce joined
|
|||
| cotto | There are other editors? Who knew! | 20:35 | |
| dalek | rrot: r40061 | NotFound++ | trunk/include/parrot/interpreter.h: [cage] delete no longer used piolayers member from interpreter |
20:41 | |
|
21:21
bacek joined
21:23
brbrooks joined
|
|||
| brbrooks | seen Whiteknight | 21:23 | |
| purl | Whiteknight was last seen on #parrot 1 hours, 31 minutes and 57 seconds ago, saying: yeah, nice | ||
|
21:24
hercynium joined
21:29
sekimura joined
21:31
Khisanth joined,
Whiteknight joined
|
|||
| bacek | Good morning #parrot | 21:44 | |
| brbrooks | Whiteknight: have you read this: portal.acm.org/citation.cfm?id=224182 | 21:45 | |
| Tene | "I like both kinds of music, country and western" | 21:46 | |
| Whiteknight | brbrooks: no, my acm subscription expired months ago | 21:48 | |
| brbrooks | citeseerx.ist.psu.edu/viewdoc/summa....1.84.4100 | 21:49 | |
| heavy, but informative | 21:50 | ||
| NotFound | r40061 fails without a realclean. There is some lack of dependency on include/parrot/interpreter.h somewhere | 21:54 | |
| chromatic | interpreter.h is too big. Yuck. | ||
|
21:55
Limbic_Region joined
|
|||
| dalek | rrot: r40062 | bacek++ | branches/ops_pct/compilers/opsc/ops/oplib.pm: [opsc] Add little bit more docs to Ops::OpLib |
22:08 | |
| NotFound | I say realclean? No, it was clean. | 22:11 | |
| Whiteknight | brbrooks: yes I have read that second one | 22:16 | |
| but I don't have a copy here | |||
| bacek always with that "make realclean" will generate special parrot. With clean design, clean GC implementation and clean of bugs... | 22:17 | ||
| always wish | |||
| chromatic | And you should win stuff for using it. | ||
| brbrooks | second one was just non-ACM access to the original link | ||
| bacek | chromatic: :) | 22:18 | |
| Any volunteers to smoke tt761_keys_revamp branch on something different from Debian/Lenny/i386? | |||
| dalek | rrot: r40063 | pmichaud++ | trunk/compilers/pct/src/PCT/HLLCompiler.pir: [pct]: Fix deprecated use of '.item' on match object |
22:19 | |
| rrot: r40064 | pmichaud++ | trunk/t/compilers/pge/perl6regex/rx_subrules: [pge]: Omit tests for deprecated built-in rules (TT #460). |
22:22 | ||
| rrot: r40065 | pmichaud++ | trunk/compilers/nqp/src/Grammar/Actions.pir: [nqp]: Fix use of deprecated ".text" method (TT #460). |
|||
| darbelo | bacek: I can try it on OpenBSD/amd64 | 22:25 | |
| dalek | rrot: r40066 | pmichaud++ | trunk/compilers/pge/PGE/Perl6Regex.pir: [pge]: Fix use of deprecated ".text" method (TT #460) |
22:26 | |
| bacek | darbelo: please. And if you have Rakudo - "make spectest" as well. | ||
| darbelo | bacek: don't have rakudo, sorry. Should I just do a make smoke, or do you need anything special? | 22:31 | |
| bacek | darbelo: nothing special. Just smoke. | 22:34 | |
| darbelo | bacek: Okay, I'll smoke it. This might take a while. | 22:35 | |
|
22:35
rg joined
|
|||
| moritz | bacek: sent result to the list (Lenny/amd64) | 22:36 | |
|
22:36
whoppix joined
|
|||
| bacek | pmichaud: any plans for bringing ~~ to NQP? Or I have to use "/ foo /($str)" only? | 22:36 | |
| dalek | rrot: r40067 | bacek++ | branches/ops_pct/compilers/nqp/t/30-interpolate.t: [nqp] Add test for regexp quoting. |
||
| bacek | moritz: thanks | ||
|
22:36
kid51 joined
|
|||
| bacek | moritz: yak... packfiles... | 22:37 | |
| darbelo | bacek: smolder.plusthree.com/app/public_pr...ails/24873 | 22:41 | |
| that's the branch. And a smoke from trunk from a few hours earlier is at smolder.plusthree.com/app/public_pr...tails/2486 if you want to compare. | 22:42 | ||
| bacek | darbelo: thanks. I forgot to regenerate PBCs... And t/compilers/pct is expecting to fail. | 22:44 | |
| Bah! I also forgot to dcommit latest changes... | 22:46 | ||
| dalek | rrot: r40068 | bacek++ | branches/tt761_keys_revamp (15 files): Bring brunch up-to-date with trunk. |
||
| bacek | facepalm.jpg | ||
| rrot: r40069 | bacek++ | branches/tt761_keys_revamp/src/pmc/hashiterator.pmc: [pmc] Add more description into HashIterator. |
|||
| rrot: r40070 | bacek++ | branches/tt761_keys_revamp/t/native_pbc (4 files): Regenerate native pbc. moritz++ darabelo++ |
|||
| bacek | darbelo: and mistyped your nick... | 22:47 | |
| moritz | darbelo++ then ;-) | ||
| bacek | darbelo++ indeed :) | ||
| moritz: can you some spectest against updated branch? | 22:50 | ||
| moritz | bacek: the smoke is already running | 22:51 | |
| t/compilers/pct/past.t (Wstat: 512 Tests: 10 Failed: 2) Failed tests: 7, 9 | |||
| t/compilers/pct/post.t (Wstat: 256 Tests: 6 Failed: 1) Failed test: 5 | |||
| bacek | moritz: those are expected failures... | 22:52 | |
| Test of PAST/POST rely on Hash keys order. | |||
| (And I asked for help in maillist :) | |||
| moritz | right | 22:53 | |
| nopaste | "bacek" at 114.73.12.50 pasted "partcl test failures on keys_revamp branch" (8 lines) at nopaste.snit.ch/17246 | 22:57 | |
| bacek | msg Coke Are failures from nopaste.snit.ch/17246 expected on trunk? Or I broke something (as usual)? | 22:58 | |
| purl | Message for coke stored. | ||
| nopaste | "darbelo" at 200.49.154.172 pasted "Failures on OpenBSD/amd64 after "svn up && make test" for bacek." (12 lines) at nopaste.snit.ch/17247 | 22:59 | |
| bacek | darbelo: packfile again??? Doh! | 23:00 | |
|
23:00
skids joined
|
|||
| bacek | darbelo: can you run "prove -v t/pmc/packfilerawsegment.t" and nopaste output? | 23:01 | |
|
23:02
Bruce left
|
|||
| nopaste | "darbelo" at 200.49.154.172 pasted "Output of "prove -v t/pmc/packfilerawsegment.t " for bacek." (13 lines) at nopaste.snit.ch/17248 | 23:02 | |
| bacek | hrm... | 23:03 | |
| It's... impossible... | 23:06 | ||
| ok, time to $dayjob. I'll try to review packfile PMCs tonight. | 23:07 | ||
| nopaste | "darbelo" at 200.49.154.172 pasted "bacek: You're going to love this :)" (51 lines) at nopaste.snit.ch/17249 | 23:08 | |
| rg | bacek_at_work: smoke for tt761_keys_revamp on freebsd/amd64: smolder.plusthree.com/app/public_pr...ails/24878 | 23:09 | |
| darbelo | msg bacek Look at nopaste.snit.ch/17249 the error comes and goes as it damm well pleases. | ||
| purl | Message for bacek stored. | ||
| rg | unfortunately it seems branch detection in Smoke.pm is broken, so it doesn't say so :( | 23:10 | |
| darbelo | msg bacek_at_work Look at nopaste.snit.ch/17249 the error comes and goes as it damm well pleases. | ||
| purl | Message for bacek_at_work stored. | ||
| darbelo | rg: you were the other victim of tt807, right? | 23:12 | |
| rg | darbelo: i believe so. looks like it got fixed, though. | 23:18 | |
| darbelo | It stopped manifesting on OpenBSD/amd64, if FreeBSD isn't failing anymore you should probably comment on the ticket so it can be closed. | 23:20 | |
| dalek | TT #786 closed by jkeenan++: config step auto::gettext throws warnings on Darwin/PPC | 23:21 | |
| rg | i can just close it if you agree. | 23:22 | |
| jdv79 | is there any gc instrumentation at the moment? | 23:25 | |
| darbelo | rg: fine with me, I just wanted to see if it was fixed for you too. | 23:28 | |
| rg | darbelo: you can also look at my smoke reports. unless i need the machine for something else, it should submit one 3 times a day. | 23:29 | |
| dalek | TT #807 closed by rg++: t/pmc/eval.t: freeze/thaw test not passing on OpenBSD/AMD 64 | 23:31 | |
| Whiteknight | nopaste? | 23:50 | |
| clunker3 | pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ | ||
| purl | 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 | ||
| nopaste | "whiteknight" at 69.248.162.161 pasted "test failure for bacek++. amd64, ubuntu9.04, gcc4.3.3" (14 lines) at nopaste.snit.ch/17250 | ||
| Whiteknight | purl msg bacek nopaste.snit.ch/17250 amd64 ubuntu9.04 test results | 23:51 | |
| purl | Message for bacek stored. | ||
|
23:52
bobke joined
|
|||
| Whiteknight | (I don't envy how many msgs he's going to have when he gets back) | 23:55 | |
| pmichaud:ping | |||
|
23:56
sekimura_ joined
|
|||