00:50:59  <CIA-75>libuv: Bert Belder prefork * r48f827f / (src/win/core.c src/win/req.c): Ugly hack to avoid loop starvation - http://git.io/c81L-A
00:50:59  <CIA-75>libuv: Bert Belder prefork * rb087c21 / (5 files in 3 dirs): Define uv_object_t, a base class for handles and requests - http://git.io/SFg9eQ
00:50:59  <CIA-75>libuv: Bert Belder prefork * rb5d51a3 / (6 files in 3 dirs): Prefork server experiment - http://git.io/REcP7w
00:51:11  * graydon1quit (Quit: Leaving.)
00:51:13  <piscisaureus_>^-- prefork server experiment
00:51:21  <piscisaureus_>(ignore the other 2 commits)
00:51:42  <piscisaureus_>now if igorzi was here we could have it benchmarked ...
01:35:41  <ryah>piscisaureus_: still kind of want to do threads
01:35:48  <ryah>:)
01:36:40  <piscisaureus_>this works for threads too
01:36:44  <piscisaureus_>ryah: ^
01:39:00  <ryah>piscisaureus_: can you give me the tl;dr summary of the change?
01:40:04  <ryah>uv_tcp_import() ?
01:40:28  <piscisaureus_>ryah: it's not a full-blown libuv thing. Libuv uses events instead of the completion port if the completion port can't be used (because the master process claimed it). Normal ipc is used to transfer a duplicated socket to the client, this is not implemented in libuv atm.
01:41:37  <piscisaureus_>ryah: uv_tcp_import creates an uv handle from a windows handle
01:43:00  <ryah>how does it use events instead of iocp?
01:43:13  <piscisaureus_>oh I forgot to add a relevant part
01:43:54  <CIA-75>libuv: Bert Belder prefork * rcfc5182 / (7 files in 3 dirs): Prefork server experiment - http://git.io/b2eZ2g
01:44:02  <piscisaureus_>ryah: ^- with cargo
01:45:15  <piscisaureus_>ryah: it uses events by setting the overlapped.hEvent to a valid event. Windows signals this event when the operation completes. We wait for this event to get signaled using RegisterWaitForSingleObject. In the wait callback the overlapped structure gets queued to the iocp "manually".
01:47:06  <ryah>you send the server over the pipe? (am i reading this correctly?)
01:47:12  <piscisaureus_>yes
01:47:14  <piscisaureus_>over stdin
01:47:39  <ryah>yeah would be interesting to get some benchs
01:47:54  <piscisaureus_>indeed
01:48:01  <ryah>the accepted sockets still use iocp?
01:48:05  <piscisaureus_>yes
01:48:13  <ryah>yeah
01:48:15  <ryah>this is cool
01:48:26  <piscisaureus_>the listening socket on the master process also uses iocp
01:51:32  <ryah>so..
01:51:56  <ryah>hm
01:52:09  <ryah>where does it wait for the accept to complete?
01:52:25  <piscisaureus_>ryah: eh?
01:52:44  <ryah>piscisaureus_: are there two threads?
01:52:49  <ryah>in the slave?
01:52:57  <piscisaureus_>ryah: there's a wait thread yeah
01:53:19  <piscisaureus_>RegisterWaitForSingleObject uses a special thread pool to wait for events
01:53:23  <ryah>how do you signal GetQueuedCompletionStatus that it's done?
01:54:22  <piscisaureus_>ryah: the RegisterWaitForSingleObject calls a callback in the wait thread. That callback uses PostQueuedCompletionStatus to put the overlapped in the iocp
01:54:36  <piscisaureus_>when that happens GetQueuedCompletionStatus wakes up
01:55:26  <piscisaureus_>iow, here: https://github.com/joyent/libuv/blob/cfc5182bd5f75c0271006cda9caffe22500e8a86/src/win/tcp.c#L231-242
01:55:47  <ryah>thanks
01:56:00  <ryah>my windows programming skills suck :/
01:56:06  <piscisaureus_>heh
01:56:10  <piscisaureus_>this is a complicated trick
01:56:15  <ryah>it's difficult for me to read - i have to look up each functin
01:56:30  <ryah>https://github.com/joyent/libuv/blob/cfc5182bd5f75c0271006cda9caffe22500e8a86/src/win/tcp.c#L286 <-- this one blocks?
01:56:42  <piscisaureus_>ryah: no
01:56:57  <piscisaureus_>ryah: accept is an overlapped operation. the kernel does that in the background
01:58:01  <ryah>oh wow
01:58:01  <ryah>https://github.com/joyent/libuv/blob/cfc5182bd5f75c0271006cda9caffe22500e8a86/src/win/tcp.c#L68
01:58:08  <ryah>so you just try - if it fails you emulate?
01:58:15  <ryah>no special casing ?
01:58:33  <ryah>will this work for other types of sockets?
01:58:34  <piscisaureus_>ryah: well, there's no special casing there
01:59:04  <piscisaureus_>the special casing is here: https://github.com/joyent/libuv/blob/cfc5182bd5f75c0271006cda9caffe22500e8a86/src/win/tcp.c#L275-284 and https://github.com/joyent/libuv/blob/cfc5182bd5f75c0271006cda9caffe22500e8a86/src/win/tcp.c#L304-310
01:59:31  <piscisaureus_>ryah: this can work for read and write as well
01:59:46  <ryah>sick
01:59:48  <piscisaureus_>(if we're interested)
02:00:21  <piscisaureus_>ryah: but it comes at the price of synchronizing with the wait thread every time
02:00:32  <piscisaureus_>I'd rather avoid it
02:00:33  <ryah>well let's measure it
02:00:41  <ryah>first this accept
02:00:51  <ryah>this seems promising
02:04:20  <ryah>http://ntotten.com/2011/08/nodejs-on-windows-azure/ <-- did you see this?
02:05:03  <piscisaureus_>Yes, I even tweeted that before you did
02:05:06  <piscisaureus_>muhahaha
02:05:37  <piscisaureus_>I hope it works well
02:05:53  <piscisaureus_>Maybe we should get an azure instance
02:08:29  <DrPizza>isn't there a macro to set the bottom bit on a handle
02:08:51  <piscisaureus_>*shrug*
02:08:59  <piscisaureus_>probably, probably not
02:09:05  <DrPizza>:p
02:09:23  * bnoordhuisis off to bed
02:09:23  <piscisaureus_>if we're going to do this iocp emulation at more points we should invent some clever macros for it
02:09:29  <ryah>bnoordhuis: night
02:09:36  <ryah>sleep tight
02:09:39  <ryah>:)
02:09:42  <bnoordhuis>thanks, you too :)
02:09:47  <piscisaureus_>bnoordhuis: groeten aan je chick
02:14:29  * bnoordhuisquit (Ping timeout: 252 seconds)
02:18:13  <ryah>is there a way to make MSVS highlight long lines?
02:18:24  <DrPizza>I don't think so, though there may be add-ins
02:18:30  <DrPizza>you can get it to show a margin, at least
02:18:38  <DrPizza>though again better with an add-in
02:19:20  <ryah>http://saraford.net/2004/11/15/guidelinesa-hidden-feature-for-visual-studio-editor/
02:19:31  <ryah>is it possible to do this via gyp?
02:19:34  <DrPizza>no
02:19:41  <DrPizza>gyp can't touch anything like this
02:19:51  <DrPizza>I don't think it will be able to even when they get user file support
02:20:19  <piscisaureus_>just distribute a .reg file?
02:21:13  <ryah>igor always sends me patches with long lines :)
02:21:28  <ryah>but i imagine that's because MSVS doesn't highlight like my editor
02:21:37  <DrPizza>or maybe he just has a big monitor
02:22:12  <piscisaureus_>the windows api makes long lines very common
02:22:17  <ryah>god intended source code to be in 80 columns, no matter the monitor size
02:22:33  <DrPizza>ryah: if he'd wanted that he'd make us still use punchcards
02:22:35  * rmustaccpart
02:23:06  <DrPizza>it's hard enough coping with 2-space indents
02:24:51  <piscisaureus_>hmm
02:25:06  <piscisaureus_>that registry setting doesn't work for me
02:25:13  <DrPizza>it's 2010 dude
02:25:18  <DrPizza>the world has probably changed since 2004
02:25:20  <DrPizza>no it isn't
02:25:21  <DrPizza>it's 2011
02:25:22  <DrPizza>WTF
02:25:32  <DrPizza>when the hell did that happen
02:25:50  <ryah>DrPizza: yep, it's been 2011 for a while now :)
02:25:59  <DrPizza>mind: blown
02:26:37  <ryah>google is down for me?
02:26:39  <ryah>strange
02:28:14  <piscisaureus_>not here
02:28:23  <DrPizza>ryah: http://www.bing.com/
02:28:59  <piscisaureus_>http://www.jeff.wilcox.name/2010/02/visualstudio2010guides/
02:29:02  <ryah>DrPizza: btw what's your opinin on win8 explorer?
02:29:12  <DrPizza>ryah: it hurts my brain
02:29:26  <DrPizza>I think it looks kind of ugly, I think it's way overblown
02:29:30  <DrPizza>but I haven't used it yet
02:29:35  <DrPizza>and from what I've heard of people using the leaked builds
02:29:37  <DrPizza>apparently it's really good
02:29:43  <DrPizza>which I just don't understand
02:29:53  <DrPizza>I'm by no means a ribbon-hater
02:30:02  <DrPizza>and think the ribbon implementation in office 2010 works really well
02:30:14  <DrPizza>(especially the "backstage" area, which sadly the built-in win32 ribbon lacks)
02:30:23  <DrPizza>but Office needs a ribbon because Office has about 50,000 features.
02:30:29  <DrPizza>Explorer? It barely does anything!
02:30:55  <DrPizza>but like I say
02:30:58  <piscisaureus_>I like the new ribbon very much
02:31:01  <DrPizza>everyone who's used it seems to really like it
02:31:02  <piscisaureus_>I think
02:31:06  <DrPizza>office 2010 style ribbon == very nice
02:31:13  <DrPizza>win32 style == kinda meh
02:31:15  <piscisaureus_>I mean "copy path", "command prompt here"
02:31:26  <piscisaureus_>^-- damn useful
02:31:28  <DrPizza>copy path is already trivial, not quite sure why it needs a button
02:31:38  <piscisaureus_>it's not trivial
02:31:41  <piscisaureus_>how do you copy a path
02:31:46  <DrPizza>alt-d, ctrl-c
02:32:04  <piscisaureus_>DrPizza: that's the path without the file name
02:32:12  <DrPizza>yes you said path not filename!
02:32:19  <DrPizza>:)
02:32:27  <piscisaureus_>I mean the filename w/ full path
02:32:57  <piscisaureus_>But there's some wft stuff as well
02:33:02  <piscisaureus_>I mean. Fax?
02:33:06  <piscisaureus_>Burn to cd?
02:33:08  <DrPizza>lol I didn't notice that
02:33:48  <piscisaureus_>I wonder where the "send by pigeon" button is
02:34:57  <DrPizza>piscisaureus_: hmm, in the gyp file, did you have to specify the libraries: ws2_32.lib bit?
02:35:07  <DrPizza>and the SubSystem: 1 bit
02:35:19  <piscisaureus_>DrPizza: I just copied that from run-tests
02:35:26  <DrPizza>oh wait, maybe I didn't put the subsystem into uv's common.gypi
02:35:26  <DrPizza>ah
02:35:35  <piscisaureus_>the subsystem bit seemingly has no effect
02:35:46  <piscisaureus_>it's still not added as a console app
02:35:54  <DrPizza>yeah, there's a bug in gyp
02:37:14  <DrPizza>I think
02:37:16  <DrPizza>oh hmm
02:37:21  <DrPizza>maybe it's just that my changes aren't there
02:37:48  <DrPizza>I know there was some oddness
02:38:26  <DrPizza>~maybe~ I just never pushed my commits to my repo
02:38:58  <DrPizza>all these things, and more, are possible
02:39:07  <DrPizza>ryah: did you make any progress with your green threads?
02:41:05  <DrPizza>piscisaureus_: https://github.com/DrPizza/node/blob/upstream_master/common.gypi#L91
02:41:18  <DrPizza>piscisaureus_: with that in common.gypi, it should do the right thing
02:41:25  <DrPizza>piscisaureus_: tbh, node and uv should have an identical common.gypi
02:41:50  <piscisaureus_>what is the difference between gyp and gypi?
02:42:11  <DrPizza>I don't think anything, particularly, it just seems to be convention to use .gypi for files that are only included and have no targets of their own
02:42:16  <DrPizza>I don't know if gyp actually enforces tht
02:42:17  <DrPizza>that
02:43:24  <piscisaureus_>ah
02:43:53  <DrPizza>piscisaureus_: one of these days I will test a .dll build
02:44:22  <DrPizza>piscisaureus_: the way the .gyp files are set, it should be possible to change the library type at the top level and produce DLLs instead
02:44:38  <piscisaureus_>DrPizza: one day we will need an import lib for the uv parts of node
02:44:54  <DrPizza>how do you mean?
02:45:14  <piscisaureus_>So we can give people an import lib for their compiled extensions and still link uv statically into node
02:45:20  <piscisaureus_>DrPizza: is that even possible?
02:45:25  <DrPizza>hmmm
02:46:17  <DrPizza>so a lib containing the uv functions?
02:46:32  <ryah>DrPizza: no progress yet - got distracted by node knockout
02:46:38  <ryah>DrPizza: i'm calling them "domains" now
02:46:42  <DrPizza>oh yeah
02:46:47  <DrPizza>I couldn't remember the new name
02:46:54  <ryah>people didn't like green threads
02:47:35  <piscisaureus_>yeah - sorry
02:47:42  <piscisaureus_>I don't mind it
02:47:51  <piscisaureus_>but you'll confuse people
02:48:11  <piscisaureus_>but I think in #libuv it's safe to say green threads
02:48:30  <ryah>well - my boss didn't like it
02:48:41  <piscisaureus_>ryah: btw windows doesn't lock by default
02:48:51  <ryah>no?
02:48:55  <piscisaureus_>it's just a matter of which flags you use on CreateFile
02:49:01  <DrPizza>if you pass 0 it doesn't allow sharing
02:49:10  <piscisaureus_>oh, that's true
02:49:11  <DrPizza>so I guess you could say it's "by default"
02:49:22  <DrPizza>but it's a parameter you have to explicitly set
02:49:37  <DrPizza>so it's something that people have to consider and then choose what to do
02:50:10  <DrPizza>I suspect that for libuv/node we generally what FILE_SHARE_READ/WRITE/DELETE, and to leave it up to byte range locking to effect actual locks
02:50:15  <DrPizza>but I don't know for sure
02:50:25  <piscisaureus_>I think so too
02:50:30  <DrPizza>I think the discussion on the mailing list is a crock of shit
02:50:36  <DrPizza>the idea that you can't do file I/O without flock
02:50:45  <DrPizza>of course you can, just funnel everything through one node process DONE.
03:00:01  <ryah>yes
03:00:39  <DrPizza>now I'm not saying that it might not be nice to have it as a convenience
03:01:02  <DrPizza>but someone was saying, essentially, "oh my god, without this file I/O is impossible!"
03:08:13  <piscisaureus_>http://flite-labs.no.de/
03:08:18  <piscisaureus_>^-- too bad it doesn't work
03:08:23  <piscisaureus_>one of the most original ideas
03:18:13  <DrPizza>that's... odd
03:18:52  <piscisaureus_>odd?
03:19:16  <DrPizza>oh my IRC client was being misleading
03:19:40  <DrPizza>it was showing an invite in this channel, but it actualyl happened on another network
03:29:14  <DrPizza>piscisaureus_: I don't get it
03:29:17  <DrPizza>it just shows me a QR code
03:29:19  <DrPizza>then what?
03:29:36  <piscisaureus_>DrPizza: it doesn't really work
03:29:54  <piscisaureus_>the idea is to use the motion sensor in your phone as a controller for a game in the browser
03:29:56  <piscisaureus_>on your pc
03:30:02  <piscisaureus_>I think you need an iphone for it
03:30:09  <piscisaureus_>it didn't work with my android phone
03:30:12  <DrPizza>oh interesting
03:30:21  <DrPizza>well I doubt it will work on my Mango phone
03:31:29  <piscisaureus_>I think it's more creative thinking than all the scorched earth clones and shooters
03:32:50  <piscisaureus_>btw - I think this was the idea but it's a bit of a guess
03:33:03  <piscisaureus_>of not I will do this for next years nko :-)
03:33:09  <DrPizza>hm, yes, it mentions a deviceorientation capable device
03:33:29  <DrPizza>which I guess Mango is not
03:33:35  <DrPizza>probably some Safari thing
03:33:44  <piscisaureus_>what were you thinking?
03:33:47  <piscisaureus_>c'mon
03:33:51  <piscisaureus_>a windows phone?
03:34:00  <DrPizza>I am totally hot for Windows Phone
03:34:11  <DrPizza>I find it waaaaay less annoying than iOS
03:35:04  <piscisaureus_>must be lonely at the top
03:35:30  <piscisaureus_>I bet you got it for free
03:35:40  <DrPizza>some free, some paid
03:40:19  <piscisaureus_>http://en.wikipedia.org/wiki/Tetraphobia
03:41:12  <piscisaureus_>Scrabble bonus points: Hexakosioihexekontahexaphobia
03:42:19  <CIA-75>libuv: Ryan Dahl master * r5d524ff / (src/unix/fs.c test/test-fs.c): unix passes test fs_file_async - http://git.io/25FA3w
03:42:39  <ryah>just a few more to go :)
03:42:45  <ryah>then we're pthread-win32 free
03:42:54  <piscisaureus_>ryah++
03:42:58  <piscisaureus_>I'd love that
03:43:38  <ryah>thanks should go to igor who's done a great job with the uv_fs_ stuff
03:43:54  <ryah>these tests are beautiful
03:44:15  <piscisaureus_>igorzi's really a machine
03:44:37  <ryah>yes
03:44:48  <ryah>i suspect he is actually a whole team of people ;)
03:45:00  <piscisaureus_>are you serious?
03:45:07  <ryah>no :)
03:45:16  <ryah>i think he's just really good
03:45:36  <piscisaureus_>he seems to be really focused
03:50:25  <CIA-75>libuv: Ryan Dahl master * rcf08c16 / test/test-fs.c : Use Windows compatibile flags - http://git.io/T46wlg
04:05:12  <ryah>we really need a streaming readdir
04:05:14  <ryah>at some point
04:05:31  <DrPizza>also nice would be ReadDirectoryChangesW wrapper
04:05:37  <DrPizza>but I have NFI how you might do that on unix
04:06:42  <piscisaureus_>why a streaming readdir?
04:09:08  <DrPizza>ryah: that invokes the callback for each file?
04:09:23  <piscisaureus_>ryah: I wonder if that is worth the extra synchronization overhead
04:10:15  <piscisaureus_>maybe it's beneficial when the number of files is very high
04:10:27  <DrPizza>piscisaureus_: are there not possibly other advantages though, such as allowing better interleaving of work, so that (e.g.) enumerating a large directory does not tie up the loop?
04:10:37  <DrPizza>s/other//
04:10:59  <piscisaureus_>so?
04:11:15  <DrPizza>latency often matters, it's not just a matter of throughput
04:11:32  <piscisaureus_>DrPizza: you mean that the callback takes a long time
04:11:33  <piscisaureus_>>
04:11:34  <piscisaureus_>?
04:14:48  <DrPizza>piscisaureus_: yes, since I don't think there's any kind of "yield" provision
04:14:58  <DrPizza>piscisaureus_: even the readdir() loop may take a long time
04:15:16  <DrPizza>though should be on a thread pool
04:15:18  <piscisaureus_>DrPizza: but the readdir loop runs in the thread pool
04:15:28  <DrPizza>but the callback does not
04:15:31  <piscisaureus_>just add WT_EXECUTELONGFUNCTION and all is fine :_)
04:15:46  <DrPizza>it's never been clear to me what those hints really do
04:16:05  <piscisaureus_>DrPizza: look at the stuff I sent you the other day
04:16:13  <DrPizza>oh did it exist back then?>
04:16:17  <piscisaureus_>yes sir
04:16:22  <DrPizza>ok will do
04:21:12  <DrPizza>piscisaureus_: but let's say I need to do 0.2ms of processing per entry, and the dir has 5000 entries; that means my callback ties up the loop (and not a threadpool thread!) for a second at a time.. that seems rather unfriendly if that loop also has other work to do.
04:21:26  <DrPizza>and if I never test my program on large directories, I might never notice that there's an issue
04:21:52  <DrPizza>whereas if I have a streaming readdir that calls one callback per dentry, I can't monopolize the loop in the same way
04:21:53  <piscisaureus_>2ms srsly
04:22:01  <piscisaureus_>you're on a 268?
04:22:04  <DrPizza>0.2
04:22:19  <piscisaureus_>ok you're on a 468?
04:22:22  <DrPizza>haha
04:23:19  <DrPizza>piscisaureus_: maybe I am doing e.g. some XML transformation or something
04:23:31  <DrPizza>nice and slow.
04:23:37  <DrPizza>but very ~enterprise~
04:24:37  <DrPizza>I hear pquerna likes XML a lot.
04:37:22  <ryah>eio_readdir is pretty shitty
04:38:23  <piscisaureus_>good luck with it :-)
04:38:24  <piscisaureus_>goodbye
04:42:51  * piscisaureus_quit (Ping timeout: 258 seconds)
05:09:28  <CIA-75>libuv: Ryan Dahl master * r0e81406 / (include/uv-unix.h src/unix/fs.c test/test-fs.c): unix fs_async_dir works - http://git.io/Jxow3g
05:09:35  <ryah>whew
05:12:26  <ryah>[% 100|+ 53|- 3]: Done.
05:57:43  <CIA-75>libuv: Ryan Dahl master * r1a4ead5 / (include/uv-unix.h include/uv.h src/unix/fs.c): unix: implement uv_queue_work - http://git.io/tsSlFQ
06:26:14  * mralephjoined
07:43:08  * mralephquit (Quit: Leaving.)
07:54:21  <CIA-75>libuv: Ryan Dahl master * r894c005 / (src/unix/fs.c test/test-fs.c): unix: fix fs_async_sendfile - http://git.io/RXs7MQ
07:55:07  <CIA-75>libuv: Ryan Dahl master * rd20233c / test/test-fs.c : Fix long lines - http://git.io/aL87qQ
07:59:15  <CIA-75>libuv: Ryan Dahl master * rdbc1cb0 / (191 files in 2 dirs): Remove pthread-win32 - http://git.io/glWjbg
08:16:15  * mralephjoined
08:37:12  <CIA-75>libuv: Ryan Dahl master * ra6ed175 / (src/unix/fs.c test/test-fs.c): unix: implement uv_fs_lstat - http://git.io/7F-pfw
08:37:26  <CIA-75>node: Ryan Dahl master * r1088638 / (196 files in 6 dirs): upgrade libuv to a6ed175 - http://git.io/ed9yhg
08:37:27  <CIA-75>node: Igor Zinkovsky master * rbce41fa / (10 files in 3 dirs):
08:37:27  <CIA-75>node: Use new uv_fs_ apis
08:37:27  <CIA-75>node: This will cause master to be unstable for a while as we replace existing eio
08:37:27  <CIA-75>node: calls with uv_fs calls. - http://git.io/Rclu8Q
08:40:14  * mralephquit (Quit: Leaving.)
08:54:08  <CIA-75>libuv: Ryan Dahl master * rca11711 / src/win/fs.c : win: stub out missing uv_fs functions - http://git.io/fWCcFQ
09:24:55  <ryah>'node.exe': Loaded 'C:\Windows\System32\nlaapi.dll', Cannot find or open the PDB file
09:24:58  <ryah>'node.exe': Loaded 'C:\Windows\System32\NapiNSP.dll', Cannot find or open the PDB file
09:25:01  <ryah>'node.exe': Loaded 'C:\Windows\System32\pnrpnsp.dll', Cannot find or open the PDB file
09:25:05  <ryah>'node.exe': Loaded 'C:\Windows\System32\winrnr.dll', Cannot find or open the PDB file
09:25:08  <ryah>'node.exe': Loaded 'C:\Windows\System32\cryptbase.dll', Cannot find or open the PDB file
09:25:12  <ryah>The thread 'Win32 Thread' (0xb84) has exited with code 0 (0x0).
09:25:14  <ryah>The thread 'Win32 Thread' (0xc28) has exited with code 0 (0x0).
09:25:17  <ryah>The program '[2872] node.exe: Native' has exited with code 0 (0x0).
09:25:18  <ryah>DrPizza: you can't possibly be awake at this ungodly hour?
09:29:42  <CIA-75>node: Ryan Dahl master * r2823ab4 / deps/uv/src/win/fs.c : Upgrade libuv to ca11711 - http://git.io/Lq_QJA
09:29:44  <CIA-75>node: Ryan Dahl master * rb68c6ba / deps/v8/tools/gyp/v8.gyp : Fix Windows build - http://git.io/uSVTAg
09:38:47  <ryah>nevermind i guess those aren't errors
10:16:18  <CIA-75>libuv: Jeroen Janssen master * r2af955d / src/unix/fs.c :
10:16:18  <CIA-75>libuv: Fix posix dirent usage
10:16:18  <CIA-75>libuv: Fixes #161 - http://git.io/si3MHQ
10:31:21  * bnoordhuisjoined
10:50:29  <CIA-75>libuv: Ben Noordhuis master * r0ba44cf / src/ev/config_linux.h : ev: improve feature detection on linux - http://git.io/CzEOxQ
11:10:59  <CIA-75>node: Ben Noordhuis master * rfe4b742 / (deps/uv/src/ev/config_linux.h deps/uv/src/unix/fs.c): uv: upgrade to 0ba44cf - http://git.io/ZT0bPQ
11:44:39  * piscisaureus_joined
11:44:45  * piscisaureus_changed nick to piscisaureus
11:55:44  <bnoordhuis>piscisaureus: http://lwn.net/Articles/456798/ <- seen this?
11:56:05  <piscisaureus>I heard about it
11:56:12  <piscisaureus>have not been reading lwn tho
11:56:21  <bnoordhuis>fucking annoying
11:56:33  <piscisaureus>why
11:56:38  <bnoordhuis>diginotar is the ca that signs the certs for dutch government websites
11:56:46  <piscisaureus>bnoordhuis: I tried to confirm that
11:56:49  <piscisaureus>but
11:57:07  <piscisaureus>I removed the DigiNotar certificate from firefox
11:57:16  <piscisaureus>but it doesn't make any difference
11:57:27  <bnoordhuis>digid?
11:57:29  <piscisaureus>e.g. try https://as.digid.nl/
11:57:44  <piscisaureus>Maybe it's just a bug in firefox
11:57:49  <bnoordhuis>C=NL; O=DigiNotar B.V.; CN=DigiNotar PKIoverheid CA Overheid en Bedrijven
11:58:29  <bnoordhuis>but weird that firefox doesn't complain, yes
11:59:02  <bnoordhuis>oh sweet
11:59:06  <piscisaureus>bentkus: ?
11:59:19  <bnoordhuis>you can't remove built-in root certs, they come back when you restart ff...
11:59:37  <piscisaureus>not even when you restart
11:59:42  <piscisaureus>even when you open the box again
11:59:47  <bnoordhuis>ffs
11:59:51  <bnoordhuis>stab stab
11:59:54  <piscisaureus>but this is what firefox itself suggested
12:00:02  <piscisaureus>so it is *supposed* to work
12:01:04  <piscisaureus>http://support.mozilla.com/en-US/kb/deleting-diginotar-ca-cert
12:02:12  <piscisaureus>let me file a bugzilla bug
12:08:01  <piscisaureus>https://bugzilla.mozilla.org/show_bug.cgi?id=683132
12:11:07  <bnoordhuis>good work
12:11:20  <bnoordhuis>now let's wait three months for the 'works for me' or 'duplicate'
12:16:00  <piscisaureus>I filed a bug once
12:16:08  <piscisaureus>they fixed that very quickly
12:17:04  <piscisaureus>it was https://bugzilla.mozilla.org/show_bug.cgi?id=498993
12:22:06  <piscisaureus>bnoordhuis: ah
12:22:14  <piscisaureus>got a reply already
12:33:51  <piscisaureus>bnoordhuis: man http://webwereld.nl/nieuws/107756/diginotar-nl-staat-al-jaren-open-voor-hackers.html
12:33:59  <piscisaureus>wtf
13:04:45  <DrPizza>ryah: those warnings are harmless, though you can point MSVS at a Microsoft server to enable it to fetch pdb files for Windows components if you choose
13:05:45  <bnoordhuis>https://www.diginotar.nl/Portals/0/Extrance.txt <- hah, untrusted
13:08:50  <bnoordhuis>piscisaureus: that bug report shows how broken ssl really is
13:09:24  <bnoordhuis>i don't trust diginotar so i remove their root cert
13:09:43  <bnoordhuis>but since they're also an intermediate, other certs issued by them keep on working
13:09:55  <piscisaureus>heh
13:09:59  <piscisaureus>true
13:13:12  <piscisaureus>bnoordhuis: revoking all digninotar certificates is pretty chauvinistic of those yanks imho
13:13:12  <piscisaureus>if verisign made such a mistake they would not even consider removing one cert
13:13:44  <DrPizza>I think the real problem is that diginotar appears not to have been very forthcoming about what happened.
13:14:24  <bnoordhuis>i don't mind diginotar's cert being revoked, serves them right for being incompetent
13:14:37  <piscisaureus>I fully agree
13:14:45  <bnoordhuis>but yes, what if verisign or thawte made a similar error?
13:14:59  <bnoordhuis>s/error/mistake/
13:17:23  <DrPizza>I would like to hope that if evidence emerged that they had been hacked for years, they too would be blacklisted
13:18:12  <CIA-75>node: AJ ONeal master * r8039086 / doc/api/querystring.markdown : docs: document querystring behavior for arrays and unassigned parameters - http://git.io/AUjEvw
15:40:00  * isaacsjoined
15:47:29  <piscisaureus>bnoordhuisL hey
15:48:31  <piscisaureus>bnoordhuis: hey
15:48:38  <bnoordhuis>piscisaureus: ho
15:49:06  <piscisaureus>bnoordhuis: I put a microsd card in a usb card reader. How do I figure out the device name (under linux)?
15:49:40  <bnoordhuis>piscisaureus: dmesg | tail
15:50:09  <piscisaureus>ah. sdc :-)
15:50:25  <piscisaureus>I figured it would be something like /dev/usbsomehing
15:50:31  <piscisaureus>or /dev/sr...
15:51:43  <piscisaureus>but sdc that seems weird
15:53:12  <CIA-75>node: isaacs master * r6b6f2b1 / src/node_root_certs.h :
15:53:13  <CIA-75>node: Fixes #1610 Remove DigiNotar CA from trusted list
15:53:13  <CIA-75>node: Details:
15:53:13  <CIA-75>node: https://threatpost.com/en_us/blogs/attackers-obtain-valid-cert-google-domains-mozilla-moves-revoke-it-082911
15:53:13  <CIA-75>node: http://www.coriolis-systems.com/blog/2011/08/diginotar-certificate-security.php - http://git.io/ttzxXw
15:53:44  <CIA-75>node: isaacs v0.4 * ref27d56 / src/node_root_certs.h :
15:53:44  <CIA-75>node: Fixes #1610 Remove DigiNotar CA from trusted list
15:53:44  <CIA-75>node: Details:
15:53:44  <CIA-75>node: https://threatpost.com/en_us/blogs/attackers-obtain-valid-cert-google-domains-mozilla-moves-revoke-it-082911
15:53:45  <CIA-75>node: http://www.coriolis-systems.com/blog/2011/08/diginotar-certificate-security.php - http://git.io/sB9N1Q
15:57:19  <bnoordhuis>piscisaureus: usb storage probably piggybacks on the scsi infrastructure
15:57:37  <bnoordhuis>but that's conjecture, i don't know that part of the kernel too well
16:14:54  <DrPizza>everything is SCSI these days
16:38:00  <ryah>we should have a method of autoimporting the cert list from chromium
16:41:08  <ryah>bnoordhuis: fyi i usually strip the Werror
16:41:17  <ryah>from v8
16:41:47  <bnoordhuis>ryah: good, let's make it a rule
16:42:34  <bnoordhuis>re auto-importing cert list: does chromium generate the list with that same perl script mozilla uses?
16:43:13  <ryah>*shrug*
16:44:57  <ryah>DrPizza: http://codereview.chromium.org/7806011
16:45:00  <ryah>DrPizza: they took it
16:45:07  <ryah>i find this strange too
16:45:22  * rmustaccjoined
16:49:30  <CIA-75>node: Ryan Dahl master * rd8f7a86 / (3 files in 2 dirs): Strip V8 -Werror - http://git.io/JDVn2g
16:49:36  <ryah>^- bnoordhuis
16:49:43  <bnoordhuis>good :)
16:50:11  <ryah>i feel like they should only have -Werror in build/standalone.gypi
16:50:22  <ryah>it's very annoying
16:53:36  <ryah>bnoordhuis: i believe i've brokne about 1,000,000 tests last night
16:53:58  <bnoordhuis>at the very least you broke the build :)
16:54:10  <ryah>oh - is it okay now?
16:54:17  <bnoordhuis>yep, that patch from japj fixed it
16:54:20  <ryah>k
16:54:37  <ryah>i'll fix about 500,000 of the broken tests today
16:54:44  <ryah>the remaining will be difficult
16:54:51  <ryah>but we're off pthread-win32
16:54:57  <ryah>and windows doesnt depend on eio
16:55:22  <bnoordhuis>sounds good
17:01:34  <ryah>piscisaureus: still on target for multiplicity?
17:01:45  <piscisaureus>yes
17:01:47  <piscisaureus>well
17:02:00  <piscisaureus>I'm not actually doing it
17:02:07  <piscisaureus>just making sure that the main loop works
17:02:22  <piscisaureus>and update the function signatures
17:02:43  <piscisaureus>so we can move on with our lives
17:02:47  <ryah>yes
17:02:48  <ryah>:)
17:02:57  <ryah>racing against the clock
17:04:15  <DrPizza>ryah: how odd
17:04:26  <DrPizza>ryah: did you need to make teh gyp change to make things actually work?
17:04:59  <DrPizza>because I'm not even sure how 0.5.5 could build if it actually needs that modification
17:10:29  <piscisaureus>I wonder why v8 needs -lwinmm
17:10:37  <DrPizza>probably adjusts timers
17:10:57  <DrPizza>that's the normal reason why something that has no obvious media usage links winmm
17:12:14  <piscisaureus>hmm
17:12:26  <piscisaureus>I can't think of any winmm export that v8 might use
17:14:22  <DrPizza>timeGetTime
17:15:02  <DrPizza>that's the only thing node.exe imports from winmm
17:15:05  <DrPizza>which is dumb
17:15:14  <piscisaureus>Why don't they just use GetTickCount?
17:15:16  <DrPizza>it's not even increasing precision
17:15:28  <DrPizza>I have no idea
17:15:51  <DrPizza>if it were using timeBeginPeriod to increase teh clock resolution I could understand that
17:15:56  <DrPizza>but using timeGetTime makes no sense
17:17:53  <piscisaureus>http://blogs.msdn.com/b/larryosterman/archive/2009/09/02/what-s-the-difference-between-gettickcount-and-timegettime.aspx
17:19:02  <DrPizza>how fucking weird
17:20:37  <DrPizza>the whole battery life argument is a fucking scam
17:20:40  <DrPizza>use a tickless kernel ffs
17:23:59  * brsonjoined
17:25:40  * graydonjoined
17:26:05  <ryah>DrPizza: yeah - it wasn't building without ws2_32
17:26:13  <DrPizza>wat
17:26:13  <ryah>got link errors
17:26:20  <DrPizza>then something has changed
17:26:34  <DrPizza>something weird must be going on
17:26:35  <ryah>i upgraded v8 yestreday - they did a bunch of work on gyp files
17:26:39  <DrPizza>hmmm
17:26:59  <DrPizza>that still seems strange to me, since node.exe should still be pulling in ws2_32 due to libuv
17:27:36  <ryah>git show da00ff4999bd26e2c17df1f84d090d3b3296e043 -- deps/v8/build deps/v8/tools/gyp
17:27:55  <ryah>it might be because of the mksnapshot
17:28:02  <DrPizza>oh!
17:28:03  <DrPizza>yes
17:28:13  <DrPizza>I forgot that v8 produces its own .exe files
17:45:02  * brsonquit (Ping timeout: 264 seconds)
17:56:37  <bnoordhuis>ryah piscisaureus: conference call?
17:59:44  <piscisaureus>yes
17:59:46  <piscisaureus>calling in
18:03:23  * arlolrajoined
18:04:00  * arlolrapart
18:04:34  <bnoordhuis>ryah: hurry!
18:04:38  <piscisaureus>ryah: quick quick
18:07:19  <rmustacc>Want me to ping him?
18:07:25  <piscisaureus>yes
18:07:29  <rmustacc>He got caught up in a v8 debugging session.
18:07:31  <piscisaureus>rmustacc: do that!
18:07:32  <rmustacc>On it.
18:08:32  <ryah>hey
18:08:37  <ryah>one sec
18:09:39  <piscisaureus>ryah: on the phone
18:09:52  <ryah>ohokay
18:09:57  <ryah>with ben?
18:10:00  <bnoordhuis>yep
18:10:05  <ryah>cn you invite me
18:10:06  <piscisaureus>ryah: weekly call
18:10:07  <bnoordhuis>and msft
18:10:10  <piscisaureus>+18883203585
18:10:13  <ryah>oh shit right
18:10:15  <piscisaureus>36815906
18:10:50  <pquerna>ps, try google+ for standups/calls.... we've been using it on our scrums, way better than phone
18:27:58  <bnoordhuis>sorry, phone's out of juice
18:30:25  <bnoordhuis>pquerna: we usually skype but the msft thing is old fashioned POTS
18:52:05  <bnoordhuis>/bin/sh: ./tools/gyp_node: not found
18:52:07  <bnoordhuis>*sigh*
18:52:28  <bnoordhuis>(on the second make)
19:00:53  <bnoordhuis>but i <3 how gyp compiles with -Wall -Wextra
19:06:34  <CIA-75>node: koichik master * r6f60683 / (4 files in 4 dirs):
19:06:34  <CIA-75>node: tls: x509 certificate subject parsing fail
19:06:34  <CIA-75>node: Fixes #1568. - http://git.io/TV-HfQ
19:13:28  <bentkus>piscisaureus: you meant to call someone else?
19:22:38  * mralephjoined
19:23:51  <ryah>mraleph:
19:23:57  <ryah>i have a problem
19:24:03  <ryah>https://gist.github.com/1181777
19:24:11  <ryah>^-- what do you think about this
19:25:26  <ryah>chrome doesn't seem to crash on it but node does
19:28:14  <mraleph>chrome does not crash?
19:29:07  <ryah>no
19:29:30  <ryah>bnoordhuis: we need to stop adding buffer methods - TypedArrays is the only future
19:29:50  <mraleph>well it says: "script on the page used too much memory. reload to enable scripts again"
19:30:01  <bnoordhuis>ryah: fine by me
19:30:42  <bnoordhuis>*with
19:31:15  <ryah>mraleph: oh - i see that too
19:31:18  <ryah>mraleph: nevermind
19:31:22  <mraleph>ryah: you can do like them http://codesearch.google.com/#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/bindings/v8/V8DOMWindowShell.cpp&exact_package=chromium&q=IgnoreOutOfMemory&type=cs&l=291
19:31:52  <mraleph>ryah: but OOM recovery is not very stable. basically you have to through v8 instance away
19:31:58  <mraleph>*throw
19:32:24  <ryah>mraleph: why is it getting that? it doesn't seem like its near the heap limit
19:33:19  <mraleph>hmm. does not it try to allocate L*2^100 at the end?
19:33:41  <mraleph>ah
19:33:46  <mraleph>I am stupid
19:34:01  <mraleph>it's probably just the limit on the string length that kicks in
19:34:12  <mraleph>obviously it allocates almost nothing
19:35:25  <ryah>what's the string length limit
19:36:23  <mraleph>http://codesearch.google.com/#W9JxUuHYyMg/trunk/src/heap.cc&q=String::kMaxLength&type=cs&l=2552
19:36:25  <mraleph> static const int kMaxLength = (1 << (32 - 2)) - 1;
19:46:29  <ryah>thanks
20:11:15  <bnoordhuis>/usr/bin/ld.bfd.real: cannot find -lstdc++
20:11:17  <bnoordhuis>stab stab stab
20:19:54  <ryah>bnoordhuis: i bet it's the arch
20:20:15  <bnoordhuis>yep
20:20:30  <bnoordhuis>i can get it to compile properly when i strip out the -m32 switches
20:20:44  <bnoordhuis>mraleph: question: why does v8 compile with -fdata-sections -ffunction-sections?
20:32:22  <bnoordhuis>./node: error while loading shared libraries: libssl.so.1.1.0: cannot open shared object file: No such file or directory
20:32:24  * bnoordhuissoldiers on
20:34:28  <mraleph>bnoordhuis: dunno
20:35:49  <bnoordhuis>mraleph: remove it? i don't think it speeds up anything on x86 and it makes the binaries bigger
20:36:16  <mraleph>hmm
20:36:35  <mraleph>maybe it does some magic
20:37:05  <mraleph>there should be a reasonfor that
20:37:22  <bnoordhuis>well, let me know if you ever find out what it is, i'd be curious
20:40:02  <ryah>bnoordhuis: probably if you svn blame SConstruct you can fine out
20:41:53  <bnoordhuis>This makes --gc-sections perform better, as the GC operates on whole sections. This makes a worthwhile binary size decrease in the Chromium Linux build.
20:41:53  <ryah>http://code.google.com/p/v8/source/detail?spec=svn1598&r=1598
20:42:03  <bnoordhuis>show me the numbers, deanm!
20:42:23  <rmustacc>bnoordhuis: It appears to make each function into its own ELF section.
20:42:34  <rmustacc>Assuming the target supports it.
20:42:44  <ryah>deanm is the guy who wrote our typedarray stuff btw
20:43:40  <rmustacc>The gcc man page mentions that it can be used to 'improve locality of reference in the instruction space' assuming the linker supports it.
20:43:58  <bnoordhuis>rmustacc: i doubt it actually helps
20:44:07  <rmustacc>Oh I doubt it does either.
20:44:09  <bnoordhuis>i'll play around with it when i have some time to kill
20:44:24  <rmustacc>Especially since the systems they mention are the old Solaris 2/SPARC and AIX.
21:42:40  * brsonjoined
22:08:18  <bnoordhuis>ryah: https://github.com/joyent/node/issues/1609#issuecomment-1945327
22:44:10  * ryahquit (*.net *.split)
22:44:10  * jmp0quit (*.net *.split)
22:47:36  * mralephquit (Quit: Leaving.)
22:54:27  * ryahjoined
22:54:27  * jmp0joined
22:54:29  * DrPizzaquit (Excess Flood)
22:54:33  * DrPizzajoined
22:57:48  <piscisaureus>is there a shortcut for "go to next message" in msvs?
23:00:53  <DrPizza>that is a good question
23:00:56  <DrPizza>that would be quite handy
23:01:01  <DrPizza>I do not know of one
23:03:20  * ryahquit (*.net *.split)
23:03:21  * jmp0quit (*.net *.split)
23:05:23  * ryahjoined
23:05:23  * jmp0joined
23:05:34  * DrPizzaquit (Excess Flood)
23:05:34  * DrPizza_joined
23:06:55  <bnoordhuis>http://www.youtube.com/watch?v=Ek47x0wUeg4 <- feel what you want, kristine w
23:07:03  <bnoordhuis>1994...
23:07:05  <bnoordhuis>i feel old now
23:07:07  * DrPizza_changed nick to DrPizza
23:12:14  <piscisaureus>DrPizza: ok it's f4
23:12:21  <piscisaureus>btw multiplicity is so damn annoying
23:12:24  <DrPizza>heh