Camelia, the Perl 6 bug

IRC log for #parrot, 2011-12-03

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:08 kid51 joined #parrot
00:26 Nol888 joined #parrot
00:37 kid51_ joined #parrot
00:57 dalek Guitor: 44eced5 | NotFound++ | src/Guitor (2 files):
00:57 dalek Guitor: create an input context for a window when selecting KeyPress evennts and
00:58 dalek Guitor: add all supporting for it
00:58 dalek Guitor: This allows composed characters, at least in west europ keyboards
00:58 dalek Guitor: review: https://github.com/NotFoun​d/Guitor/commit/44eced58ad
01:04 schmooster joined #parrot
01:54 Yuki_N joined #parrot
01:58 dalek Guitor: 2d9fcd6 | NotFound++ | / (2 files):
01:58 dalek Guitor: improvements in EditBox and key events
01:58 dalek Guitor: review: https://github.com/NotFoun​d/Guitor/commit/2d9fcd60aa
02:14 cotto ~~
02:29 dalek Guitor: 1300fd9 | NotFound++ | examples/text.winxed:
02:29 dalek Guitor: Improve example text - Use with care, eats a lot of X resources
02:29 dalek Guitor: review: https://github.com/NotFoun​d/Guitor/commit/1300fd9ae1
02:44 dalek Guitor: 0b5531c | NotFound++ | src/Guitor (2 files):
02:44 dalek Guitor: fix the big leak of XftDraw
02:44 dalek Guitor: review: https://github.com/NotFoun​d/Guitor/commit/0b5531cd17
02:51 dalek Guitor: a1cd41b | NotFound++ | src/Guitor.winxed:
02:51 dalek Guitor: another XftDraw leak
02:51 dalek Guitor: review: https://github.com/NotFoun​d/Guitor/commit/a1cd41b156
02:57 dukeleto this is the best news the Parrot world has seen in a while: http://hg.openjdk.java.net/hsx/ho​tspot-rt/hotspot/rev/763f01599ff4
02:57 dalek Guitor: 4336d81 | NotFound++ | src/Guitor.winxed:
02:57 dalek Guitor: fix a leak in GetAtomName
02:57 dalek Guitor: review: https://github.com/NotFoun​d/Guitor/commit/4336d81060
03:00 NotFound dukeleto: Uh?
03:10 cotto NotFound, looks like Oracle's started putting "commercial features" in the jvm, which require separate licensing.
03:10 cdbs joined #parrot
03:10 cdbs This is the parrot dev channel, right?
03:11 cotto cdbs, yup.  Welcome.
03:11 cotto Assuming you want the Parrot virtual machine.
03:11 cdbs cotto: I'm working on a GCI task to clean up src/interp/*
03:11 cdbs cotto: and I have to rename functions in there
03:11 cdbs I've already done that
03:12 cdbs cotto: but the issue is, blib/lib/libparrot.so seems to be a precompiled library that already has the old funtion names baked in
03:12 cdbs cotto: where's the source to it?
03:12 cotto cdbs, libparrot is part of the build
03:13 cdbs cotto: but I can't find the source file to it
03:13 cotto much of the C in Parrot gets compiled into libparrot
03:13 cdbs alright
03:13 cdbs I'll peek into the makefile
03:13 cdbs *allright
03:14 cotto running "make" should get you a fresh libparrot
03:17 cdbs thanks
03:20 kid51_ joined #parrot
06:50 cotto http://x264dev.multimedia.cx/archives/658
06:50 cotto "The neutering of Google Code-In 2011"
06:53 cotto I both find it funny and pretty much agree.
07:18 dukeleto yeah. the changes to GCI this year did not reduce the gaming of the system
07:46 zby_home joined #parrot
07:49 cotto nope.  just different gaming
07:51 cotto I'm not entirely sure why gaming the system is discouraged.  Nobody's writing fake code.
07:54 cotto the incentives are set up pretty well
07:57 cotto but google will spend their money as they see fit and are free to write the rules around it however they like
09:58 JimmyZ joined #parrot
10:27 particle1 joined #parrot
10:58 preflex_ joined #parrot
11:24 fperrad joined #parrot
11:28 lucian joined #parrot
12:13 Psyche^ joined #parrot
14:20 kid51 joined #parrot
14:21 dafrito joined #parrot
14:47 dafrito joined #parrot
14:51 dafrito joined #parrot
14:55 dalek Guitor: cd3da1b | NotFound++ | src/Guitor.winxed:
14:55 dalek Guitor: avoid zero terminating strings in places that doesn't need it
14:55 dalek Guitor: review: https://github.com/NotFoun​d/Guitor/commit/cd3da1b52c
14:55 Aleksandar joined #parrot
14:57 zby_home_ joined #parrot
15:28 schmooster joined #parrot
15:48 Aleksandar joined #parrot
16:46 dukeleto ~~
16:49 dalek parrot: f71f8ab | Sasho++ | docs/binaries/winxed.pod:
16:49 dalek parrot: new winxed POD doc
16:49 dalek parrot: review: https://github.com/parrot/parrot/commit/f71f8ab4b1
16:49 dalek parrot: 10cd463 | Sasho++ | docs/binaries/winxed.pod:
16:49 dalek parrot: new fixes
16:49 dalek parrot: review: https://github.com/parrot/parrot/commit/10cd4639b0
16:49 dalek parrot: 47373da | Sasho++ | docs/binaries/winxed.pod:
16:49 dalek parrot: winxed POD
16:49 dalek parrot: review: https://github.com/parrot/parrot/commit/47373dad4f
16:49 dalek parrot: 52e5b49 | Sasho++ | docs/binaries/winxed.pod:
16:49 dalek parrot: winxed doc
16:49 dalek parrot: review: https://github.com/parrot/parrot/commit/52e5b49fa3
16:49 dalek parrot: 833584a | dukeleto++ | docs/binaries/winxed.pod:
16:49 dalek parrot: Merge pull request #216 from Alekssasho/winxed_POD_docs
16:49 dalek parrot:
16:49 dalek parrot: GCI Task Winxed POD docs
16:49 dalek parrot: review: https://github.com/parrot/parrot/commit/833584adb6
16:52 dalek Guitor: fcaaf32 | NotFound++ | examples/winxed_repl.winxed:
16:52 dalek Guitor: new example: a winxed REPL
16:52 dalek Guitor: No copy&paste yet, sorry
16:52 dalek Guitor: review: https://github.com/NotFoun​d/Guitor/commit/fcaaf323ca
16:54 dalek parrot: 96fa2c5 | dukeleto++ | docs/binaries/winxed.pod:
16:54 dalek parrot: [docs] Tweak winxed binary docs
16:54 dalek parrot: review: https://github.com/parrot/parrot/commit/96fa2c52ee
16:59 NotFound msg whiteknight Take a look at https://github.com/NotFoun​d/Guitor/commit/fcaaf323ca
16:59 aloha OK. I'll deliver the message.
17:07 nine How can it be that interp->cur_task is marked by the GC as live, but the task's mark VTABLE method does not get called?
17:08 NotFound nine: It has the custom mark flag set?
17:09 schmooster joined #parrot
17:09 nine NotFound: yes. The thing is: the first time the GC runs the method is called. The next run it doesn't get called anymore and the task's code is garbage collected
17:11 NotFound Bizarre
17:12 nine And it only seems to happen on another thread. On the main thread it works fine. But it cannot be some thread interaction, since there are only two threads and the main thread is sleeping all the time in this test
17:16 NotFound There is a mark_interp static function in gc/mark_sweep.c that says "Mark an interpreter and all direct children" but looking at it I'm not sure it really does that.
17:16 NotFound On the contrary, it seems to look for its parent, not its childs.
17:17 benabik Is there a link parent->child, or just child->parent?
17:17 nine NotFound: yep, it marks it's parent which is why I had to unset the thread interp's parent. Otherwise the thread's GC would start marking another thread's interp...
17:17 nine benabik: AFAIK only child->parent
17:17 benabik That would make it very difficult to mark all child interps
17:18 nine benabik: the child would be the responsibility of whatever code lead to it's creation in the first place
17:18 benabik Then mark_interp's comment should be fixed.  :-D
17:19 NotFound And the ParrotInterpreter PMC doesn't have a custom mark.
17:19 nine I think the comment is not about child interpreters but just PMCs stored in the interp
17:19 nine Interpreters are handled very specially by the GC
17:20 NotFound nine: the problem usually is when "very specially" means "wrong".
17:20 nine It usually also means very confusing...
17:21 NotFound There is a run_gc method in ParrotInterpreter that ack doesn't found in any other part of the tree.
17:21 nine Oh and never try to store ParrotInterpreters in ResizablePMCArrays or something like that. Learned that the hard way... using a C array instead now
17:21 benabik nine: What happens?
17:22 benabik (And that sounds like a decent argument for using a mark function on the interp PMC instead of a special mark_interp function)
17:22 nine benabik: many extremely confusing backtraces that give no hint about what's wrong. Spent a whole night trying to get it to work before just using a C array and having a working system within half an hour
17:24 NotFound How is the GC working now? Child interps use the same GC as its parent, or they are like independent interpreters?
17:26 nine Parrot_gc_mark_PMC_alive only marks the PMC but is not responsible for calling the PMC's mark am I right? That seems to be gc_gms_process_dirty_list's and gc_gms_process_work_list's job
17:26 nine NotFound: every interp has it's own GC in the threads branch. Threads run as separated as possible with only a narrow communications interface
17:30 NotFound Then probably at some point some PMC is marked in the wrong interpreter.
17:33 nine NotFound: unlikely. The main thread goes to sleep immediately after starting the second thread and I put debug output into gc_gms_mark_and_sweep showing that only the thread's GC goes into action
17:34 nine Adding a manual VTABLE_mark(interp, interp->cur_task); into mark_interp after Parrot_gc_mark_PMC_alive(interp, interp->cur_task); definitely improves the situation.
17:35 NotFound nine: that sounds like lack of custom mark flag.
17:37 nine There's PObj_custom_mark_SET(SELF); in task.pmc init()
17:37 nine And I confirmed in gdb that the flag is still set at the time of the segfault
17:39 NotFound Strange... maybe the cur_task doesn't get sweeped?
17:40 NotFound If the gc think it's already marked, Parrot_gc_mark... will not call VTABLE_mark.
17:42 nine The debug output of the first GC run shows that the task gets marked, then it's VTABLE_mark is called and then the task is marked again. On the second run it's only marked once and VTABLE_mark is not called
17:42 nine "task gets marked" means explicitely by mark_interp which is where the fprintf is
17:43 nine Correction: on the second run it also gets marked twice
17:53 NotFound Sounds like the GC think it's already marked.
18:00 ambs joined #parrot
18:02 contingencyplan joined #parrot
18:03 nbrown joined #parrot
18:17 nine NotFound: seems like you're right. have a break on mark_interp and the task's live flag is already set before Parrot_gc_mark_PMC_alive is called
18:21 nine btw. the GC_soil_root flag is also set. Could this have anything to do with the problem or is this to be expected?
18:26 nine The second call to mark_interp comes from gc_gms_validate_objects
18:29 NotFound I didn't know such flag existed-
18:31 nine Two things that seem very strange to me: 1. the task is marked alive at the time of the validate_objects call which it should not be. But even if it weren't it would get marked alive by the validate call. And since gc_gms_validate_objects is the last statement in gc_gms_mark_and_sweep the flag has to stay
18:34 nine Which seems to be true for all PMCs that the interp references
18:35 nine Unfortunately I have to leave now (should have half an hour ago...). Will try to solve this riddle tomorrow. Thanks for help anyway :)
18:35 NotFound NM
18:49 dalek winxed: 93d4251 | NotFound++ | t/basic/04switch.t:
18:49 dalek winxed: Merge pull request #16 from Alekssasho/master
18:49 dalek winxed:
18:49 dalek winxed: Google Code In Task Expression-less Switch Tests
18:49 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/93d4251b05
19:10 dukeleto ~~
19:16 dalek Guitor: a47ddf7 | NotFound++ | src/Guitor.winxed:
19:16 dalek Guitor: fix insertion in EditBox
19:16 dalek Guitor: review: https://github.com/NotFoun​d/Guitor/commit/a47ddf7f7f
19:21 dalek Guitor: f4502ba | NotFound++ | src/Guitor.winxed:
19:21 dalek Guitor: fix set value while on focus in EditBox
19:21 dalek Guitor: review: https://github.com/NotFoun​d/Guitor/commit/f4502baae5
19:34 dalek Guitor: 7ca54e8 | NotFound++ | examples/winxed_repl.winxed:
19:34 dalek Guitor: history in example REPL
19:34 dalek Guitor: review: https://github.com/NotFoun​d/Guitor/commit/7ca54e8140
19:41 dalek parrot: 36e4eb5 | (Peter Polacik)++ | src/packfile/api.c:
19:41 dalek parrot: Fixed problem with g++ compilation
19:41 dalek parrot: review: https://github.com/parrot/parrot/commit/36e4eb520f
19:41 dalek parrot: d226e47 | dukeleto++ | / (12 files):
19:41 dalek parrot: Merge pull request #217 from pepol/master
19:41 dalek parrot:
19:41 dalek parrot: GCI 2011: Cleanup src/extend.c Done && fixed g++ compilation
19:41 dalek parrot: review: https://github.com/parrot/parrot/commit/d226e47e77
19:51 bacek joined #parrot
20:34 nbrown joined #parrot
20:35 perlite joined #parrot
22:00 rfw joined #parrot
22:15 dalek rakudo/nom: b238ce4 | jnthn++ | src/core/ (3 files):
22:15 dalek rakudo/nom: Give Positional/Associative/Callable type parameters.
22:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b238ce4558
22:15 dalek rakudo/nom: 2344572 | jnthn++ | / (2 files):
22:15 dalek rakudo/nom: Bump to latest NQP.
22:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2344572272
22:15 dalek rakudo/nom: 7a8679d | jnthn++ | src/ (5 files):
22:15 dalek rakudo/nom: Generalize type parameterization. T[...] now calls T.^parameterize(...), and ParametricRoleGroupHOW gets to decide about CurriedRoleHOW, which is now an implementation details.
22:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7a8679dcb8
22:15 dalek rakudo/nom: 823b1fa | jnthn++ | src/Perl6/Metamodel/ClassHOW.pm:
22:15 dalek rakudo/nom: Stub in an implementation of ClassHOW.parameterize.
22:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/823b1fa3d7
22:15 dalek rakudo/nom: 3c6b5e5 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
22:15 dalek rakudo/nom: Fix a bug in generic instantiation of parameters; the container descriptor also needs to be instantiated.
22:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3c6b5e5b3f
22:15 dalek rakudo/nom: 80669d0 | jnthn++ | src/ (2 files):
22:15 dalek rakudo/nom: Make SomeTypeObj but ARole just give you back a new type object representing the original type plus the role mxied in. Explicitly forbid this for does, since you can't change a type object in place.
22:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/80669d0711
22:57 sykrex joined #parrot
22:59 PerlJam joined #parrot
23:00 pmichaud joined #parrot
23:05 Coke joined #parrot
23:06 Util joined #parrot
23:09 estrabd joined #parrot
23:20 mj41 joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced