00:15:36
| * C-Man | quit (Quit: Connection reset by beer) |
01:00:05
| * watilde | joined |
01:05:41
| * watilde | quit (Ping timeout: 246 seconds) |
01:11:59
| <dherman> | arrrrrgh |
01:12:23
| <dherman> | Nan::Global does not seem prepared for the idea that it might be instantiated with a v8::Data subclass other than v8::Value |
01:12:30
| <dherman> | so pwned. |
01:24:08
| <dherman> | ah, it looks like the v8::Global API has been pretty stable since node 4 so maybe I can get away with using the v8 API directly here |
01:46:56
| <ofrobots> | xaxxon you might be running into this issue: https://github.com/nodejs/node/issues/4441 |
01:47:17
| <xaxxon> | I don't think so, but good to know |
01:47:20
| <ofrobots> | this is fixed in V8 4.7.15+ |
01:47:27
| <xaxxon> | it's probably just me using the API wrong.. I'm on 4.9.0.0 |
01:48:00
| <xaxxon> | I would pay so much for a good book on v8 :( |
01:48:20
| <xaxxon> | or just 75% complete doxygen docs |
01:48:21
| <ofrobots> | Do you have a reduced test-case? This could be a V8 bug |
01:48:33
| <xaxxon> | I'm working on that now |
01:49:10
| <ofrobots> | If you can share the part of the stack trace (the JS stack trace bit) that would be useful too |
01:49:10
| <xaxxon> | It's popping up when I have a wrapped c++ object method that returns another wrapped c++ object.. so it's probably me misusing persistants/globals or externals or something |
01:49:21
| <xaxxon> | sure |
01:50:21
| <xaxxon> | here's one I got: https://gist.github.com/xaxxon/5d404a7a8ff4b0ee3f6e |
01:50:37
| <xaxxon> | infinite recursion but I can't repro it... I ran the same code again and got a diff error |
01:51:39
| <xaxxon> | hrmm.. I can't repro the one where it prints out the stack trace anymore because Id on't have that code and the one I just put in gist blew out my 100,000 line scroll buffer |
01:51:39
| <ofrobots> | yeah, this might be an issue in how you're connecting your objects together |
01:52:08
| <xaxxon> | oh wait.. I do have it |
01:52:34
| <xaxxon> | https://gist.github.com/xaxxon/4f998e1c6f06fa43367e |
01:52:48
| <xaxxon> | it's weird.. this doesn't happen every run... sometimes it just segfaults "normal" |
01:53:15
| <xaxxon> | get_world is my method that retrusn the second object |
01:53:27
| <xaxxon> | game->get_world()->get_map() |
01:54:53
| <xaxxon> | ofrobots, can you explain to me the difference between persistent and global? (and if uniquepersistent is a synonym for global)? I'm getting lots of different information between people in this channel and the "v8 embedder's guide" and maybe other sources |
01:57:29
| <ofrobots> | I'm not the best person to be able to give the exact differentiation between those (I'm not on the V8 team), but my understanding is that Persistent is copyable. Global is not copyable. |
01:59:37
| <ofrobots> | To get authoritative answers, you should email v8-dev or try to find the v8 developers in this channel at a time they might be online (central european time). |
02:03:56
| * ofrobots | quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
02:05:48
| <xaxxon> | ok |
02:35:01
| <xaxxon> | anyone know if you can find out if there is a current context of some type? isolate/handle/context? |
02:35:22
| <xaxxon> | I'd like to put in some of my own sanity checks .. basically asserting that a function is only called when the appropriate scopes exist |
02:36:07
| <xaxxon> | as opposed to just having it crash and looking at the stack trace to try and figure out which context might be missing |
03:02:50
| * watilde | joined |
03:07:52
| * watilde | quit (Ping timeout: 256 seconds) |
03:20:49
| <dherman> | xaxxon: I think there's a GetCurrentContext method of something |
03:21:53
| <dherman> | `v8::Isolate::GetCurrent()->GetCurrentContext()` |
03:26:22
| <xaxxon> | dherman, that does exist, but I'm not sure it does what I'm asking. that's good for callbacks where you need to something with the context |
03:26:49
| <dherman> | oh sorry |
03:27:16
| * dherman | looks forward to getting to a point where he knows enough to actually help someone |
03:27:21
| <xaxxon> | ha, me too |
03:28:33
| <xaxxon> | what project are you working on, dherman ? |
03:30:21
| <xaxxon> | I'm doing a couple things.. writing an easy-to-use c++ class wrapper for accessing methods and members and also trying to integrate v8 as a game engine scripting language |
03:31:02
| <xaxxon> | wrapclass<MyClass>().add_method(&MyClass::my_method, "my_method").add_member(&MyClass::i, "i"); |
03:31:16
| <dherman> | Fun! |
03:31:24
| <dherman> | I'm working on this: http://calculist.org/blog/2015/12/23/neon-node-rust/ |
03:32:11
| <xaxxon> | ah, node modules in rust. cool. not familiar with rust |
03:32:18
| <xaxxon> | https://www.rust-lang.org/ but I see this |
03:32:21
| <dherman> | It's super cool |
03:32:32
| <dherman> | But I'm biased :) |
03:32:38
| <dherman> | It was spearheaded by my group |
03:34:14
| <xaxxon> | rust compilers down to native code? |
03:34:26
| <dherman> | Yep it uses LLVM as the backend |
03:34:50
| <dherman> | It's a full fledged C replacement |
03:34:54
| <dherman> | Same perf model |
03:35:02
| <xaxxon> | does llvm have a javascript backend? how does the sample on the rust home page work? |
03:35:15
| <dherman> | Heh it runs on a server |
03:35:20
| <dherman> | In a sandbox |
03:35:22
| <xaxxon> | oh |
03:35:26
| <xaxxon> | that's not nearly as exciting |
03:35:40
| <dherman> | There actually is a JS backend in the works |
03:35:44
| <dherman> | Using asm.js |
03:35:47
| <xaxxon> | yeah |
03:36:18
| <dherman> | Only things holding it up are boring details |
03:36:27
| <dherman> | Gtg, bedtime story time for the 3yo |
03:52:16
| * jgi | quit (Quit: jgi) |
04:06:39
| * ofrobots | joined |
04:10:46
| * ofrobots | quit (Ping timeout: 240 seconds) |
04:32:11
| * ofrobots | joined |
05:10:00
| * watilde | joined |
05:14:50
| * watilde | quit (Ping timeout: 260 seconds) |
05:20:30
| * ofrobots | quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
05:20:48
| * xaxxon | quit (Quit: This computer has gone to sleep) |
05:22:04
| * xaxxon | joined |
06:43:48
| <dherman> | does FunctionTemplate#Inherit just set up a prototype inheritance relationship, or does it do something with the branding and/or constructors as well? |
06:55:45
| * xaxxon | quit (Quit: This computer has gone to sleep) |
06:59:23
| <caitp> | it seems to have an impact on [[HasInstance]], but mostly it sets up blueprints for a prototype inheritance, looks like |
06:59:46
| <caitp> | well no, not [[HasInstance]], exactly |
07:00:48
| <dherman> | caitp: yeah I guess the biggest question would be, does it cause HasInstance to return true for testing instances against superclasses |
07:01:08
| <dherman> | I can theoretically test this at some point |
07:01:30
| <caitp> | it looks like it should |
07:01:42
| <caitp> | so long as the prototype chain isn't changed |
07:01:51
| <dherman> | wait what |
07:01:58
| <dherman> | HasInstance is just implementing instanceof?? |
07:02:03
| <dherman> | I assumed it was checking an internal brand |
07:02:14
| <dherman> | fuuu |
07:02:30
| <dherman> | pardon my almost-french |
07:02:39
| * dherman | should watch his mouth |
07:07:55
| * xiinotulp | joined |
07:08:44
| <dherman> | oh well maybe this kind of is branding + inheritance |
07:10:08
| <dherman> | caitp: am I right in understanding that HasInstance calls into https://github.com/v8/v8/blob/master/src/objects.cc#L988-L1010 ? |
07:11:01
| <dherman> | IIUC I was wrong to panic -- the template is serving as a unique unforgeable brand |
07:11:18
| <caitp> | by HasInstance I meant the spec operation, but the api for it does that yeah |
07:11:26
| * plutoniix | quit (Ping timeout: 265 seconds) |
07:11:38
| * watilde | joined |
07:12:34
| <dherman> | oh ha I need to study up on es6, this really is pretty close to the spec |
07:12:41
| <dherman> | http://www.ecma-international.org/ecma-262/6.0/index.html#sec-ordinaryhasinstance |
07:13:12
| * davi | joined |
07:14:27
| * xiinotulp | changed nick to plutoniix |
07:16:23
| * watilde | quit (Ping timeout: 264 seconds) |
07:19:42
| * ofrobots | joined |
07:25:47
| * xaxxon | joined |
07:31:15
| * davi | quit (Ping timeout: 240 seconds) |
07:47:39
| * bobmcw | joined |
07:49:53
| * watilde | joined |
07:52:22
| * bobmcw | quit (Ping timeout: 250 seconds) |
08:13:41
| * watilde | quit (Remote host closed the connection) |
08:24:56
| * ofrobots | quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
08:51:47
| * rendar | joined |
08:55:45
| * bnoordhuis | joined |
09:01:35
| <xaxxon> | dherman, did you ever figure it out? does FunctionTemplate#Inherit just set up a prototype inheritance relationship, or does it do something with the branding and/or constructors as well? |
09:11:30
| * JoWie | joined |
09:14:16
| * watilde | joined |
09:19:07
| * watilde | quit (Ping timeout: 260 seconds) |
09:25:29
| * esas | quit (Ping timeout: 246 seconds) |
10:03:09
| * bnoordhuis | quit (Ping timeout: 255 seconds) |
10:17:52
| <jochen__> | dherman: what is nan::Persistent used for? |
10:18:29
| <jochen__> | in any case, it should be easy to model the existing Persistent on top of Global |
10:54:43
| * xaxxon_ | joined |
10:55:59
| * xaxxon | quit (Ping timeout: 245 seconds) |
10:59:06
| * xaxxon_ | quit (Ping timeout: 240 seconds) |
11:00:41
| * xaxxon | joined |
11:04:14
| * xaxxon | quit (Read error: Connection reset by peer) |
11:08:27
| * xaxxon | joined |
11:09:38
| * bnoordhuis | joined |
11:13:54
| * davi | joined |
11:13:54
| * davi | quit (Changing host) |
11:13:54
| * davi | joined |
11:14:38
| * bnoordhuis | quit (Ping timeout: 256 seconds) |
11:22:12
| * bnoordhuis | joined |
12:27:58
| * davi | quit (Ping timeout: 250 seconds) |
12:38:21
| * davi | joined |
12:43:34
| * davi | quit (Ping timeout: 250 seconds) |
12:56:55
| * plutoniix | quit (Quit: จรลี จรลา) |
13:00:54
| * plutoniix | joined |
13:07:23
| * bnoordhuis | quit (Ping timeout: 246 seconds) |
13:49:07
| * petka____ | joined |
13:52:48
| * davi | joined |
13:52:48
| * davi | quit (Changing host) |
13:52:48
| * davi | joined |
14:04:11
| * davi | quit (Ping timeout: 250 seconds) |
14:20:44
| * bobmcw | joined |
14:42:26
| * bnoordhuis | joined |
14:57:08
| * C-Man | joined |
15:09:15
| * bnoordhuis | quit (Ping timeout: 260 seconds) |
15:40:46
| <dherman> | jochen__: I see, good to know, thx. At any rate Global worked for me |
15:42:11
| * ofrobots | joined |
16:00:08
| <dherman> | I'm using it to keep a long lived reference to a FunctionTemplate so I can do things like use HasInstance in my API |
16:01:10
| <dherman> | xaxxon: it turns out to be pretty subtle. It builds an inheritance chain of *FunctionTemplate*s, which is mirrored by the prototype inheritance chain too. I haven't tested whether it makes the chain immutable. |
16:01:46
| <dherman> | That is, Inherit does that, and HasInstance searches the FT chain |
16:02:24
| <dherman> | At each link of the chain it's checking the FT identity so it really is a unique unforgeable brand |
16:02:54
| <dherman> | So it's a combination of unforgeable brands and user-visible inheritance hierarchy |
16:03:32
| <dherman> | But as I say I'm not sure if users can interfere with the hierarchy via mutating __proto__ (or the newer Object.setPrototypeOf API) |
16:15:09
| * bnoordhuis | joined |
16:15:26
| * ofrobots | quit (Ping timeout: 240 seconds) |
16:19:30
| * bnoordhuis | quit (Ping timeout: 256 seconds) |
16:24:23
| * watilde | joined |
16:28:55
| * watilde | quit (Ping timeout: 260 seconds) |
16:35:31
| * xaxxon | quit (Quit: This computer has gone to sleep) |
16:38:45
| <trungl-bot`> | Tree closed by [email protected]: closed (maintenance) |
16:44:46
| <trungl-bot`> | Tree opened by [email protected]: open |
16:50:11
| * RT|Chatzilla | quit (Quit: ChatZilla 0.9.86.1 [Firefox 2.0.0.22pre/2009081014]) |
16:51:31
| * bnoordhuis | joined |
16:55:39
| * ofrobots | joined |
16:57:41
| * rosseaux | joined |
17:15:37
| * jgi | joined |
17:25:02
| * watilde | joined |
17:29:26
| * watilde | quit (Ping timeout: 240 seconds) |
17:44:17
| * jgi | quit (Quit: jgi) |
17:48:08
| * jgi | joined |
17:54:35
| * davi | joined |
17:54:35
| * davi | quit (Changing host) |
17:54:35
| * davi | joined |
17:56:44
| * xaxxon | joined |
17:57:04
| * xaxxon | quit (Client Quit) |
17:57:43
| * jgi | quit (Quit: jgi) |
18:00:04
| * bnoordhuis | quit (Ping timeout: 265 seconds) |
18:01:14
| <trungl-bot`> | Tree closed by [email protected]: closed (maintenance) |
18:07:22
| * jgi | joined |
18:08:16
| * watilde | joined |
18:11:19
| <trungl-bot`> | Tree opened by [email protected]: open |
18:17:26
| * bnoordhuis | joined |
18:36:20
| * evanluca_ | joined |
18:40:28
| * petka____ | quit (Quit: Connection closed for inactivity) |
18:41:30
| * davi | quit (Ping timeout: 250 seconds) |
19:07:14
| * bnoordhuis | quit (Ping timeout: 276 seconds) |
19:10:21
| * ofrobots | quit (Ping timeout: 255 seconds) |
19:32:03
| * ofrobots | joined |
20:00:27
| * jgi | quit (Quit: jgi) |
20:01:33
| * jgi | joined |
20:02:40
| * ofrobots | quit (Quit: Textual IRC Client: www.textualapp.com) |
20:04:37
| * watilde | quit (Remote host closed the connection) |
20:06:05
| * ofrobots | joined |
20:09:36
| * watilde | joined |
20:11:49
| * terinjokes | quit (Quit: ZNC - http://znc.in) |
20:12:35
| * terinjokes | joined |
20:13:04
| * bnoordhuis | joined |
20:17:39
| * bnoordhuis | quit (Ping timeout: 245 seconds) |
20:27:51
| * ofrobots | quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
20:29:42
| * JoWie | quit (Quit: Connection closed for inactivity) |
20:54:35
| * rendar | quit (Ping timeout: 260 seconds) |
20:56:52
| * ofrobots | joined |
21:00:00
| * stalled | quit (Ping timeout: 256 seconds) |
21:00:46
| * rendar | joined |
21:49:41
| * jgi | quit (Quit: jgi) |
22:08:56
| <trungl-bot`> | Tree closed by [email protected]: Tree is closed (Automatic: "compile" on http://build.chromium.org/p/client.v8.fyi/builders/Android%20Builder/builds/2012 "Android Builder" from 25532be593bd80c9e7b3fac4ee50491159902e93: [email protected] (:aklein),[email protected]) |
22:10:57
| <trungl-bot`> | Tree opened by [email protected] (:aklein): Tree is open (bot flake?) |
22:27:17
| * ofrobots | quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
22:33:38
| * jgi | joined |
22:42:56
| * ofrobots | joined |
22:49:56
| * ofrobots | quit (Ping timeout: 256 seconds) |
22:51:02
| * bobmcw | quit (Remote host closed the connection) |
23:46:18
| * stalled | joined |
23:51:26
| * bobmcw | joined |
23:51:26
| * bobmcw | quit (Changing host) |
23:51:26
| * bobmcw | joined |
23:56:48
| * bobmcw | quit (Ping timeout: 256 seconds) |