[ruby-core:72854] [Ruby trunk - Bug #11973] [Rejected] IO#advise should raise NotImplementedError on platforms that do not support that call

From: eregontp@...
Date: 2016-01-14 10:31:06 UTC
List: ruby-core #72854
Issue #11973 has been updated by Benoit Daloze.

Status changed from Open to Rejected

Closing this issue, since people seem to agree the current behavior is intended.
(Also see https://github.com/ruby/spec/issues/183#issuecomment-171467414)

----------------------------------------
Bug #11973: IO#advise should raise NotImplementedError on platforms that do not support that call
https://bugs.ruby-lang.org/issues/11973#change-56090

* Author: Chuck Remes
* Status: Rejected
* Priority: Normal
* Assignee: 
* ruby -v: 2.4.0
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
Right now IO#advise returns nil when passed legal arguments even on platforms that do not support that POSIX function (like OS X). To be consistent with other calls in core, I think that IO#advise should raise NotImplementedError for unsupported platforms.

A similar topic on IO#advise was recently discussed in https://bugs.ruby-lang.org/issues/11806#note-6.

To support this idea, I'd like to point to how File#link behaves in a similar situation on platforms that do not support hard links in the filesystem. It raises NotImplementedError.

https://github.com/ruby/ruby/blob/trunk/file.c#L2723

I am bringing up this issue so we can make Ruby behave more consistently and behave in a consistent manner when trying to access functions on unsupported platforms.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next