00:03:16  * bnoordhuisquit (Ping timeout: 255 seconds)
00:38:05  * plutoniixjoined
01:09:22  * bnoordhuisjoined
01:14:14  * bnoordhuisquit (Ping timeout: 265 seconds)
01:34:32  * RT|Chatzillaquit (Quit: ChatZilla 0.9.86.1 [Firefox 2.0.0.22pre/2009081014])
01:38:22  * RT|Chatzillajoined
02:11:33  * caitpquit (Quit: Leaving)
02:11:53  * caitpjoined
04:47:05  * octetclo1quit (Quit: WeeChat 1.0.1)
04:52:48  * caitpquit (Ping timeout: 244 seconds)
04:53:03  * xiinotulpjoined
04:56:13  * plutoniixquit (Ping timeout: 255 seconds)
05:00:35  * xiinotulpchanged nick to plutoniix
05:20:16  * caitpjoined
05:26:23  * caitpquit (Ping timeout: 244 seconds)
05:44:48  * petka_quit (Quit: Connection closed for inactivity)
06:01:20  * octetcloudjoined
06:04:43  * jonaslundquit (Ping timeout: 265 seconds)
06:36:34  * octetcloudquit (Ping timeout: 255 seconds)
07:11:23  * caitpjoined
07:15:55  * caitpquit (Ping timeout: 244 seconds)
07:18:37  <trungl-bot>Tree closed by buildbot@chromium.org: Tree is closed (Automatic: "check clusterfuzz,steps" on http://build.chromium.org/p/client.v8/builders/Auto-roll%20-%20release%20process/builds/4489 "Auto-roll - release process" from None: )
07:30:07  * plutoniixquit (Read error: Connection reset by peer)
07:31:51  * plutoniixjoined
07:33:43  <trungl-bot>Tree opened by buildbot@chromium.org: Tree is open (Automatic: Удачи!)
07:47:50  * xiinotulpjoined
07:51:49  * plutoniixquit (Ping timeout: 264 seconds)
07:58:25  * plutonuxjoined
08:01:53  * xiinotulpquit (Ping timeout: 240 seconds)
08:25:55  * plutonuxchanged nick to plutoniix
08:36:37  * plutoniixquit (Quit: จรลี จรลา)
08:45:40  * Net147joined
08:56:20  * Net147quit (Quit: HydraIRC -> http://www.hydrairc.com <- Nine out of ten l33t h4x0rz prefer it)
09:00:11  * caitpjoined
09:06:29  * caitpquit (Ping timeout: 244 seconds)
09:14:43  * muellijoined
09:21:47  * muelliquit (Ping timeout: 256 seconds)
10:08:47  * plutoniixjoined
10:37:50  * davi_joined
10:46:12  * plutoniixquit (Quit: จรลี จรลา)
10:51:08  * jonaslundjoined
10:51:38  * caitpjoined
11:09:41  * bnoordhuisjoined
11:09:58  * caitpquit (Ping timeout: 244 seconds)
11:35:08  * jas-joined
11:52:22  * KillerJimjoined
11:53:38  <KillerJim>I'm seeing "Cannot create a handle without a HandleScope" error thrown in my app when calling "EscapableHandleScope handle_scope(isolate);"
11:54:13  <KillerJim>It seems kind of strange, given I'm creating a handleScope - it is something to do with the EscapableHandleScope being created early?
11:58:05  <KillerJim>wtf.. creating a normal HandleScope nails it :|
12:19:44  * caitpjoined
12:29:01  * caitpquit (Ping timeout: 244 seconds)
12:56:26  * petka_joined
13:25:57  * caitpjoined
14:07:50  * plutoniixjoined
14:25:22  * muellijoined
14:59:21  * davi_quit (Ping timeout: 250 seconds)
16:15:56  * motownavijoined
16:16:29  * ludamadjoined
16:16:33  * motownavipart ("adios")
16:16:39  <ludamad>Any V8 people here that can tell me where JIT compilation of native functions/intrinsics is handled?
16:19:01  <caitp>i believe those are compiled in mksnapshot, but I may be wrong
16:19:42  <caitp>i'm not sure how much is kept from that process, since we'd need scope info and an AST for crankshaft
16:20:54  <bnoordhuis>ludamad: native is builtin? those are baked into the snapshot with mksnapshot, like caitp said
16:21:07  * RT|Chatzillaquit (Quit: ChatZilla 0.9.86.1 [Firefox 2.0.0.22pre/2009081014])
16:21:31  <bnoordhuis>ludamad: if you mean %foo intrinsics, that's complicated. it depends on the intrinsic
16:22:33  <caitp>some of the runtime functions are called as a fallback from some stub code, so the stubs do some of that
17:02:55  * octetcloudjoined
17:13:51  * muelliquit (Ping timeout: 264 seconds)
17:14:18  * muellijoined
17:17:41  * KillerJimquit (Quit: Leaving)
17:20:53  <ludamad>ok thanks
17:23:11  <ludamad>bnoordhuis: I do mean the % intrinsics
17:23:13  <ludamad>I want to add a new one
17:24:48  <caitp>the %... functions are runtime functions, which may be implemented in C++ or JS
17:24:58  <caitp>or ASM even
17:25:04  <caitp>there's um
17:25:04  <caitp>hang on
17:28:20  <caitp>nah i'm wrong about the JS builtins, I don't think you can call those via %<builtin name>
17:28:28  <caitp>those are just there for codegen to use I guess
17:29:50  <ludamad>caitp: so the % functions are never directly compiled?
17:29:52  <ludamad>er
17:30:01  <caitp>well the runtime functions aren't
17:30:06  <caitp>i mean not by the JIT compiler
17:30:14  <ludamad>yea
17:30:14  <ludamad>ok
17:30:28  <ludamad>so if I wanted to add a new jitted native that wouldn't be the route
17:30:30  <ludamad>I suppose?
17:30:49  <caitp>if you want like
17:30:55  <caitp>to write a self-hosted function
17:31:05  <caitp>all you really need to do is write the self-hosted function, and expose it somehow
17:31:13  <ludamad>self-hosted?
17:31:15  <ludamad>Ok
17:31:29  <ludamad>specifically I want to add an unsafe function %UnsafeGetByIndex(obj, 0) for example
17:31:38  <ludamad>which can possibly segfault, for example
17:31:49  <ludamad>but I want to JIT it with the assumption its valid
17:32:29  <caitp>>_-
17:32:50  <ludamad>hehe
17:33:02  <ludamad>if its a terrible idea let me know why for sure
17:34:21  <caitp>say you have a function which calls a runtime function called UnsafeGetByIndex(obj, 0) --- the code gen is always going to push arguments, set up a stack frame and call that function, unless it gets removed via dead code removal
17:34:21  <ludamad>its for research purposes, BTW
17:34:29  <ludamad>Ok
17:34:44  <ludamad>I want to do something jittable
17:34:46  <ludamad>hm
17:34:54  <caitp>it's not really able to change the way that function executes, because that function is compiled with v8, not JIT-ed
17:35:44  <caitp>with self-hosting, you could JIT compile it, and the inline cache will possibly optimize element accesses where possible
17:35:58  <caitp>but they won't let you segfault, unless there's a bug in v8
17:36:37  <caitp>**keep in mind I am still pretty new to crankshaft and don't have a thorough understanding of how the optimizing compiler works ;)
17:37:25  <caitp>but my understanding is that type feedback and ICs should inform the engine that it can optimize certain accesses, and if it can't, it should deopt
17:38:48  <ludamad>Yeah. I'm being asked to investigate if something like %UnsafeIntAdd(%UnsafeGet... , %UnsafeGet); is feasible to add to V8
17:44:57  <ludamad>with JIT support
17:44:58  <ludamad>that is
17:45:38  <caitp>unfortunately, runtime functions can't really be optimized by the jit compiler
17:45:40  <caitp>so there's no way
17:59:39  <bnoordhuis>well... that depends on whether the intrinsic corresponds to a runtime function or not, doesn't it?
18:00:19  <bnoordhuis>for example, %IS_VAR() and %_IsSmi() are not runtime functions, they're translated to machine code
18:01:22  <bnoordhuis>(not 100% sure about %_IsSmi() so don't quote me on that)
18:03:20  <bnoordhuis>when in doubt, consult the source and all that... %_IsSmi() gets inlined in src/compiler/js-intrinsic-builder.cc along with a number of other intrinsics
18:04:22  <bnoordhuis>ludamad: ^
18:10:52  <caitp>I don't think %_IsSmi is actually translated to code pre-crankshaft
18:11:04  <caitp>or rather translated and inlined
18:11:50  <caitp>it doesn't get inlined during full-codegen
18:13:43  <caitp>based on reading the code at least, haven't looked at the disassembly yet
18:16:45  <bnoordhuis>caitp: you could very well be right; there's a RuntimeReference_IsSmi() function in src/runtime/runtime-numbers.cc
18:17:27  <bnoordhuis>oh, Runtime_IS_VAR()... okay, disregard what i said
18:19:53  <caitp>yeah, and it looks like there is very specific instructions in crankshaft for inlining those specific things
18:20:23  * muelliquit (Ping timeout: 240 seconds)
18:20:30  <ludamad>ah
18:20:34  <caitp>v8 is a complicated codebase but it's a lot of fun trying to figure that stuff out ;)
18:20:50  <ludamad>I don't expect anything less than black magic from an optimizing jit
18:29:05  * jmar777joined
18:30:01  * ludamadquit (Ping timeout: 265 seconds)
18:36:50  * bnoordhuisquit (Ping timeout: 264 seconds)
18:44:13  * Gregorjoined
18:59:31  * dpinojoined
19:04:47  * jmar777_joined
19:06:18  * jmar777quit (Read error: Connection reset by peer)
19:13:44  * jmar777_quit (Remote host closed the connection)
19:14:18  * jmar777joined
19:17:12  * jmar777quit (Remote host closed the connection)
19:17:18  * jmar777joined
19:28:28  * Gregorquit (Ping timeout: 250 seconds)
19:28:43  * Gregor``joined
19:30:05  * Gregor``changed nick to Gregor
19:42:42  * bnoordhuisjoined
19:47:27  * bnoordhuisquit (Ping timeout: 264 seconds)
19:53:30  * C-Manjoined
20:07:22  * jmar777_joined
20:08:34  * jmar777quit (Ping timeout: 245 seconds)
20:14:45  * KillerJimjoined
20:17:32  * phpnodejoined
20:19:10  * aeroevanquit (Ping timeout: 255 seconds)
20:59:07  * C-Manquit (Quit: Connection reset by beer)
21:00:13  * jpderyjoined
21:06:52  * bobmcw_changed nick to bobmcw
21:06:52  * bobmcwquit (Changing host)
21:06:53  * bobmcwjoined
21:09:17  * jmar777joined
21:09:23  * jmar777_quit (Read error: Connection reset by peer)
21:18:27  * KillerJimquit (Quit: Leaving)
21:32:35  * muellijoined
21:32:47  * bnoordhuisjoined
21:33:11  * jmar777quit (Remote host closed the connection)
22:04:56  <trungl-bot>Tree closed by buildbot@chromium.org: Tree is closed (Automatic: "check clusterfuzz,steps" on http://build.chromium.org/p/client.v8/builders/Auto-roll%20-%20release%20process/builds/4548 "Auto-roll - release process" from None: )
22:06:45  * plutoniixquit (Quit: จรลี จรลา)
22:08:21  * jpderyquit (Quit: Leaving...)
22:31:09  * dpinoquit (Ping timeout: 256 seconds)
22:35:04  * octetcloudquit (Ping timeout: 244 seconds)
23:20:55  * jonaslundquit (*.net *.split)
23:20:57  * luitequit (*.net *.split)
23:20:57  * mawequit (*.net *.split)
23:20:58  * chrisdickinsonquit (*.net *.split)
23:20:58  * phI||Ipquit (*.net *.split)
23:20:58  * aperezdcquit (*.net *.split)
23:20:58  * Halcy0nquit (*.net *.split)
23:21:03  * RT|Chatzillajoined
23:21:03  * luitejoined
23:21:41  * jonaslundjoined
23:22:53  * chrisdickinsonjoined
23:22:53  * phI||Ipjoined
23:22:53  * aperezdcjoined
23:22:53  * Halcy0njoined
23:23:02  * muelliquit (Ping timeout: 264 seconds)
23:24:28  * wycatsquit (Ping timeout: 245 seconds)
23:26:05  * wycatsjoined
23:31:28  * jonaslund_joined
23:33:16  * decoder_joined
23:33:54  * decoderquit (Quit: No Ping reply in 180 seconds.)
23:33:56  * jonaslundquit (Read error: Connection reset by peer)
23:34:04  * jonaslund_changed nick to jonaslund
23:39:04  * bobmcwquit (Read error: Connection reset by peer)
23:39:46  * bobmcwjoined
23:55:21  * mawejoined