Update TODO.win32
authorBert Belder <bertbelder@gmail.com>
Mon, 20 Dec 2010 22:32:04 +0000 (23:32 +0100)
committerBert Belder <bertbelder@gmail.com>
Mon, 20 Dec 2010 22:51:33 +0000 (23:51 +0100)
TODO.win32

index 24e08cf..54162c8 100644 (file)
@@ -4,9 +4,15 @@
   Like getuid, getgid, setgid, kill etc.\r
 \r
 - Implement missing `net` methods\r
-  A pressing issue is: how do we work with windows api functions that are not utf8 aware?\r
-  E.g. getaddrinfo() is ansi-only; GetAddrInfoW is utf16-only. Can we get utf16 straight out of v8?\r
-  Are unix sockets similar to windows named pipes? If so, should they be supported? -> currently: no. Complication: they block.\r
+  Are unix sockets similar to windows named pipes? If so, should they be \r
+  supported? -> currently: no. Complication: they block.\r
+\r
+- New libev backend\r
+  The current libev backend supports sockets only. This complicates stuff like\r
+  child processes, stdio. Best would be if node_net switched from exposing\r
+  readyness notifications to using completion notifications, so on windows we\r
+  could use IOCP for sockets. Experts tell me that is really the fastest way\r
+  to work with sockets on windows.\r
 \r
 - Child process issues\r
   * Communication between parent and child is slow; it uses a socketpair\r
@@ -16,7 +22,7 @@
     On linux the pid is available immediately because fork() doesn't\r
     block; on windows a libeio thread is used to call CreateProcess.\r
     So this can't really be fixed, but it could be worked around by adding a\r
-    'spawn' or 'pid' method.\r
+    'spawn' or 'pid' event.\r
   * kill() doesn't work when the pid is not available yet. All the plumbing\r
     is there to make it work, but lib/child_process.js just doesn't call\r
     ChildProcess::Kill() as long as the pid is not known.\r
@@ -40,7 +46,8 @@
 - Skip/fix tests that can never pass on windows\r
 \r
 - Find a solution for fs.symlink / fs.lstat / fs.chown\r
-  Windows has different symlink types: file symlinks (vista+), directory symlinks (vista+), junction points (xp+) \r
+  Windows has different symlink types: file symlinks (vista+),\r
+  directory symlinks (vista+), junction points (xp+) \r
 \r
 - Handle _open_osfhandle failures\r
   E.g. currently we're using the construct _open_osfhandle(socket/open/accept(...)).\r
@@ -49,7 +56,7 @@
   If _open_osfhandle fails but socket doesn't, a stray handle is left open. It should be fixed.\r
 \r
 - Check error number mappings.\r
-  Winsock errnos are sometimes different.\r
+  Winsock errnos are sometimes different. Subtracting WSABASEERR from errnos works in most cases.\r
 \r
 - Think about `make install`\r
 \r
 - Make (open?)SSL work\r
 \r
 - Support using shared libs (libeio, v8, c-ares)\r
-  Need to link with with a stub library. Libraries should use `dllexport`, headers must have `dllimport`.\r
+  Need to link with with a stub library. Libraries should use `dllexport`,\r
+  headers must have `dllimport`.\r
 \r
 - V8: push MINGW32 build fixes upstream\r
+  (mostly done, V8 3.0.0 introduces some new issues)\r
 \r
 - Work with the V8 team to get the stack corruption bug fixed\r
+  (fixed in 3.0.0)\r
 \r
 - Work around missing pread/pwrite more elegantly\r
   Currently it's exported from libeio, while it wasn't intended to be exported.\r