public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: "Hans-Bernhard Bröker" <HBBroeker@t-online.de>
To: cygwin@cygwin.com
Subject: Re: bug: cygwin-devel v3.0.2-1 socket.h does not #define MSG_EOR per the POSIX standard
Date: Wed, 24 Apr 2019 20:36:00 -0000	[thread overview]
Message-ID: <a1cb4f3e-ae07-26c2-aa7f-695f2a178961@t-online.de> (raw)
In-Reply-To: <4e01e86d-83c9-5855-c4a5-29f5375dc2dc@cs.umass.edu>

Am 24.04.2019 um 19:54 schrieb Eliot Moss:
> On 4/24/2019 12:43 PM, Corinna Vinschen wrote:

>> Since MSG_EOR isn't implemented in the underlying transport layer,
>> there's no way to implement it in userspace.  That's why it's not
>> defined in Cygwin's headers.  If you have an idea how to implement
>> this in plain userspace, feel free to provide patches.
> 
> I don't have a direct interest in this issue, but I do have a wondering.
> If Cygwin fails to define an error code -- even if the error cannot
> actually happen under Cygwin -- isn't that a problem when trying to
> compile imported software?  

That, like the question whether Cygwin is in any way obliged to define
it, ends up in an issue of Interpretation of Standardese.  The latter is
a language that looks deceptively much like ordinary English, but just
like Legalese, is not the same thing.

In the case at hand the point that needs interpretation is what that
parenthesis "(if supported by the protocol)" really means.  What is "the
protocol" it refers to?  What if several protocols are supported, which
differ in support for this?

The core issue, though, is: what is controlled by this "if", i.e. what
is the "then" effect?  And what's the "else"?

Cygwin's interpretation (whether by design or by accident) is: if this
never is true, the "shall define" a few lines above does not apply any
more.  If that's a correct interpretation, then source code would be
wrong to just assume presence of this macro unconditionally.  In that
case the actual problem that software noticing would be written
incorrectly (they should #ifdef MSG_EOR before using it).

An alternative interpretation could be that this entire parenthesis is
ultimately just a superfluous that adds no meaning to the standard; the
macro would have to be defined always; software would be entitled to
blindly assume its existence, and Cygwin would be wrong about this.

Either way, as Standardese goes, this is sufficiently unclear that it
IMHO calls for a defect report to the governing body of this standard.

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

  reply	other threads:[~2019-04-24 20:36 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-24 15:48 Brabant, Edward H CTR (USA)
2019-04-24 16:44 ` Corinna Vinschen
2019-04-24 17:54   ` Eliot Moss
2019-04-24 20:36     ` Hans-Bernhard Bröker [this message]
2019-04-24 20:50       ` Eric Blake
2019-04-25 15:28         ` Brian Inglis
2019-04-25 15:48           ` Eric Blake
2019-04-25 18:36             ` Hans-Bernhard Bröker
2019-04-25 17:08         ` Corinna Vinschen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a1cb4f3e-ae07-26c2-aa7f-695f2a178961@t-online.de \
    --to=hbbroeker@t-online.de \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).