00:22:37
| * rendar | quit (Quit: std::lower_bound + std::less_equal *works* with a vector without duplicates!) |
00:28:45
| * bnoordhuis | joined |
00:33:06
| * bnoordhuis | quit (Ping timeout: 240 seconds) |
00:39:09
| * bradleymeck | quit (Quit: bradleymeck) |
00:52:20
| * plutoniix | joined |
01:06:15
| * watilde | joined |
01:10:55
| * watilde | quit (Ping timeout: 240 seconds) |
01:17:46
| * jgi | quit (Quit: jgi) |
01:22:21
| * C-Man | quit (Quit: Connection reset by beer) |
01:39:43
| * JoWie | quit (Quit: Connection closed for inactivity) |
02:07:14
| * watilde | joined |
02:07:54
| * ncthom91 | joined |
02:11:26
| * watilde | quit (Ping timeout: 240 seconds) |
02:31:21
| * bradleymeck | joined |
03:08:29
| * bradleymeck | quit (Quit: bradleymeck) |
03:11:06
| * ncthom91 | quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
03:12:20
| * ncthom91 | joined |
03:23:40
| * s1w | quit (Ping timeout: 265 seconds) |
03:26:14
| * s1w | joined |
03:26:38
| * s1w | changed nick to Guest50070 |
03:33:59
| * ncthom91 | quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
03:58:45
| * ncthom91 | joined |
04:02:55
| * ncthom91 | quit (Ping timeout: 240 seconds) |
04:08:36
| * watilde | joined |
04:13:30
| * watilde | quit (Ping timeout: 255 seconds) |
05:31:04
| * jgi | joined |
05:52:59
| * jgi | quit (Quit: jgi) |
05:53:22
| * jgi | joined |
06:06:30
| * jgi | quit (Quit: jgi) |
06:07:33
| * plutoniix | quit (Quit: จรลี จรลา) |
06:10:45
| * watilde | joined |
06:12:35
| * plutoniix | joined |
06:15:44
| * watilde | quit (Ping timeout: 265 seconds) |
08:12:48
| * watilde | joined |
08:17:15
| * watilde | quit (Ping timeout: 260 seconds) |
08:35:52
| * bnoordhuis | joined |
08:43:24
| * rendar | joined |
08:55:08
| * watilde | joined |
09:27:21
| * watilde | quit (Remote host closed the connection) |
09:30:14
| * guor | joined |
10:13:55
| * esas | quit (Ping timeout: 260 seconds) |
10:40:55
| * plutoniix | quit (Quit: จรลี จรลา) |
11:11:49
| * xaxxon | joined |
11:12:58
| <xaxxon> | when you create a v8::External with a pointer so some data.. who's responsible for what memory? does the external copy it? does the caller have to make sure the data stick around as long as the external may want it? How does this work in relation to passing in data to a functiontemplate? |
11:14:26
| <xaxxon> | is external basically just a holder for a dumb pointer? |
11:14:41
| <xaxxon> | or does it .. make copies of stuff and other "smart" things? |
11:30:47
| * bnoordhuis | quit (Ping timeout: 260 seconds) |
11:59:33
| <jochen__> | it's a container for a dumb pointer |
12:33:35
| * bnoordhuis | joined |
13:03:40
| * bnoordhuis | quit (Ping timeout: 265 seconds) |
13:45:23
| * bradleymeck | joined |
14:10:08
| * bnoordhuis | joined |
14:14:19
| * bnoordhuis | quit (Ping timeout: 245 seconds) |
14:39:01
| * bradleymeck | quit (Quit: bradleymeck) |
14:56:38
| * bradleymeck | joined |
15:15:28
| * bnoordhuis | joined |
15:49:01
| * C-Man | joined |
16:11:10
| * ofrobots | joined |
16:12:02
| <dherman> | is Object#Get(Local<Context>, uint32_t) not supposed to be used for the indexed properties of an array? |
16:19:58
| <bnoordhuis> | dherman: it is (for indexed properties, i mean) |
16:20:18
| <dherman> | bnoordhuis: ok. I'm trying to debug a mysterious segfault |
16:20:56
| <dherman> | I have an array of length 1, obj->IsArray() confirms it is an array, and Nan::Get(cx, 0) / obj->Get(cx, 0) repeatably crash |
16:21:22
| <bnoordhuis> | dherman: are you testing a release build? |
16:21:38
| <bnoordhuis> | a debug build will usually give a useful error message |
16:21:54
| <bnoordhuis> | bonus points if you build with extrachecks=on |
16:22:04
| <dherman> | how hard is it to build a debug build of node? |
16:22:23
| <bnoordhuis> | not hard. `make -j8 -C out BUILDTYPE=Debug` |
16:22:26
| <dherman> | bonus points if I can get a debug build of node 4 :) |
16:23:05
| <bnoordhuis> | just check out the right branch and run configure first |
16:24:34
| * RT|Chatzilla | quit (Quit: ChatZilla 0.9.86.1 [Firefox 2.0.0.22pre/2009081014]) |
16:33:42
| * ofrobots | quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
16:41:28
| <dherman> | bnoordhuis: so when the debug build doesn't segfault and silently succeeds, that's when it's time to start drinking, right? |
16:45:12
| <bnoordhuis> | dherman: either that or whip out valgrind :) |
16:45:33
| <dherman> | hm yes, maybe it's time I learned valgrind |
16:45:37
| <bnoordhuis> | dherman: does a release build from the same commit work? |
16:45:45
| <dherman> | good question |
16:46:13
| <dherman> | BUILDTYPE=Release ? |
16:47:12
| <bnoordhuis> | dherman: yes |
16:49:14
| * plutoniix | joined |
16:55:51
| <dherman> | ok yeah the release build crashes |
16:59:22
| * ofrobots | joined |
17:05:55
| * ofrobots | quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
17:07:31
| * ofrobots | joined |
17:13:47
| * ofrobots | quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
17:16:00
| * ofrobots | joined |
17:22:17
| * jgi | joined |
17:29:42
| * mostynb | joined |
17:41:53
| <bradleymeck> | is tthere a good way to discuss API proposals we need in v8 for https://github.com/nodejs/node-eps/pull/3 ? just talk to people who are doing the Module work in v8's issue tracker? or is there a place to submit API requests more formally |
17:45:10
| <dherman> | bradleymeck: I assume you're talking about v8 APIs you need, not Loader/ECMAScript APIs, right? |
17:45:22
| <bradleymeck> | yes |
17:45:31
| <dherman> | kk, just checking. afaik aklein is the droid you're looking for, but you probably knew that |
17:45:52
| <bradleymeck> | ECMAScript standard sets up abstract ops but we need more concrete things for interop |
17:46:25
| * dherman | nods |
17:58:59
| * bnoordhuis | quit (Ping timeout: 264 seconds) |
18:01:28
| * davi | joined |
18:01:28
| * davi | quit (Changing host) |
18:01:28
| * davi | joined |
18:09:55
| * bnoordhuis | joined |
18:33:54
| * dagobert______ | quit (Ping timeout: 255 seconds) |
18:34:50
| * mathiasbynens | quit (Ping timeout: 255 seconds) |
18:35:45
| * wycats | quit (Ping timeout: 255 seconds) |
18:35:45
| * dherman | quit (Ping timeout: 255 seconds) |
18:36:24
| * dagobert______ | joined |
18:37:15
| * wycats | joined |
18:38:27
| * mathiasbynens | joined |
18:39:16
| * dherman | joined |
19:19:14
| * bradleymeck | quit (Quit: bradleymeck) |
19:19:34
| * jgi | quit (Quit: jgi) |
19:19:55
| * C-Man | quit (Quit: Connection reset by beer) |
19:20:54
| * C-Man | joined |
19:26:19
| * jugglinmike | joined |
19:27:16
| <jugglinmike> | I'm making changes to preparser.cc, but they don't seem to be reflected through `d8` after I run `make` |
19:27:32
| <jugglinmike> | I shouldn't say that |
19:28:03
| <jugglinmike> | To be more specific |
19:28:15
| <jugglinmike> | I'm making a change to preparsing that I *know* will break thngs |
19:28:16
| <jugglinmike> | things* |
19:28:51
| <jugglinmike> | when I run `d8 foo.js`, I don't see any errors, expected or otherwise |
19:29:19
| <jugglinmike> | when I run `d8 -e "for(x of []) {}", I also don't see any errors |
19:29:36
| <jugglinmike> | but when I run `d8` without any command-line arguments, I see the kind of errors I am expecting |
19:29:58
| <jugglinmike> | Is this related to how/when preparsing occurs? |
19:30:34
| <jugglinmike> | Or maybe I am issuing the wrong build command. I've been running `make x64.release` between changes |
19:31:38
| <jugglinmike> | I suppose I should try `make x64`. Running that now... |
19:33:22
| * bradleymeck | joined |
19:33:36
| * bradleymeck | quit (Client Quit) |
19:33:48
| * jgi | joined |
19:44:39
| * davi | quit (Ping timeout: 250 seconds) |
19:54:25
| * bradleymeck | joined |
19:55:09
| * watilde | joined |
20:10:47
| * watilde_ | joined |
20:13:21
| * watilde | quit (Ping timeout: 255 seconds) |
20:16:30
| * bnoordhuis | quit (Ping timeout: 260 seconds) |
20:28:37
| * watilde | joined |
20:31:21
| * watilde_ | quit (Ping timeout: 255 seconds) |
20:38:26
| * watilde_ | joined |
20:39:15
| * watilde | quit (Ping timeout: 260 seconds) |
20:40:36
| * watilde | joined |
20:44:23
| * watilde_ | quit (Ping timeout: 255 seconds) |
20:45:03
| * watilde_ | joined |
20:45:44
| * rendar | quit (Ping timeout: 255 seconds) |
20:47:46
| * watilde | quit (Ping timeout: 240 seconds) |
20:51:55
| * bnoordhuis | joined |
20:52:02
| * rendar | joined |
20:56:11
| * watilde_ | quit (Remote host closed the connection) |
21:11:08
| * watilde | joined |
21:14:50
| <aklein> | jugglinmike: triggering preparsing can be a bit tricky |
21:15:15
| <aklein> | jugglinmike: I tend to do "d8 --min-preparse-length=0 -e 'function() { whatevershouldbreakgoeshere }'" |
21:17:09
| <jugglinmike> | aklein: thanks! |
21:17:28
| <jugglinmike> | aklein: though this raises a bigger question |
21:18:05
| <jugglinmike> | If preparsing doesn't always occur, should I be modifying additional files? |
21:18:47
| * esas | joined |
21:18:49
| <aklein> | jugglinmike: not sure what you're trying to do, but yeah, in general if you're modifying preparser.cc you'll have to touch parser.cc to mirror the changes (and vice-versa) |
21:18:57
| <aklein> | most of expression parsing is unified in parser-base.h |
21:21:15
| <jugglinmike> | aklein: hm, okay. I don't really know what I'm doing (could you guess?). For my basic workflow, would you recommend starting with one of the files? |
21:23:03
| <aklein> | jugglinmike: I would start with parser-base.h and parser.cc |
21:23:09
| <jugglinmike> | got it |
21:23:10
| <jugglinmike> | thanks! |
21:23:16
| <aklein> | I usually do preparsing as a second pass if necessary |
21:23:21
| <aklein> | (when implementing something new) |
21:23:37
| <aklein> | for the top level, we never pre-parse |
21:23:47
| <aklein> | so d8 -e 'whatever' will always hit just Parser |
21:24:16
| <aklein> | by way of slightly more explanation, the main thing the PreParser needs to get "right" is syntax errors |
21:24:32
| <aklein> | it doesn't keep track of much more (it's designed to swiftly skip over function bodies during page load) |
21:26:24
| <jugglinmike> | aklein: Is this distinction mjsunit tests run more than once? |
21:31:16
| <aklein> | jugglinmike: sorry, is that question missing a word? |
21:31:52
| <aklein> | in general the preparser is best-covered by cctest/test-parsing.cc |
21:32:05
| <aklein> | which runs everything through both the parser and preparser and makes sure they agree |
21:32:38
| <aklein> | then there's a smattering of regression tests that exercise the preparser, usually using --min-preparse-length but sometimes just by having a big-enough function body |
21:37:00
| <jugglinmike> | aklein: it was missing a word. I was wondering if the test runner ran each mjsunit test file more than once--for the parser and preparser respectively |
21:38:11
| <aklein> | jugglinmike: ah, yeah, the answer is no |
21:43:29
| <jugglinmike> | roger that. Thanks! |
21:46:19
| * jgi | quit (Quit: jgi) |
21:48:37
| * watilde | quit (Remote host closed the connection) |
21:59:48
| <jugglinmike> | aklein: Can I flag you for a review? |
22:00:27
| <aklein> | jugglinmike: sure ([email protected], btw; adamk on freenode is someone else :) |
22:00:39
| <jugglinmike> | got it! |
22:00:44
| <jugglinmike> | and thank you |
22:06:24
| <jugglinmike> | aklein: It's been a while; I just used `git cl upload`. Is there anything else I need to do? |
22:09:05
| <aklein> | jugglinmike: nope, I got your email |
22:10:26
| * bnoordhuis | quit (Ping timeout: 256 seconds) |
22:17:04
| * watilde | joined |
22:21:00
| * ofrobots | quit (Ping timeout: 245 seconds) |
22:22:38
| * bradleymeck | quit (Quit: bradleymeck) |
22:24:44
| * watilde | quit (Ping timeout: 255 seconds) |
22:26:41
| * plutoniix | quit (Quit: จรลี จรลา) |
22:27:25
| * jgi | joined |
22:31:40
| * RT|Chatzilla | joined |
23:16:48
| * bnoordhuis | joined |
23:21:31
| * bnoordhuis | quit (Ping timeout: 260 seconds) |
23:22:57
| <xaxxon> | is the "--expose-gc" flag still valid and if so, how do I pass it to v8 on startup? I'm not seeing it on "platform" or "isolate" but maybe I'm missing it? |
23:23:38
| <xaxxon> | I was expecting to see something that took argc/argv as parameters and returned versions with the v8 params stripped out |
23:26:41
| <xaxxon> | hrmm: http://v8.paulfryzel.com/docs/master/classv8_1_1_v8.html#abcb10a34880aa738f00dc37f74113f69 |
23:33:58
| * rendar | quit (Quit: std::lower_bound + std::less_equal *works* with a vector without duplicates!) |
23:34:45
| <xaxxon> | yeah, I found it. SetFlagsFromCommandLine/String |
23:46:09
| * jugglinmike1 | joined |
23:46:30
| * jugglinmike | quit (Ping timeout: 265 seconds) |