Anonymous | Login | 2024-12-12 17:27 UTC |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Simple Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||
ID | Category | Severity | Type | Date Submitted | Last Update | ||
0001391 | [1003.1(2016/18)/Issue7+TC2] Shell and Utilities | Objection | Error | 2020-08-13 19:58 | 2024-06-11 09:08 | ||
Reporter | kre | View Status | public | ||||
Assigned To | |||||||
Priority | normal | Resolution | Accepted As Marked | ||||
Status | Closed | ||||||
Name | Robert Elz | ||||||
Organization | |||||||
User Reference | |||||||
Section | 2.9.1.1 1.c (2.9.1.4 1.c in Issue 8 draft 1) | ||||||
Page Number | 2367 (2294 in Issue 8 draft 1) | ||||||
Line Number | 75564-7 (74159-62 in Issue 8 draft 1) | ||||||
Interp Status | --- | ||||||
Final Accepted Text | Note: 0004922 | ||||||
Summary | 0001391: Unclear language in specification of utilities implemented as functions | ||||||
Description |
I do not believe there is likely to be any disagreement over what should be done here, though there may be some over whether the current language is unclear. My opinion on that is that if anyone can reasonably read the text in a way different from what is intended, and if it is easily possible to correct the text to improve clarity, then that should always be done. Anyway, 2.9.1.1 1.c (unchanged in Issue 8, other than the section number) states If the command name matches the name of a function known to While this is somewhat fanciful, as to the best of my knowledge, no shell implements any standard utilities as functions, the issue is if the shell did implement some standard utility as a function (something like dirname might be a possibility) and the user (application) has also defined a function of the same name (overriding the implementation provided definition), what should happen. My expectation is that the "If the implementation has provided a standard utility in the form of a function, it shall not be recognized at this point." text means that the standard utility, implemented as a function, should not be recognised, but that a user defined function of the same name still should be. However, it is not unreasonable to read it as prohibiting (at this point) invoking any function with the same name as that of a standard utility implemented as a function ("it shall not be recognized at this point", is the antecedent of "it" the "command name" or the "standard utility implemented as a function". While the latter is almost certainly what was intended, either is actually a justifiable reading of the text. This becomes problematic, as if a user defined function is not invoked in 2.9.1.1 1.c then it never is, as 2.9.1.1 1.e.i only allows for two cases, a where "If the system has implemented the utility as a built-in or as a shell function, ..." or b "Otherwise, the shell executes the utility in a separate utility environment" (the text here has altered in Issue 8 draft 1, but the effect is the same). Neither of those allow invoking a user defined function. Further, it would be strange if any user defined function (regardless of its name) depended upon a successful PATH search before it could be invoked. Clarifying the language of 2.9.1.1 1.c will avoid this problem. Note that if the resolution of 0001389 is to accept the proposed text, or something substantially similar, then this issue becomes moot, as all references to standard utilities implemented as functions will have been removed, leaving 2.9.1.1 1.c simply specifying the invocation of a function. It should also be noted, that while the standard attempts to specify what should be done with standard utilities implemented as functions, it is not actually documenting any known standard behaviour there, as there are no known (to me anyway) instances of standard utilities implemented as functions. Rather than documenting the standard behaviour, what happened is an attempt to specify how such things should behave, if any ever were to exist. That's not the standard, that's a flight of fancy. |
||||||
Desired Action |
Option 1. In section 2.9.1.1 1.c (2.9.1.4 1.c in Issue 8 draft 1) delete all after the first sentence. That is retain
and delete the rest, viz:
It would also probably make sense to delete the reference to standard utilities implemented as functions from 2.9.1.1 1.e but that is not essential for the purposes of this issue. This option recognises that absent implementation, it is premature to standardise the behaviour of standard utilities implemented as functions, as no-one has any idea what that behaviour would be. Option 2: In 2.9.1.1 1.c change the words: it shall not be recognized at this point.to: |
||||||
Tags | tc3-2008 | ||||||
Attached Files | |||||||
|
Relationships | |||||||||||
|
Issue History | |||
Date Modified | Username | Field | Change |
2020-08-13 19:58 | kre | New Issue | |
2020-08-13 19:58 | kre | Name | => Robert Elz |
2020-08-13 19:58 | kre | Section | => 2.9.1.1 1.c (2.9.1.4 1.c in Issue 8 draft 1) |
2020-08-13 19:58 | kre | Page Number | => 2367 (2294 in Issue 8 draft 1) |
2020-08-13 19:58 | kre | Line Number | => 75564-7 (74159-62 in Issue 8 draft 1) |
2020-08-13 21:18 | Don Cragun | Relationship added | related to 0001389 |
2020-08-13 21:19 | Don Cragun | Relationship added | related to 0001390 |
2020-08-14 08:31 | geoffclare | Interp Status | => --- |
2020-08-14 08:31 | geoffclare | Description Updated | |
2020-08-14 09:21 | geoffclare | Note Added: 0004922 | |
2020-08-14 09:24 | geoffclare | Note Edited: 0004922 | |
2021-01-28 17:18 | geoffclare | Final Accepted Text | => Note: 0004922 |
2021-01-28 17:18 | geoffclare | Status | New => Resolved |
2021-01-28 17:18 | geoffclare | Resolution | Open => Accepted As Marked |
2021-01-28 17:19 | geoffclare | Tag Attached: tc3-2008 | |
2021-02-12 16:40 | geoffclare | Status | Resolved => Applied |
2024-06-11 09:08 | agadmin | Status | Applied => Closed |
Mantis 1.1.6[^] Copyright © 2000 - 2008 Mantis Group |