00:07:04  * Jarvix__joined
00:07:56  * Jarvixquit (Ping timeout: 245 seconds)
00:07:57  * Jarvix__changed nick to Jarvix
00:26:35  * temp01quit (Ping timeout: 248 seconds)
00:33:07  * temp01joined
00:56:31  * nierob_quit (Read error: Operation timed out)
00:56:55  * nierob_joined
01:07:01  * c4miloquit (Remote host closed the connection)
01:10:58  * iamdustanjoined
01:25:47  * c4milojoined
01:28:03  * temp01quit (Ping timeout: 245 seconds)
01:30:39  * temp01joined
01:39:42  * abraxasjoined
01:58:21  * carifquit (Ping timeout: 245 seconds)
02:28:12  * temp01quit (Read error: Connection reset by peer)
02:32:07  * temp01joined
02:35:41  * temp01quit (Client Quit)
02:36:08  * temp01joined
02:41:23  * Jarvixquit (Quit: Jarvix)
02:54:51  * carifjoined
02:54:53  * carifquit (Client Quit)
03:08:49  * brycecojoined
03:17:22  * brycecoquit (Quit: bryceco)
04:47:04  * jaseemabidjoined
05:10:37  * c4miloquit (Remote host closed the connection)
05:32:31  * solublejoined
05:45:16  * xan___joined
05:45:28  * xan_quit (Ping timeout: 240 seconds)
05:49:51  * Petkajoined
05:51:33  * Petkapart
06:00:37  * brycecojoined
06:00:46  * brycecoquit (Client Quit)
06:11:09  * bnoordhuisjoined
06:26:11  * c4milojoined
06:39:32  * jaseemabidchanged nick to jas|work
06:58:31  * Lethalmanjoined
06:58:55  * [[zzz]]quit (Ping timeout: 256 seconds)
07:00:01  * [[zzz]]joined
07:01:15  * solublequit (Ping timeout: 260 seconds)
07:32:55  * c4miloquit (Remote host closed the connection)
07:59:30  * bnoordhuisquit (Ping timeout: 264 seconds)
08:15:24  * bnoordhuisjoined
08:25:48  * bnoordhuisquit (Ping timeout: 240 seconds)
08:28:08  * temp01quit (Ping timeout: 240 seconds)
08:33:02  * jas|workquit (Ping timeout: 240 seconds)
08:40:54  * bnoordhuisjoined
08:53:48  * [[zzz]]changed nick to [[zz]]
08:57:40  * stalledquit (Read error: Connection reset by peer)
09:07:33  * stalledjoined
09:41:47  * RT|Chatzillaquit (Read error: Connection reset by peer)
09:41:55  * jas|workjoined
09:42:36  * RT|Chatzillajoined
09:48:21  * bnoordhuisquit (Ping timeout: 245 seconds)
10:06:19  * bnoordhuisjoined
10:20:04  * Jarvixjoined
10:22:55  * bnoordhuisquit (Ping timeout: 256 seconds)
10:51:13  * abraxasquit (Remote host closed the connection)
11:09:22  * bnoordhuisjoined
11:31:02  * iamdustanquit (Ping timeout: 240 seconds)
11:44:30  * bnoordhuisquit (Ping timeout: 252 seconds)
11:59:02  * Net147joined
12:05:28  * stalledquit (Ping timeout: 260 seconds)
12:11:40  * matjasquit (Ping timeout: 245 seconds)
12:11:51  * sanjoydquit (Ping timeout: 245 seconds)
12:15:49  * spolujoined
12:23:21  * spoluquit (Ping timeout: 245 seconds)
12:24:15  * stalledjoined
12:35:17  * iamdustanjoined
12:40:46  * matjasjoined
13:16:33  <aboudreault>Can I modify the ref counter of an object?
13:17:44  <aboudreault>or maybe the External() class takes care of that too.
13:29:24  <Jarvix>refcount? no, is implementation detail
13:29:29  <Jarvix>what do you want to achieve?
13:40:01  * solublejoined
13:40:42  * temp01joined
13:55:24  <Jarvix>aboudreault: ping ^
13:55:42  <aboudreault>Jarvix, sorry.. haven't seen your message.
13:57:41  <aboudreault>In fact, I'm exposing an internal object through SetInternalField. This object has a function, which return a member of that internal object. So, I wrap it and return it. However, if my first object (shapeObj) gets deleted by the GC.... I'll probably get a segfault if I try to use the other object (lineObj)
13:58:09  <aboudreault>so, if someway, I need to say to V8 that my new object is a children of my first object.
13:58:38  <aboudreault>I'm currently doing a simple test ... http://pastebin.ca/2460769
14:01:10  <aboudreault>here we go. just reproduced what I expected.
14:02:07  <aboudreault>msV8Print: 1
14:02:07  <aboudreault>msV8WeakObjectDeleted: yeahhhh
14:02:07  <aboudreault>msV8Print: 28670080
14:02:19  <aboudreault>the 1 is the correct value.
14:02:40  * temp01quit (Ping timeout: 246 seconds)
14:03:37  * temp01joined
14:03:57  * temp01quit (Read error: Connection reset by peer)
14:05:58  <Jarvix>Ehm, and the C++ code you wrote for this?
14:07:00  <Jarvix>I actually don't know much about the C++ Memory Management. I had to work with ObjC MM when storing my objects inside V8
14:07:34  <aboudreault>http://pastebin.ca/2460771
14:08:02  * sanjoydjoined
14:08:06  <aboudreault>I don't think it is related to C++ MM and ObjC MM neither. but really to v8 GC
14:08:33  <Jarvix>>I< had to work with ObjC MM, You Wont, because YOu don't use Objective-C :P
14:08:55  <Jarvix>Anyways, first, go update V8 and fix all errors that will come up
14:08:57  <aboudreault>this is not what I said
14:09:01  * solublequit (Ping timeout: 256 seconds)
14:09:18  <aboudreault>what errors?
14:09:28  <aboudreault>there is no errors
14:09:31  <Jarvix>In i think 3.20, a lot of changes have been made
14:09:57  <Jarvix>you should update the v8 library and due to the changes, you will have errors :P
14:10:34  <aboudreault>I'm using 3.19 and pretty sure what I'm trying to accomplish is not a bug, but something I have to handle in my code
14:10:56  <Jarvix>me too. But you should still update :)
14:11:03  <Jarvix>Anyways, lets read the code...
14:11:42  <aboudreault>I don't want to update. I've just pushed a first version of what I am doing. many people will try it with 3.19
14:11:50  <aboudreault>will update in a few months maybe.
14:12:24  <Jarvix>in a few months? :o
14:12:39  <aboudreault>3.19 is not old.
14:12:42  <Jarvix>3.19 is already 4 months old :)
14:12:56  <aboudreault>this is not old, but stable and safe.
14:13:17  <aboudreault>if 3.20 come up with too many api changes, I'm stuck
14:13:47  <Jarvix>A lot of changes yes :) mainly in Persist and the callbacks. Arguments is removed.
14:15:14  <Jarvix>what is the type of lineObj? Is that a class?
14:15:23  <aboudreault>it's a C struct
14:15:32  <aboudreault>so, in that case, yes a C++ class.
14:15:35  * bnoordhuisjoined
14:15:37  <Jarvix>ah!
14:15:37  * matjasquit (Ping timeout: 246 seconds)
14:15:49  * hackygolucky_quit (Ping timeout: 256 seconds)
14:15:58  * Alex_Gaynorquit (Ping timeout: 256 seconds)
14:16:11  <Jarvix>And is there only 1 place you free the object? in the weak callback?
14:16:24  <Jarvix>bnoordhuis: current recommended v8 version is 3.20 right?
14:16:38  <Jarvix>and hi :P
14:16:43  <aboudreault>yes the weak callback is the only destructor.
14:17:02  <Jarvix>tried logging when it was called by v8?
14:17:02  * sanjoydquit (Ping timeout: 240 seconds)
14:17:18  <aboudreault>yes, that's what I pasted
14:17:43  <Jarvix>ah, ok, i understand the problem.
14:18:22  * solublejoined
14:19:15  * solublequit (Max SendQ exceeded)
14:21:13  * solublejoined
14:21:59  * solublequit (Max SendQ exceeded)
14:22:48  * solublejoined
14:23:03  <bnoordhuis>Jarvix: probably 3.21.x
14:23:32  <Jarvix>Ok. I was trying to convince aboudreault to update van 19 to 20/21
14:23:51  * solublequit (Max SendQ exceeded)
14:24:22  * solublejoined
14:24:29  <aboudreault>bnoordhuis, this is what I'm trying to do: http://pastebin.ca/2460779
14:24:45  <aboudreault>Jarvix, Everythingg willl break :P
14:25:12  <aboudreault>Jarvix, I would prefer to finish what I'm currently doing and plan my upgrade later this month then.
14:25:13  * solublequit (Max SendQ exceeded)
14:25:39  <Jarvix>aboudreault, I think you have too few strong references
14:26:01  <Jarvix>a weak reference does not keep an object alive. That's the property of a 'weak' reference
14:26:18  <Jarvix>aboudreault: fair enough
14:26:40  <aboudreault>a weak object won't get deleted unless everything in javascript reference it.
14:27:02  <aboudreault>that said, my line SHOULD reference of be linked somehow to it. since it's its children
14:27:18  <Jarvix>the contents of a weak reference is cleared when the object is deleted. an object is deleted when it had no strong references anymore
14:27:18  <aboudreault>*should reference it of be linked*
14:27:46  <aboudreault>that is. I need a strong reference of the shape object in my line object
14:27:49  <Jarvix>as you store void pointers in External, no GC information is known about it, and thus it is no reference at all, according to the GC
14:28:07  <aboudreault>yep, I understand that.
14:28:23  <Jarvix>if a shape owns the line, the shape needs a strong reference to the line, at least
14:28:28  <Jarvix>so when the shape is deleted, the line is too
14:28:50  <Jarvix>if you hold a strong ref to the line, and the shape is deleted, the line will not be deleted (as there is another strong ref)
14:28:54  <aboudreault>how can I accomplish that?
14:29:17  <aboudreault>I understand the problematic.
14:29:19  <Jarvix>I only use weak references to bind between an ObjC object (C in your case) and a V8 object. Weakly
14:29:38  <Jarvix>you could store the handle value inside the object
14:30:22  <Jarvix>so like this: v8::Handle<v8::Array> myArray = v8::Array::New(); then add all line v8 objects to the array. object->SetHiddenValue(0,myArray);
14:30:35  <Jarvix>myArray->Set(0,myV8LineObjectWrapper);
14:30:50  <Jarvix>then the shape contains an array of strong references to the lines
14:31:11  <Jarvix>Disclaimer: Methinks
14:31:16  <aboudreault>and it won't get deleted as long as my line variable is alive?
14:31:43  <aboudreault>Let me try this.
14:31:45  <Jarvix>Eeh
14:32:39  <aboudreault>?
14:32:41  * Net147quit (Quit: HydraIRC -> http://www.hydrairc.com <- In tests, 0x09 out of 0x0A l33t h4x0rz prefer it :))
14:32:46  <Jarvix>Maybe you should make a strong reference from line to shape instead. Then you can also use the GetLine to make the line objects, when you need them
14:33:21  <aboudreault>Ok. let try this way. My children will keep a strong reference to its parent.
14:33:28  <aboudreault>doing it now.
14:33:31  <Jarvix>yeap
14:34:39  <Jarvix>I think you should imagine it this way: if you would take a string from a C++ object, and go out of scope of the object by returning the string from the current function, you would not lose the string, but you will lose the stack allocated object you got the string from. Hence whats happening now.
14:35:13  <Jarvix>good luck :D
14:35:21  <Jarvix>memory management is a PITA, always
14:35:48  <aboudreault>yes, I understand that. However first time I play with that using V8. In my PHP extension, I was able to simply modify the ref counter of the GC for all needed parents
14:36:52  <Jarvix>When was this?
14:37:19  <aboudreault>when what? not sure of the point :)
14:37:39  <Jarvix>when did you play with v8 and could change that? 8 months ago? 9? 5?
14:37:58  <aboudreault>*In my PHP extension*
14:38:05  <aboudreault>PHP binding extension
14:38:39  <Jarvix>not where, when? What V8 version did you use back then? :P
14:39:12  <aboudreault>what the hell are you saying? lol. There was no V8 at all.
14:39:38  <Jarvix>ooh :s
14:39:49  <Jarvix>so you are comparing the GC of PHP with the GC of V8?
14:39:58  <aboudreault>yes
14:40:02  <Jarvix>And you think that makes sense? :P
14:40:29  <aboudreault>damn
14:41:05  <aboudreault>I JUST mentionned how I handled the same situation in another similar case.
14:41:16  <aboudreault>it's heavy to talk with you..
14:41:20  <aboudreault>getting tired.
14:41:21  <aboudreault>:)
14:42:01  <Jarvix>:P sorry
14:42:08  <Jarvix>I am just trying to understand you :P
14:42:22  <aboudreault>no *I* am.
14:42:28  <aboudreault>was very simple to follow.
14:42:35  * hackygolucky__joined
14:42:39  * Alex_Gaynorjoined
14:42:53  <bnoordhuis>aboudreault: it is kind of an apples/oranges comparison though
14:42:58  * solublejoined
14:43:30  <aboudreault>bnoordhuis, yes and no. We have been able to use a method like IncrementReference().
14:43:43  <aboudreault>which is exactly what keeping a strong reference as member is doing.
14:43:49  <Jarvix>You can't be surprised that you can't change the refcount in PHP and not in V8 :)
14:44:21  * c4milojoined
14:44:35  <Jarvix>I am looking at PHP GC and I don't think they have a notion of Strong and Weak at all.
14:44:38  <aboudreault>Jarvix, I *can* in PHP. that why
14:44:44  <bnoordhuis>well... a strong persistent handle is an artificial gc root. reference counting is, well, reference counting
14:44:48  <aboudreault>I asked this initially.
14:45:08  <aboudreault>any, I'm tring the solution now.
14:45:12  <aboudreault>*anyway*
14:45:49  <aboudreault>bbl meeting.
14:47:58  <Jarvix>bnoordhuis would this be a similar comparison: 'Why can't I drive through the tunnel with this 3m high truck? I could with my Minicooper!' :P
14:51:28  * matjasjoined
15:12:49  <aboudreault>Jarvix, worst comment ever.
15:13:49  <Jarvix>dunno. I think it compares :)
15:13:59  <Jarvix>Anyways, any luck with the strong refs?
15:15:29  <aboudreault>it'll work, don't worry. continue your work. Won't disturb you anymore :)
15:16:06  <Jarvix>I've been working all along ;)
15:17:11  * ctrutajoined
15:20:59  <Jarvix>Mm, interesting, it seems like every release note contains 'Performance and stability improvements on all platforms'
15:22:19  <bnoordhuis>it's a long-winded way of saying 'assorted bug fixes'
15:29:34  <Jarvix>bnoordhuis: who managed the github v8 repo? Who could I ask for a commit/push hook?
15:32:45  <bnoordhuis>Jarvix: any v8 team member, i think
15:32:46  * RT|Chatzillaquit (Quit: ChatZilla 0.9.86.1 [Firefox 2.0.0.22pre/2009081014])
15:33:06  <Jarvix>Thought so. Ill use the ML then.
15:33:17  <Jarvix>Thinking about running a continuous docs site
15:34:11  <bnoordhuis>Jarvix: you could set up a script that does a pull every hour or so
15:34:16  <Jarvix>that shows docs for all (limited to 30 or so ago) and updates when a hook comes in
15:34:30  <Jarvix>yeah could do.
15:36:22  <Jarvix>but with the post-receive-hook, i could see directly if the include/*.h files changed. And if not, ignore the commit (or do some version categorising magic)
15:37:54  * jas|workquit (Ping timeout: 264 seconds)
15:45:47  <Jarvix>you think an auto-updated docsite for v8 would be useful?
15:47:17  <bnoordhuis>Jarvix: well, maybe at release boundaries. probably not for every commit though
15:47:37  <bnoordhuis>real men (and women) just use the source though
15:47:40  <Jarvix>yeah, for --tags (are mostly daily)
15:47:53  <Jarvix>it will reference to the headers
15:48:53  <Jarvix>yeah, but v8.h is one big shitfile with every class rammed into it. Instead of nice header-per-class(group)
15:49:22  <Jarvix>AND with doxygen, doc errors show up way easier :D
15:49:40  <bnoordhuis>i guess that's true. v8.h's never bothered me though
15:49:52  <bnoordhuis>it's the tip of the iceberg really
15:51:30  <Jarvix>i never look beyond the v8*.h files
15:51:39  <Jarvix>I am just an embedder
15:51:56  * spolujoined
15:52:52  <bnoordhuis>me too but i still like to know how stuff works
15:53:39  <bnoordhuis>okay, enough merry banter - time for dinner
15:57:49  <Jarvix>wow, a real 6PM eater :O Even at my parents I have dinner at ~7PM
15:57:57  * bnoordhuisquit (Ping timeout: 240 seconds)
16:00:28  <soluble>Where's MaybeObject defined?
16:12:53  * Lethalmanquit (Ping timeout: 248 seconds)
16:14:53  * sanjoydjoined
16:23:23  * temp01joined
17:04:17  * juanjosanchezjoined
17:11:30  * solublequit (Ping timeout: 264 seconds)
17:26:36  * spoluquit (Ping timeout: 260 seconds)
17:28:32  * c4miloquit (Remote host closed the connection)
17:46:39  * juanjosanchezquit (Ping timeout: 260 seconds)
17:59:03  * hackygolucky__changed nick to hackygolucky_
18:11:39  * bnoordhuisjoined
18:36:19  * iamdustanquit (Quit: Lost terminal)
18:36:33  * xan___quit (Quit: leaving)
18:36:54  * iamdustanjoined
18:41:19  * c4milojoined
19:08:48  * temp01quit (Ping timeout: 260 seconds)
19:10:55  * temp01joined
19:20:58  * tabbott__joined
19:21:09  * bnoordhuisquit (Ping timeout: 248 seconds)
19:21:58  * Vbitz_joined
19:27:21  * Vbitzquit (*.net *.split)
19:27:22  * tabbott_quit (*.net *.split)
19:49:13  * Vbitz_changed nick to Vbitz
20:11:10  * iamdustanquit (Remote host closed the connection)
20:23:12  * iamdustanjoined
20:31:52  * bnoordhuisjoined
21:00:13  * ctrutaquit (Ping timeout: 246 seconds)
21:12:07  * iamdustanquit (Ping timeout: 246 seconds)
21:17:47  * bnoordhuisquit (Ping timeout: 240 seconds)
21:20:31  * carifjoined
21:42:19  * carifquit (Read error: Operation timed out)
21:54:24  * bnoordhuisjoined
22:23:22  * RT|Chatzillajoined
22:25:43  * bnoordhuisquit (Ping timeout: 260 seconds)
22:41:10  * Jarvixquit (Ping timeout: 240 seconds)
22:47:22  * carifjoined
22:48:28  * c4miloquit (Remote host closed the connection)
23:01:15  * carifquit (Read error: Operation timed out)
23:06:36  * temp01quit (Read error: Connection reset by peer)
23:08:36  * [[zzz]]joined
23:10:29  * [[zz]]quit (Ping timeout: 248 seconds)
23:11:25  * temp01joined
23:58:30  * carifjoined