From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.4 required=5.0 tests=AC_FROM_MANY_DOTS,BAYES_00, XPRIO autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,bd22aca7e3e8c544,start X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-02-28 09:37:14 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!arclight.uoregon.edu!wn13feed!wn12feed!worldnet.att.net!199.45.49.37!cyclone1.gnilink.net!spamkiller2.gnilink.net!nwrdny01.gnilink.net.POSTED!53ab2750!not-for-mail From: "Frank J. Lhota" Newsgroups: comp.lang.ada Subject: Who Maintains Win32Ada? X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Message-ID: Date: Fri, 28 Feb 2003 17:37:13 GMT NNTP-Posting-Host: 141.157.180.216 X-Complaints-To: abuse@verizon.net X-Trace: nwrdny01.gnilink.net 1046453833 141.157.180.216 (Fri, 28 Feb 2003 12:37:13 EST) NNTP-Posting-Date: Fri, 28 Feb 2003 12:37:13 EST Xref: archiver1.google.com comp.lang.ada:34729 Date: 2003-02-28T17:37:13+00:00 List-Id: I am using the Win32Ada packages for Win32 API services. This thin binding is used by both the Gnat and ObjectAda compilers. I cannot help but notice some errors in the Win32.Winsock package. The FD_ZERO macro / Inline procedure, used to empty an fd_set object, is not present in the specification. Curiously, there is an implementation of FD_ZERO in the body of the Win32.Winsock package! The Ada version of the "select" function (named c_select) is declared as follows: function c_select (nfds : Win32.INT; readfds : access FD_SET; writefds : access FD_SET; exceptfds : access FD_SET; timeout : ac_TIMEVAL_t) return Win32.INT; -- winsock.h:741 Since the readfds, writefds, and exceptfds parameters are defined as anonymous access types, you cannot use null as the actual parameter. This is unfortunate, since null is frequently used as a convenient way to specify that one of these sets is empty. It would be much better if the readfds, writefds, and exceptfds parameters were declared as PFD_SET, a named access type declared elsewhere in this package. Moreover, Win32.Winsock is based on the header, not the more recent header with the new functionality introduced in Winsock 2. Yes, I know that I can correct these errors by creating my own binding, or bypass these problems with a thicker binding. Still, I would like to forward these errors to whomever is maintaining Win32Ada so that other Ada programmers will not have to struggle with this. Does anyone here know who I should contact about Win32Ada? Side Note: Ada interface issues aside, I really dislike the Winsock API. It is not terribly POSIX compliant (even small bits of socket programming often require modification to be valid Winsock code), and it also fails to integrate with the rest of the Win32 API facilities. In this case, I know who to complain to, but it is incredibly hard to get Mr. Gates attention.