|
Parrot 3.10.0 "Apple Pi" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 2 December 2011. |
|||
|
00:08
kid51 joined
00:26
Nol888 joined
00:37
kid51_ joined
|
|||
| dalek | itor: 44eced5 | NotFound++ | src/Guitor (2 files): create an input context for a window when selecting KeyPress evennts and This allows composed characters, at least in west europ keyboards |
00:57 | |
|
01:04
schmooster joined
01:54
Yuki_N joined
|
|||
| dalek | itor: 2d9fcd6 | NotFound++ | / (2 files): improvements in EditBox and key events |
01:58 | |
| cotto | ~~ | 02:14 | |
| dalek | itor: 1300fd9 | NotFound++ | examples/text.winxed: Improve example text - Use with care, eats a lot of X resources |
02:29 | |
| itor: 0b5531c | NotFound++ | src/Guitor (2 files): fix the big leak of XftDraw |
02:44 | ||
| itor: a1cd41b | NotFound++ | src/Guitor.winxed: another XftDraw leak |
02:51 | ||
| dukeleto | this is the best news the Parrot world has seen in a while: hg.openjdk.java.net/hsx/hotspot-rt/...3f01599ff4 | 02:57 | |
| dalek | itor: 4336d81 | NotFound++ | src/Guitor.winxed: fix a leak in GetAtomName |
||
| NotFound | dukeleto: Uh? | 03:00 | |
| cotto | NotFound, looks like Oracle's started putting "commercial features" in the jvm, which require separate licensing. | 03:10 | |
|
03:10
cdbs joined
|
|||
| cdbs | This is the parrot dev channel, right? | 03:10 | |
| cotto | cdbs, yup. Welcome. | 03:11 | |
| Assuming you want the Parrot virtual machine. | |||
| cdbs | cotto: I'm working on a GCI task to clean up src/interp/* | ||
| cotto: and I have to rename functions in there | |||
| I've already done that | |||
| 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 | ||
| cotto: where's the source to it? | |||
| cotto | cdbs, libparrot is part of the build | ||
| 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 | ||
| cdbs | alright | ||
| I'll peek into the makefile | |||
| *allright | |||
| cotto | running "make" should get you a fresh libparrot | 03:14 | |
| cdbs | thanks | 03:17 | |
|
03:20
kid51_ joined
|
|||
| cotto | x264dev.multimedia.cx/archives/658 | 06:50 | |
| "The neutering of Google Code-In 2011" | |||
| I both find it funny and pretty much agree. | 06:53 | ||
| dukeleto | yeah. the changes to GCI this year did not reduce the gaming of the system | 07:18 | |
|
07:46
zby_home joined
|
|||
| cotto | nope. just different gaming | 07:49 | |
| I'm not entirely sure why gaming the system is discouraged. Nobody's writing fake code. | 07:51 | ||
| the incentives are set up pretty well | 07:54 | ||
| but google will spend their money as they see fit and are free to write the rules around it however they like | 07:57 | ||
|
09:58
JimmyZ joined
10:27
particle1 joined
10:58
preflex_ joined
11:24
fperrad joined
11:28
lucian joined
12:13
Psyche^ joined
14:20
kid51 joined
14:21
dafrito joined
14:47
dafrito joined
14:51
dafrito joined
|
|||
| dalek | itor: cd3da1b | NotFound++ | src/Guitor.winxed: avoid zero terminating strings in places that doesn't need it |
14:55 | |
|
14:55
Aleksandar joined
14:57
zby_home_ joined
15:28
schmooster joined
15:48
Aleksandar joined
|
|||
| dukeleto | ~~ | 16:46 | |
| dalek | rrot: f71f8ab | Sasho++ | docs/binaries/winxed.pod: new winxed POD doc |
16:49 | |
| rrot: 10cd463 | Sasho++ | docs/binaries/winxed.pod: new fixes |
|||
| rrot: 47373da | Sasho++ | docs/binaries/winxed.pod: winxed POD |
|||
| rrot: 52e5b49 | Sasho++ | docs/binaries/winxed.pod: winxed doc |
|||
| rrot: 833584a | dukeleto++ | docs/binaries/winxed.pod: Merge pull request #216 from Alekssasho/winxed_POD_docs GCI Task Winxed POD docs |
|||
| itor: fcaaf32 | NotFound++ | examples/winxed_repl.winxed: new example: a winxed REPL |
16:52 | ||
| rrot: 96fa2c5 | dukeleto++ | docs/binaries/winxed.pod: [docs] Tweak winxed binary docs |
16:54 | ||
| NotFound | msg whiteknight Take a look at github.com/NotFound/Guitor/commit/fcaaf323ca | 16:59 | |
| aloha | OK. I'll deliver the message. | ||
| 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:07 | |
| NotFound | nine: It has the custom mark flag set? | 17:08 | |
|
17:09
schmooster joined
|
|||
| 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:09 | |
| NotFound | Bizarre | 17:11 | |
| 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:12 | |
| 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 | |
| On the contrary, it seems to look for its parent, not its childs. | |||
| 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... | ||
| benabik: AFAIK only child->parent | |||
| benabik | That would make it very difficult to mark all child interps | ||
| 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 | ||
| 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 | ||
| Interpreters are handled very specially by the GC | |||
| NotFound | nine: the problem usually is when "very specially" means "wrong". | 17:20 | |
| nine | It usually also means very confusing... | ||
| 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 | ||
| benabik | nine: What happens? | ||
| (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 | ||
| NotFound | How is the GC working now? Child interps use the same GC as its parent, or they are like independent interpreters? | 17:24 | |
| 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 | |
| NotFound: every interp has it's own GC in the threads branch. Threads run as separated as possible with only a narrow communications interface | |||
| NotFound | Then probably at some point some PMC is marked in the wrong interpreter. | 17:30 | |
| 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:33 | |
| 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:34 | ||
| NotFound | nine: that sounds like lack of custom mark flag. | 17:35 | |
| nine | There's PObj_custom_mark_SET(SELF); in task.pmc init() | 17:37 | |
| And I confirmed in gdb that the flag is still set at the time of the segfault | |||
| NotFound | Strange... maybe the cur_task doesn't get sweeped? | 17:39 | |
| If the gc think it's already marked, Parrot_gc_mark... will not call VTABLE_mark. | 17:40 | ||
| 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 | |
| "task gets marked" means explicitely by mark_interp which is where the fprintf is | |||
| Correction: on the second run it also gets marked twice | 17:43 | ||
| NotFound | Sounds like the GC think it's already marked. | 17:53 | |
|
18:00
ambs joined
18:02
contingencyplan joined
18:03
nbrown joined
|
|||
| 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:17 | |
| 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:21 | ||
| The second call to mark_interp comes from gc_gms_validate_objects | 18:26 | ||
| NotFound | I didn't know such flag existed- | 18:29 | |
| 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:31 | |
| Which seems to be true for all PMCs that the interp references | 18:34 | ||
| 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 | ||
| dalek | nxed: 93d4251 | NotFound++ | t/basic/04switch.t: Merge pull request #16 from Alekssasho/master Google Code In Task Expression-less Switch Tests |
18:49 | |
| dukeleto | ~~ | 19:10 | |
| dalek | itor: a47ddf7 | NotFound++ | src/Guitor.winxed: fix insertion in EditBox |
19:16 | |
| itor: f4502ba | NotFound++ | src/Guitor.winxed: fix set value while on focus in EditBox |
19:21 | ||
| itor: 7ca54e8 | NotFound++ | examples/winxed_repl.winxed: history in example REPL |
19:34 | ||
| rrot: 36e4eb5 | (Peter Polacik)++ | src/packfile/api.c: Fixed problem with g++ compilation |
19:41 | ||
| rrot: d226e47 | dukeleto++ | / (12 files): Merge pull request #217 from pepol/master GCI 2011: Cleanup src/extend.c Done && fixed g++ compilation |
|||
|
19:51
bacek joined
20:34
nbrown joined
20:35
perlite joined
22:00
rfw joined
|
|||
| dalek | kudo/nom: b238ce4 | jnthn++ | src/core/ (3 files): Give Positional/Associative/Callable type parameters. |
22:15 | |
| kudo/nom: 2344572 | jnthn++ | / (2 files): Bump to latest NQP. |
|||
| kudo/nom: 7a8679d | jnthn++ | src/ (5 files): Generalize type parameterization. T[...] now calls T.^parameterize(...), and ParametricRoleGroupHOW gets to decide about CurriedRoleHOW, which is now an implementation details. |
|||
| kudo/nom: 823b1fa | jnthn++ | src/Perl6/Metamodel/ClassHOW.pm: Stub in an implementation of ClassHOW.parameterize. |
|||
| kudo/nom: 3c6b5e5 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Fix a bug in generic instantiation of parameters; the container descriptor also needs to be instantiated. |
|||
| kudo/nom: 80669d0 | jnthn++ | src/ (2 files): 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:57
sykrex joined
22:59
PerlJam joined
23:00
pmichaud joined
23:05
Coke joined
23:06
Util joined
23:09
estrabd joined
23:20
mj41 joined
|
|||