00:03:12  * watildejoined
00:07:26  * watildequit (Ping timeout: 240 seconds)
00:31:06  * C-Manquit (Quit: Connection reset by beer)
01:08:32  * plutoniixjoined
02:13:38  * jgiquit (Quit: jgi)
03:06:10  * watildejoined
03:10:30  * watildequit (Ping timeout: 245 seconds)
03:11:41  * watildejoined
03:38:50  * watildequit (Ping timeout: 245 seconds)
03:39:56  * watildejoined
04:11:45  * RT|Chatzillaquit (Quit: ChatZilla [Firefox])
04:17:27  * RT|Chatzillajoined
04:56:00  * zv_joined
06:46:14  * watildequit (Remote host closed the connection)
07:03:21  * jgijoined
07:09:56  * davijoined
07:09:56  * daviquit (Changing host)
07:09:56  * davijoined
07:38:22  * jgiquit (Quit: jgi)
07:38:47  * jgijoined
07:44:39  * jgiquit (Quit: jgi)
07:44:55  <trungl-bot>Tree closed by [email protected]: closed
07:54:57  <trungl-bot>Tree closed by [email protected]: closed (repairing things)
08:18:06  <trungl-bot>Tree opened by [email protected]: open (resolved breakage -> crbug.com/583585)
09:39:02  * rendarjoined
09:39:34  * BobGneuquit (Ping timeout: 250 seconds)
09:41:12  * BobGneujoined
09:58:00  * zv_quit (Ping timeout: 245 seconds)
09:58:39  <trungl-bot>Tree opened by [email protected]: open
10:00:03  * zv_joined
10:06:53  * thefourtheye___joined
10:33:46  * zv_quit (Ping timeout: 240 seconds)
10:35:51  * zv_joined
10:38:35  * plutoniixquit (Quit: จรลี จรลา)
10:40:55  * zv_quit (Ping timeout: 245 seconds)
11:43:18  <trungl-bot>Tree closed by [email protected]: Tree is closed (Automatic: "Check" on http://build.chromium.org/p/client.v8/builders/V8%20Mac64%20ASAN/builds/4459 "V8 Mac64 ASAN" from 007e14ce4ba444531e9ec27b3e2a760f80cb801c: [email protected])
12:01:25  <trungl-bot>Tree opened by [email protected]: Tree is open
12:19:40  * thefourtheye___quit (Quit: Connection closed for inactivity)
13:48:23  * thefourtheye___joined
13:52:00  * ofrobotsjoined
14:13:16  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
14:20:11  * jugglinmikejoined
14:25:46  * bradleymeckjoined
14:45:24  * daviquit (Ping timeout: 248 seconds)
14:50:11  * plutoniixjoined
14:59:57  * sammy_joined
15:00:20  * sammy_changed nick to Guest64018
15:01:42  <Guest64018>hey, i'm super new to v8, c++ and javascript. But I'm looking to create a node addon that performs faster than current execution in javascript. but all the basic benchmarking tests i've been doing for simple things in v8 in comparison to javascript are much slower.
15:02:02  <Guest64018>does anyone have any advice on when converting a module to c++ might be more performant than javascript? or maybe i'm doing something wrong
15:09:56  <caitp>Guest64018, one of the big causes of slowness is frequently jumping between JS and C++ code
15:11:56  <caitp>backends can't, except in very specialized cases, inline calls to code in C++, no way to minimize register saving, calling convention issues, it's overhead that adds up if you have to do it very frequently
15:12:29  <caitp>there are probably better reasons, but those are what I gather are the big ones
15:25:48  <Guest64018>thanks so much. what about creating a js object directly in c++ and then converting it? would that provide any performance enhancement or same issues?
15:27:56  * ofrobotsjoined
15:34:34  <caitp>converting it?
15:36:06  <caitp>what does your module do exactly?
15:37:44  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
15:38:36  <Guest64018>it manipulates a js object by adding/removing/updating properties (1000+x)
15:39:35  <Guest64018>trying to see if i can get a speedup by writing it in c++ but the time it takes for marshaling is so slow, very discouraging. was thinking if i connect to the db directly and create the object in c++ and pass it forward after all the manipulations it will be faster but perhaps not
15:42:05  <caitp>accessing properties from js can be faster if the shape of the object is always the same
15:42:40  <bradleymeck>well the adding/removing probably invalidates that
15:43:10  <bradleymeck>Guest50070: if you are using an Object as a dictionary with that many properties, I might take a look at Map as well
15:43:13  <Guest64018>no the shape changes, which is why i was thinking there might be a speedup with c++ but even doing a basic comparison of large object manipulation between js and c++ still shows js outperforming c for me
15:44:09  <caitp>you could try CreateDataProperty(), when changing property v alues
15:44:16  <caitp>it should do a better job than Set()
15:44:54  <Guest64018>bradleymeck, what do you mean by looking at map?
15:45:22  <bradleymeck>Guest64018: the JS Map type
15:46:02  <caitp>i'm not sure that would be a performance win ._.
15:46:22  <bradleymeck>caitp: ive seen it sometimes win
15:46:39  <bradleymeck>but try them all, and then figure out which you want
15:46:39  <Guest64018>yeah thanks caitp, i was looking for setters/getters that access memory directly rather than using all the v8 constructs. saw that GetIndexedPropertiesExternalArrayData was a quick way of retrieving property data but that method has now been deprecated, any replacements on new v8 api?
15:47:00  <caitp>iirc the externalarraydata stuff was removed
15:47:19  <bradleymeck>yes it was
15:47:24  <bradleymeck>hence the node snafu
15:47:54  <caitp>CreateDataProperty() still cares about object shape and stuff, but it has the advantage of skipping a bunch of gunk in [[DefineOwnProperty]], and doesn't walk the prototype chain every time it is performed
15:48:07  <caitp>so it could cut some corners and be a bit faster
15:48:23  <Guest64018>ok cool, and it will overwrite a property if its already present?
15:49:47  <caitp>not if the property isn't configurable, but in general yes
15:50:00  <caitp>and it will fail to add a new property if the object isn't extensible
15:51:21  <bradleymeck>aklein: you ever get a chance to look at the Node ES module proposal?
15:52:10  <Guest64018>not sure what configurable or extensible means yet but i'll have a look at creating a js object in c++ and hopefully figure it out. thanks very much you guys, been working on this for a while now getting stuck and discouraged.
15:53:49  <caitp>configurable as in doesn't have that DontDelete property flag, and extensible as in the object wasn't frozen/sealed/target of Object.preventExtensions()
15:59:40  * thefourtheye___quit (Quit: Connection closed for inactivity)
15:59:52  * RT|Chatzillaquit (Quit: ChatZilla [Firefox])
16:04:12  <Guest64018>ok great, so defaults are configurable and extensible. thank you
16:04:32  * davijoined
16:04:32  * daviquit (Changing host)
16:04:32  * davijoined
16:14:11  * RT|Chatzilla_joined
16:14:20  * RT|Chatzilla_changed nick to RT|Chatzilla
16:16:02  * RT|Chatzillaquit (Changing host)
16:16:02  * RT|Chatzillajoined
16:18:23  * RT|Chatzillaquit (Client Quit)
16:28:02  <trungl-bot>Tree closed by [email protected]: Tree is closed (Automatic: "Mozilla" on http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug/builds/1278 "V8 Linux - arm64 - sim - nosnap - debug" from aff7bd54beb74a6effba330ea940d3ee31d9717f: [email protected])
16:36:49  * jugglinmikepart
16:40:03  * bradleymeckquit (Quit: bradleymeck)
16:47:31  * ofrobotsjoined
16:56:20  * C-Manjoined
17:03:22  * C-Manquit (Quit: Connection reset by beer)
17:05:35  * jgijoined
17:09:35  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
17:39:30  <trungl-bot>Tree opened by [email protected]: Tree is open (Automatic: Want more emoji? CLs welcome! https://goo.gl/zybKBn)
17:42:32  * BobGneuquit (Read error: Connection reset by peer)
17:47:31  * watildejoined
18:02:54  * daviquit (Ping timeout: 272 seconds)
18:33:40  * seventhjoined
18:51:49  * C-Manjoined
19:11:50  * bradleymeckjoined
19:28:57  * davijoined
19:39:40  * daviquit (Ping timeout: 245 seconds)
20:30:47  * guorquit (Ping timeout: 264 seconds)
20:42:12  * guorjoined
21:02:17  * BobGneujoined
21:29:14  <aklein>bradleymeck: I haven't gotten a chance since it got lots of comments (and I think you said you'd updated it). Hoping to be focusing on modules real-soon-now (getting one more ES6 thing out of the way)
21:41:04  * rendarquit (Ping timeout: 250 seconds)
21:45:25  * watildequit (Remote host closed the connection)
21:47:26  * rendarjoined
21:51:30  * jugglinmikejoined
21:53:07  * watildejoined
21:54:44  <jugglinmike>Anybody here familiar with V8's implementation of proxies?
21:54:49  <jugglinmike>I'm interested in this behavior https://github.com/v8/v8/blob/3c3d7e7be80f45eeea0dc74a71d7552e2afc2985/src/js/proxy.js#L45-L49
21:55:20  <jugglinmike>alternatively, does anyone know if jkummerow idles here?
21:57:26  * watildequit (Ping timeout: 240 seconds)
21:57:49  <jugglinmike>oop, now reading https://github.com/tc39/ecma262/issues/160
22:02:06  * ofrobotsjoined
22:19:41  * Guest64018quit (Quit: Page closed)
22:23:54  * bradleymeckquit (Remote host closed the connection)
22:33:29  * RT|Chatzillajoined
22:43:01  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
22:52:58  * BobGneuquit (Ping timeout: 250 seconds)
22:54:49  * BobGneujoined
23:03:21  * ofrobotsjoined
23:11:43  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
23:20:12  * ofrobotsjoined
23:27:58  * ofrobotsquit (Quit: My Mac has gone to sleep. ZZZzzz…)
23:33:29  * ofrobotsjoined
23:35:56  * ofrobotsquit (Client Quit)
23:52:15  <aklein>jugglinmike: there was even more movement here at the last meeting, I think the Enumerate trap is gone altogether
23:52:22  <aklein>or on its last legs anyway?
23:52:40  <jugglinmike>aklein: yeah, it's on it's way out. See Brian's last comment on that github issue
23:52:47  <jugglinmike>I confirmed with him shortly after posting that
23:52:57  <jugglinmike>since from the discussion, that solution kind of comes out of left field
23:53:31  <jugglinmike>And with it goes the one conceivable use for destructuring in a `for-in` statement head
23:56:09  <jugglinmike>Can't say I'm too broken up about it
23:56:19  <jugglinmike>but Test262 will make you want to write some ugly code
23:56:33  <aklein>heheh
23:58:34  * C-Manquit (Quit: Connection reset by beer)