C Std Lib pulls it off.

Really? Can you use select on an win32 pipe? Or stdin?
If perl used native file handles instead of MS CRT file handles, and make select Perl function map to WaitForMultipleObjects, then yes, http://msdn.microsoft.com/en-us/library/windows/desktop/aa365603%28v=vs.85%29.aspx. I think the reason why perl uses MS win32 select instead of WFMO was that 12-15 years ago when perl win32 was being developed, DOS Windows was the target platform. On DOS Windows, socket handles are not kernel/file handles, and can not be given to WFMO, on DOS Windows socket handles had to be given to WSAWaitForMultipleEvents. Sockets on DOS Windows were a 3rd party add on architecture wise and there used to be competitors to MS Sockets http://en.wikipedia.org/wiki/Winsock#Other_implementations.
Interix and Cygwin pull it off.

That's like saying that a campervan pulls off being a house.

Cygwin was always a dog; and never got beyond POSIX 1 as far as I can tell.

Interix was deliberately ham-strung from the moment MS purchased it. They didnt want it to become a viable alternative development environment for windows. They offered and supported it only as a stop-gap to transitioning *nix software suits to the Windows Server environment. It will not ship with Windows 8.

Windows NT is POSIX certified from day 1, 1993, although you are correct MS is removing it for Windows 8, and it was put in to Embrace, extend and extinguish. Even though the formal POSIX api is going away, nothing prevents you from writing a POSIX API layer on Windows. The Linux kernel isn't 100% POSIX compatible without its usermode libraries anyway, http://www.kernel.org/doc/man-pages/online/pages/man7/aio.7.html http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library.
Signals on Windows are called Alertable IO. "

That is so wrong it defies refutation beyond this link.

MS Alertable IO has exactly zero to do with "POSIX signals"!

"Safe" signals on Win32 Perl are Windows Messages on the message queue,

Windows doesn't do POSIX signals.

Windows Alertable IO/APCs are an improved implementation of unix signals see http://books.google.com/books?id=xX5tfrAQQ8cC&lpg=RA1-PA79&vq=unix%20signal%20mechanism&dq=apc%20unix%20signal%20windows%20kernel&pg=PA188#v=snippet&q=unix%20signal%20mechanism&f=false and http://www.flounder.com/asynchexplorer.htm#Callback%20I/O.
non-safe signals (CRT Ctrl C and exit) usually will crash the perl interp since they actually run from another thread.

That is about as far from the truth as it is possible to get.

Perl uses the SetConsoleCtrlHandler() function to allow it to handle the various console events.

Your absolutely wrong. If your claiming thats not true, then this wouldn't crash for you or anyone else "Free to wrong pool" error..

*nix IPC revolves around: a) fork & exec; b) signals; c) selectable, non-blocking IO; d) pipes; e) Unix domain sockets.

Windows has its own IPC mechanisms: a) Clipboard; b) COM; c) Data Copy; d) DDE; e) File Mapping; f) Mailslots; g) Pipes (Anon;Named;stream;message); h) RPC; i) Windows Sockets.

Each of those is a wrapper around an APC or more often an Event Objects http://msdn.microsoft.com/en-us/library/windows/hardware/ff553350%28v=vs.85%29.aspx kernel wise.

Even where the names on the different platforms are superficially similar; the implementation details are sufficiently different to make writing a common interface necessarily a lowest-common-denominator-via-crude-incomplete-emulation exercise that benefits no one.

So what are Cygwin, WINE, KernelEx, and Reactos?

No. My opinion is that they are much more efficient than a VM.

In reply to Re^6: What is the preferred cross-platform IPC module? by bulk88
in thread What is the preferred cross-platform IPC module? by Theory

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.