02:00:25  * bnoordhuisquit (Ping timeout: 246 seconds)
02:36:00  * brsonquit (Ping timeout: 260 seconds)
04:08:53  <DrPizza>ryah: how do I apply these patches, do you know?
04:09:05  <DrPizza>I upgraded openssl to the latest 0.9.8, because that chromium stuff was way obsolete
04:12:10  <DrPizza>n/m
04:12:13  <DrPizza>git apply seems to do it
04:12:30  <DrPizza>though git help didn't list git apply for some reason that I'm sure makes sense to someone but doesn't to me
04:32:32  <rmustacc>DrPizza: If you have a patch from git format-patch, you probably want to use git am
04:32:41  <DrPizza>hm
04:32:44  <DrPizza>really
04:32:45  <DrPizza>ok
04:32:47  <rmustacc>git apply just appends the diffs, but doesn't commit them.
04:33:01  <rmustacc>git am applies the diffs and commits them under the message from git format-patch.
04:34:41  <DrPizza>I think these are just plain patches
04:34:46  <DrPizza>they don't look like mail boxes
04:34:53  <DrPizza>but I may be wrong
04:35:04  <DrPizza>git am is telling me "Patch format detection failed."
04:39:05  <ryah>DrPizza: did you get it to build?
04:39:13  <DrPizza>ryah: yes
04:39:15  <ryah>DrPizza: just use patch
04:39:16  <DrPizza>needed some fixes
04:39:21  <ryah>DrPizza: we should upgrade to 1.0
04:39:29  <DrPizza>yes that may be better
04:39:46  <DrPizza>but I dunno if the build is changed much between 0.9.8 and 1.0
04:39:59  <DrPizza>how do I apply the patch with patch?
04:40:38  <ryah>patch -p1 < patch
04:40:41  <ryah>is often what i do
04:40:48  <DrPizza>do I need to redirect the output somehow
04:40:55  <ryah>no
04:41:09  <ryah>but you need to be in the correct directoy
04:41:10  <DrPizza>oh wait I can just do it from the openssl dir
04:41:13  <DrPizza>yes
04:42:15  <DrPizza>ok good
04:42:18  <DrPizza>that applied the patches ok
04:42:31  <ryah>cd deps/openssl/openssl ; patch -p1 < ../patches/handshake_cutthrough.patch
04:42:39  <DrPizza>yeah
04:42:41  <ryah>oh okay
04:42:59  <DrPizza>grr
04:43:10  <DrPizza>the patch has introduced some build errors
04:44:08  <DrPizza>oic
04:44:09  <DrPizza>ok
04:44:47  <DrPizza>these patches seem to not quite apply cleanly to the current 0.9.8, annoying.
04:45:09  <ryah>i would have assumed they were already applied
04:45:22  <DrPizza>don't seem to be
04:45:50  <DrPizza>like NPN isn't getting enabled
04:49:31  <ryah>npn is only in 1.0 ?
04:49:35  <ryah>i think
04:49:44  <DrPizza>seems plausible.
04:51:11  <DrPizza>C:\Code\Projects\node.upstream.master\Debug>node.exe
04:51:11  <DrPizza>> process.versions
04:51:11  <DrPizza>{ node: '0.5.5-pre', v8: '3.5.6', ares: '1.7.4', uv: '0.1', openssl: '0.9.8r' }
04:51:11  <DrPizza>> process.features
04:51:11  <DrPizza>{ uv: true, http1: false, ipv6: true, tls_npn: true, tls_sni: true, tls: true }
04:51:12  <DrPizza>>
04:51:39  <DrPizza>do we want to include zlib too?
04:52:11  <DrPizza>openssl can optionally use it but isn't presently
04:52:28  * rmustaccpart
04:55:09  * felixgejoined
04:56:04  <ryah>DrPizza: currently we've got compression turned off
04:56:06  <ryah>so no
04:56:17  <ryah>does windows have zlib?
04:56:32  <DrPizza>no, but it builds easily
05:01:32  <DrPizza>ryah: if it's useful/desirable to add, it shouldn't be too hard
05:09:13  <DrPizza>ryah: https://github.com/joyent/node/pull/1562
05:09:27  <DrPizza>ryah: I can't vouch for other platforms mind you
05:11:30  <DrPizza>ryah: but the changes were simple enough, create a win32 config file and set a couple of things differently in the gyp file
05:13:11  <ryah>DrPizza: thanks!
05:16:16  <ryah>so i guess i'll disable the openssl build for unixes by default
05:16:20  <ryah>and try to link to the system
05:16:29  <ryah>but include it in the tarball
05:16:42  <ryah>maybe build it if i can't find a system ssl
05:16:45  <DrPizza>yeah, if you make the dependency in node.gyp a win32-specifc one
05:16:51  <DrPizza>or that
05:16:56  <DrPizza>that's one of the things that's nto clear to me in gyp
05:17:13  <DrPizza>how do you set the usual include paths and library paths for this kind of thing
05:17:45  <ryah>i think just -Lpath in the libraries variabe
05:17:52  <DrPizza>yeah but I mean
05:18:03  <DrPizza>with a configure script you'd normally have a bunch of nice parameters
05:18:17  <DrPizza>--zlib-includes=/path/to/files
05:18:18  <DrPizza>etc.
05:18:26  <ryah>yeah - i think you have to do that yourself
05:18:29  <DrPizza>so that you can cope with system weirdness
05:18:31  <ryah>see configure-gyp
05:19:00  <DrPizza>ah
05:19:45  <DrPizza>oh so that's what options.gypi is used for
05:21:34  <DrPizza>ryah: so maybe have asecond top-level flag for build_ssl which gets set true iff win32 || special unix option given
05:23:12  <ryah>yeah
06:05:51  * felixgequit (Quit: http://www.debuggable.com/)
07:14:58  * piscisaureusjoined
07:51:57  * piscisaureusquit (Read error: Operation timed out)
10:03:57  * mralephjoined
10:27:52  * bnoordhuisjoined
10:40:01  * bnoordhuisquit (Ping timeout: 252 seconds)
13:17:02  * mralephquit (Quit: Leaving.)
14:29:06  * jcao219joined
15:45:19  * rmustaccjoined
16:29:28  * brsonjoined
18:22:58  * jcao219part ("Leaving")
19:39:21  <CIA-75>node: Peter Bright gyp-openssl * r600f1c2 / (113 files in 40 dirs):
19:39:21  <CIA-75>node: Upgrade to 0.9.8r.
19:39:21  <CIA-75>node: Build in Win32. - http://git.io/A9vtIA
19:40:12  <CIA-75>node: Peter Bright gyp-openssl * r600f1c2 / (113 files in 40 dirs):
19:40:12  <CIA-75>node: Upgrade to 0.9.8r.
19:40:12  <CIA-75>node: Build in Win32. - http://git.io/A9vtIA
19:40:14  <CIA-75>node: Ryan Dahl master * rf5db3f1 / (2 files in 2 dirs): Fix #1563. overflow in ChildProcess custom_fd. - http://git.io/7j4CgQ
19:44:12  <CIA-75>node: Ryan Dahl v0.4 * rce9caa2 / (2 files in 2 dirs):
19:44:12  <CIA-75>node: Fix #1563. overflow in ChildProcess custom_fd.
19:44:12  <CIA-75>node: Backported from master f5db3f1f859427d2b1252f937a45409c5d4eb38b - http://git.io/2Z7CYQ
22:00:06  * mralephjoined
22:18:32  <igorzi>ryah: you around?
22:21:01  <igorzi>ryah: i got some profiles with prealloc'ed read buffer.. as suspected it's the slab allocator
22:21:31  <igorzi>the "handle_that_last_alloced == handle" condition is never true.. so the slab always just keep growing
22:21:44  <igorzi>until a new one is alloc'ed
22:22:47  <igorzi>the profile showed that most of the additional time is spent doing demanzero faults (https://gist.github.com/1159742)
22:23:05  <ryah>yeah..
22:23:22  <igorzi>because the slap always grows.. each time we're touching a new page..
22:23:27  <ryah>yeah
22:23:29  <ryah>shit
22:23:32  <igorzi>yeah
22:23:44  <igorzi>so, it seems that slab isn't so good for this pattern
22:23:58  <ryah>yeah - we need to come up with something else
22:24:52  <ryah>we could try just giving libuv buffers exactly as it asks for them..
22:25:04  <ryah>but that's going to use a lot of buffers in the normal case
22:25:11  <ryah>for unix..
22:25:50  <ryah>alternitively we can try modifying the interface such that libuv is in control of the buffers
22:26:29  <ryah>that would mean removing the on_alloc and adding uv_buf_free()
22:26:47  <igorzi>maybe libuv could give some hint in alloc_cb? (if the next read after alloc is going to be for the same buffer)
22:27:14  <ryah>that might be okay
22:27:27  <igorzi>for windows, i think that we always know
22:28:58  <ryah>so if the hint says that buffers are to be used on a non-blocking read then we'd use the slab
22:29:07  <ryah>otherwise we'd create a standalone buffer
22:29:31  <ryah>that might work
22:30:16  <igorzi>for that case (standalone buffer) - we'd just use malloc/free? and let crt manage it?
22:36:15  <ryah>yes
22:36:51  <ryah>v8 gc will destroy it
22:39:36  * mralephquit (Quit: Leaving.)
22:41:29  <igorzi>ok, i'll try this
22:43:22  <igorzi>not sure how much better this will be for the prealloc case, since we'll still be doing a lot of (smaller) allocations
22:45:39  <ryah>what was the win for the non-zero reads?
22:45:45  <ryah>4%?
22:48:14  <igorzi>yep
23:27:22  <igorzi>ryah: that makes it even worse :)
23:27:56  <igorzi>we need to either punt on non-zero reads, or do some other type of allocator for this case
23:37:05  * bnoordhuisjoined