Re: [PATCH] Cygwin: spawn: Treat empty path as the current directory.

2022-06-30 Thread Ken Brown

On 6/30/2022 11:45 AM, Ken Brown wrote:

On 6/27/2022 8:44 AM, Takashi Yano wrote:

- With this patch, the empty path (empty element in PATH or PATH is
   absent) is treated as the current directory as Linux does.
Addresses: https://cygwin.com/pipermail/cygwin/2022-June/251730.html


It might be a good idea to include a comment in the code and the commit message 
that this feature is being added for Linux compatibility but that it is 
deprecated.  According to https://man7.org/linux/man-pages/man7/environ.7.html,


   As a legacy feature, a zero-length prefix (specified as
   two adjacent colons, or an initial or terminating colon)
   is interpreted to mean the current working directory.
   However, use of this feature is deprecated, and POSIX
   notes that a conforming application shall use an explicit
   pathname (e.g., .)  to specify the current working
   directory.

Alternatively, maybe this is a case where we should prefer POSIX compliance to 
Linux compatibility.  Corinna, WDYT?


I withdraw my suggestion.  There's already a comment in the code saying, "An 
empty path or '.' means the current directory", so it's clear that the intention 
was to support that feature, and the code was simply buggy.


I've now read through the patch, and it looks good to me.  This was pretty 
tricky to get right.


Ken


Re: [EXTERNAL] Re: [PATCH] Cygwin: spawn: Treat empty path as the current directory.

2022-06-30 Thread Takashi Yano
On Thu, 30 Jun 2022 18:35:04 +
"Lavrentiev, Anton \(NIH/NLM/NCBI\) \[C\] wrote:
> >However, use of this feature is deprecated, and POSIX
> >notes that a conforming application shall use an explicit
> >pathname (e.g., .)  to specify the current working
> >directory.
> 
> Since "SHALL" does not mean "MUST", I think this patch is correct.

In the POSIX standard, "SHALL" is used almost interchangeably
with "MUST" as other standard documents do.

https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap01.html#tag_21_01_09

-- 
Takashi Yano 


Re: [EXTERNAL] Re: [PATCH] Cygwin: spawn: Treat empty path as the current directory.

2022-06-30 Thread Brian Inglis



On 2022-06-30 12:35, Lavrentiev, Anton (NIH/NLM/NCBI) [C] via 
Cygwin-patches wrote:

However, use of this feature is deprecated, and POSIX notes that a
conforming application shall use an explicit pathname (e.g., .)  to
specify the current working directory.



Since "SHALL" does not mean "MUST", I think this patch is correct.


It appears you may be confusing POSIX's (1.5 Terminology)
*shall* (mandatory) and *should* (recommended):

"*SHALL*

For an implementation that conforms to POSIX.1-2017, describes a feature 
or behavior that is mandatory. An application can rely on the existence 
of the feature or behavior.


For an application or user, describes a behavior that is mandatory.

*SHOULD*

For an implementation that conforms to POSIX.1-2017, describes a feature 
or behavior that is recommended but not mandatory. An application should 
not rely on the existence of the feature or behavior. An application 
that relies on such a feature or behavior cannot be assured to be 
portable across conforming implementations.


For an application, describes a feature or behavior that is recommended 
programming practice for optimum portability."


--
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]


RE: [EXTERNAL] Re: [PATCH] Cygwin: spawn: Treat empty path as the current directory.

2022-06-30 Thread Lavrentiev, Anton (NIH/NLM/NCBI) [C] via Cygwin-patches
>However, use of this feature is deprecated, and POSIX
>notes that a conforming application shall use an explicit
>pathname (e.g., .)  to specify the current working
>directory.

Since "SHALL" does not mean "MUST", I think this patch is correct.

Anton Lavrentiev
Contractor NIH/NLM/NCBI



Re: [PATCH] Cygwin: poll: Fix a bug on inquiring same fd with different events.

2022-06-30 Thread Ken Brown

On 6/26/2022 9:50 PM, Takashi Yano wrote:

- poll() has a bug that it returns event which is not inquired if
   events are inquired in multiple pollfd entries on the same fd at
   the same time. This patch fixes the issue.
Addresses: https://cygwin.com/pipermail/cygwin/2022-June/251732.html


LGTM (but I haven't tested it).

Ken


Re: [PATCH] Cygwin: spawn: Treat empty path as the current directory.

2022-06-30 Thread Ken Brown

On 6/27/2022 8:44 AM, Takashi Yano wrote:

- With this patch, the empty path (empty element in PATH or PATH is
   absent) is treated as the current directory as Linux does.
Addresses: https://cygwin.com/pipermail/cygwin/2022-June/251730.html


It might be a good idea to include a comment in the code and the commit message 
that this feature is being added for Linux compatibility but that it is 
deprecated.  According to https://man7.org/linux/man-pages/man7/environ.7.html,


  As a legacy feature, a zero-length prefix (specified as
  two adjacent colons, or an initial or terminating colon)
  is interpreted to mean the current working directory.
  However, use of this feature is deprecated, and POSIX
  notes that a conforming application shall use an explicit
  pathname (e.g., .)  to specify the current working
  directory.

Alternatively, maybe this is a case where we should prefer POSIX compliance to 
Linux compatibility.  Corinna, WDYT?


Ken