0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-30 15:30:56 +01:00
nodejs/TODO.win32
2010-12-20 23:51:20 +01:00

56 lines
2.2 KiB
Plaintext

- Implement setenv / unsetenv
- Implement other stuff missing in node.cc/process
Like setuid, setgid, kill etc.
- Implement missing `net` methods
A pressing issue is: how do we work with windows api functions that are not utf8 aware?
E.g. getaddrinfo() is ansi-only; GetAddrInfoW is utf16-only. Can we get utf16 straight out of v8?
- Child processes
- Stdio (make TTY's / repl / readline work)
This will be hard: there is no ANSI escape code support in windows.
Select() doesn't work on TTYs -- use a dedicated `getchar()` thread
that relays everything to an internal socket?
Also verify writeError and isStdoutBlocking correctness.
- Make `make test` work, think about `make install`
- Find a solution for fs.symlink / fs.lstat / fs.chown
Windows has different symlink types: file symlinks (vista+), directory symlinks (vista+), junction points (xp+)
- Handle _open_osfhandle failures
E.g. currently we're using the construct _open_osfhandle(socket/open/accept(...)).
Now socket() can fail by itself and _open_osfhandle can fail by itself too.
If socket() fails it returns -1 so _open_osfhandle fails as well, but and we'll always return/throw EBADF.
If _open_osfhandle fails but socket doesn't, a stray handle is left open. It should be fixed.
- Check error number mappings.
Winsock errnos are different.
- Extensions
Should be DLLs on windows.
- Link pthreads-w32 statically by default
- Make (open?)SSL work
- Support using shared libs (libeio, v8, c-ares)
Need to link with with a stub library. Libraries should use `dllexport`, headers must have `dllimport`.
- V8: push MING32 build fixes upstream
- Work with the V8 team to get the stack corruption bug fixed
- Work around missing pread/pwrite more elegantly
Currently it's exported from libeio, while it wasn't intended to be exported.
The libeio workaround implementation sucks, it uses a global mutex.
- Work around missing inet_pton/inet_ntop more elegantly
Currently it's exported from from c-ares, while it wasn't intended to be exported.
It prevents linking c-ares dynamically.
- See what libev/libeio changes can be pushed upstream
- ... much more probably