[#39260] RubySpec vs CRuby's test/... — Marc-Andre Lafortune <ruby-core-mailing-list@...>

Before the release of Ruby 1.9.2 it was decided that Ruby releases

59 messages 2011/09/04
[#39276] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/05

2011/9/5 Marc-Andre Lafortune <[email protected]>:

[#39325] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/07

I'll jump in with some context from the JRuby perspective.

[#39335] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/07

2011/9/7 Charles Oliver Nutter <[email protected]>:

[#39365] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/08

On Wed, Sep 7, 2011 at 4:17 AM, NARUSE, Yui <[email protected]> wrote:

[#39366] Re: RubySpec vs CRuby's test/... — Yukihiro Matsumoto <matz@...> 2011/09/08

Hi,

[#39370] Re: RubySpec vs CRuby's test/... — Michael Klishin <michael.s.klishin@...> 2011/09/08

Yukihiro Matsumoto:

[#39374] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/08

(2011/09/09 1:29), Michael Klishin wrote:

[#39376] Re: RubySpec vs CRuby's test/... — Luis Lavena <luislavena@...> 2011/09/08

On Thu, Sep 8, 2011 at 4:19 PM, NARUSE, Yui <[email protected]> wrote:

[#39379] Re: RubySpec vs CRuby's test/... — Masaya TARUI <tarui@...> 2011/09/08

Hello Luis,

[#39382] Re: RubySpec vs CRuby's test/... — Luis Lavena <luislavena@...> 2011/09/08

On Thu, Sep 8, 2011 at 5:34 PM, Masaya TARUI <[email protected]> wrote:

[#39386] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/08

On Thu, Sep 8, 2011 at 3:57 PM, Luis Lavena <[email protected]> wrote:

[#39267] [Ruby 1.9 - Bug #5273][Open] Float#round returns the wrong floats for higher precision — Marc-Andre Lafortune <ruby-core@...>

14 messages 2011/09/04

[#39435] [Ruby 1.9 - Bug #5306][Open] Application Hangs Due to Recent rb_thread_select Changes — Charlie Savage <cfis@...>

27 messages 2011/09/09

[#39498] [Ruby 1.9 - Feature #5310][Open] Integral objects — Kenta Murata <muraken@...>

13 messages 2011/09/13

[#39539] [Ruby 1.9 - Feature #5321][Open] Introducing Numeric#exact? and Numeric#inexact? — Kenta Murata <muraken@...>

26 messages 2011/09/14

[#39629] [Ruby 1.9 - Feature #5341][Open] Add SSL session reuse to Net::HTTP — Eric Hodel <[email protected]>

18 messages 2011/09/19

[#39634] [Ruby 1.9 - Bug #5343][Open] Unexpected blocking behavior when interrupt Socket#accept — Tomoyuki Chikanaga <nagachika00@...>

10 messages 2011/09/20

[#39673] [Ruby 1.9 - Bug #5353][Open] TLS v1.0 and less - Attack on CBC mode — Martin Bosslet <Martin.Bosslet@...>

13 messages 2011/09/22

[#39700] [Ruby 1.9 - Feature #5364][Open] How about new syntax: "object.\method" returns a Method instance? — Joey Zhou <yimutang@...>

20 messages 2011/09/25

[#39740] [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Alex Young <alex@...>

18 messages 2011/09/27
[#39743] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Aaron Patterson <aaron@...> 2011/09/27

On Tue, Sep 27, 2011 at 06:18:19PM +0900, Alex Young wrote:

[#39754] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Alex Young <alex@...> 2011/09/27

On 27/09/2011 19:46, Aaron Patterson wrote:

[#39807] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Eric Hodel <[email protected]> 2011/10/01

On Sep 27, 2011, at 6:52 PM, Alex Young wrote:

[#39751] [Ruby 1.9 - Bug #5375][Open] [mingw32] segfault on WinXP SP3 with 1.9.3dev@33347 — Jon Forums <redmine@...>

26 messages 2011/09/27

[#39772] ObjectSpace.reference_form(obj) #=> references_array — SASADA Koichi <ko1@...>

Hi,

13 messages 2011/09/29
[#39774] Re: ObjectSpace.reference_form(obj) #=> references_array — Nobuyoshi Nakada <nobu@...> 2011/09/29

Hi,

[#39796] [Ruby 1.9 - Bug #5384][Open] Ruby 1.9.3-RC1 Fails to Compile on Solaris — Cyrus Lopez <cyrus@...>

11 messages 2011/09/30

[ruby-core:39756] Re: [Ruby 1.9 - Feature #5372] Promote blank? to a core protocol

From: Alex Young <alex@...>
Date: 2011-09-28 00:23:33 UTC
List: ruby-core #39756
On 27/09/2011 23:38, Yui NARUSE wrote:
>
> Issue #5372 has been updated by Yui NARUSE.
>
>
> This seems the long discussed question, what is a zero element.
> But I don't think this proposal is not worth breaking ActiveSupport's blank?.

True, that would be unfortunate.  For that reason I marginally prefer 
the null? name but thought blank? would be a more familiar concept.

>
> Anyway what is the usecase of this?

In the short term, it saves accidentally missing bugs where I forget to 
complete the type check.  It's an addition which is simple to implement 
(at least naively) and does not break existing code, and would make my 
projects a little bit simpler.

Longer-term, I think it's an interesting primitive. It gives an 
alternative approach to being able to subclass FalseClass or NilClass, 
which is also occasionally suggested.  One use case for this is in 
implementing non-exception error classes, which would give you something 
a little like Haskell's Either.

> I doubt a closed io is a zero element.
> Do you have a case that you are happy if it is a zero element.

Yes, if it's set to autoclose. I'm not wedded to the definition on IO, 
though - if you think there's a more useful one then I'm all ears.

-- 
Alex

> ----------------------------------------
> Feature #5372: Promote blank? to a core protocol
> http://redmine.ruby-lang.org/issues/5372
>
> Author: Alex Young
> Status: Open
> Priority: Normal
> Assignee:
> Category: core
> Target version: 1.9.4
>
>
> I don't think there's been a project I've used that hasn't made use of this pattern:
>
>    if thing.nil? || thing.empty?
>
> somewhere in its source.  This is necessary because it is idiomatic to return nil where other languages might return a null object, and there is no universal test for nullity which a user-implemented class can provide without issues.
>
> Facets (and ActiveSupport) define a #blank? protocol which allows for the above to be replaced with:
>
>    if thing.blank?
>
> Being able to type this on a first iteration saves forgetting one of the cases and having to come back to fix a bug later.  For projects where I cannot directly use Facets or ActiveSupport, I always find that I rewrite a version for myself.  It would be very convenient not to have to do this every time, and this is clearly a common case, so I propose that #blank? be implemented on the following classes:
>
>    Object: to return false
>    String: aliased to #empty?
>    NilClass: to return true
>    TrueClass: to return false
>    FalseClass: to return true
>    Array: aliased to #empty?
>    Hash: aliased to #empty?
>    Fiber: to return !alive?
>    Numeric: aliased to #zero?
>    IO: aliased to #closed?
>    MatchData: to return #to_s.blank?
>    Process::Status: aliased to #exited?
>    Range: to return self.include?(self.begin)
>    Struct: subclass instances to return values.blank?
>    Thread: to return !alive?
>    ThreadGroup: to return list.blank?
>
> Some of these uses aren't described by the word "blank?" very well (and ActiveSupport's String#blank? is somewhat different), so as a sub-feature I'd like to suggest "null?" as an alternative method name.
>
> Apologies if this has been proposed and rejected before, but a quick search of redmine didn't show anything relevant.
>
>


In This Thread