[MLton] bug in Socket structure signture
Henry Cejtin
henry.cejtin@sbcglobal.net
Sat, 02 Jul 2005 17:49:31 -0500
It looks to me like the basis library spec for the socket structure is wrong.
Note that Socket.recvVecFrom (and all its friends) claim to return a result
which includes an address which is polymorphic but such things do not exist.
(I am referring to the free type variable 'sock_type.) All actual addresses
are of a specific address family.
As an example of the problem, you can now have an AF_INET family (internet
domain) SOCK_DGRAM socket, and then use UnixSock.fromAddr on the address
result of recvVecFrom which, of course, gives you garbage.
Although I don't see any explicit statement to this effect, I don't think
that it is possible to have the address family address in the result be
different from that of the socket. If it can be different, then you have to
really go through the C world of looking at the sin_family member and encode
this in an ML datatype.
Am I missing something?