Title
[filesys.ts] [PDTS] Tighten specification when there is no reasonable behavior
Status
open
Section
[fs.conform.9945]
Submitter
FI-1

Created on 2014-01-20.00:00:00 last changed 90 months ago

Messages

Date: 2016-08-10.20:02:09

Proposed resolution:

  1. Change 2.1:

    If an implementation cannot provide any reasonable behavior, the implementation shall report an error in an implementation-defined manner as specified in § 7 [fs.err.report]. [Note: This allows users to rely on an exception being thrown or an error code being set when an implementation cannot provide any reasonable behavior. — end note] .

Date: 2014-02-13.00:00:00

[ 2014-02-13 LWG/SG-3 Issaquah: Proposed wording accepted. ]

Date: 2014-02-15.00:00:00

[ 2014-02-12, Proposed wording updated to reflect LWG/SG-3 discussion in Issaquah.

Since the standardese to carry out the LWG/SG-3 "throw or error code" intent is best achieved by reference to the Error reporting section, a note was added by the project editor. Please review carefully. ]

Date: 2014-02-15.00:00:00

[ 2014-02-12, Daniel Krügler comments: ]

In our code bases we routinely have to target different filesystems, notably POSIX-based and Windows. While on Windows there is no meaning in setting the owner_exec permission, for example, this is required on POSIX systems when the corresponding file should be executable. Still, attempting to invoke this operation should be possible. It would be OK, if we got a defined runtime response to this, such as a specifically defined error code value that could be tested either via the error_code& overload, but it would be IMO unacceptable for end-users to tell them "Well, this code may not compile". I don't think that we can teach people that code written using the filesystem operations might or might not compile. It would be very valuable to have at least a clear indication that implementers are required to give a defined runtime-response if they do believe that this operation cannot be implemented resulting in "reasonable behaviour".

Date: 2014-02-15.00:00:00

[ 2014-02-07, Beman Dawes suggests wording ]

Date: 2014-01-20.00:00:00

Addresses: filesys.ts

It is unfortunate that error reporting for inability to provide reasonable behaviour is completely implementation-defined. This hurts portability in the sense that programmers have no idea how errors will be reported and cannot anticipate anything.

Change "If an implementation cannot provide any reasonable behavior, the implementation shall report an error in an implementation-defined manner." to "If an implementation cannot provide any reasonable behavior, the code using the facilities for which reasonable behaviour cannot be provided shall be ill-formed." and strike the note.

History
Date User Action Args
2017-07-30 20:10:41adminsetstatus: wp -> open
2016-08-10 20:02:09adminsetmessages: + msg8475
2016-08-10 20:02:09adminsetmessages: + msg8474
2016-08-10 20:02:09adminsetmessages: + msg8473
2016-08-10 20:02:09adminsetmessages: + msg8472
2016-08-10 20:02:09adminsetmessages: + msg8471
2014-01-20 00:00:00admincreate