[#41908] [Backport93 - Backport #5844][Open] Can't install ruby-debug-base19 — Brian Osborne <bosborne11@...>
[#41916] Proposal: Bitmap Marking GC — Narihiro Nakamura <authornari@...>
Hi.
> And, GC is a little bit slower. But, I think it's in acceptable range.
Narihiro Nakamura <authornari@gmail.com> wrote:
> Narihiro Nakamura <authornari@gmail.com> wrote:
[#41934] feature request: marshallable proc's — Roger Pack <rogerdpack2@...>
Every so often I wish I could do something like
On 2012年01月06日 08:54, Roger Pack wrote:
What should happen on the following code?
[#41979] [ruby-trunk - Bug #5865][Open] Exception#== should return false if the classes differ — Hiro Asari <asari.ruby@...>
Hi,
On Mon, Jan 9, 2012 at 12:43, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
[#42003] [ruby-trunk - Bug #5871][Open] regexp \W matches some word characters when inside a case-insensitive character class — Gareth Adams <gareth@...>
[#42016] [ruby-trunk - Feature #5873][Open] Adopt FFI over DL — Heesob Park <phasis@...>
On Tue, Jan 10, 2012 at 10:01:26PM +0900, Heesob Park wrote:
Hi,
> To remove original DL completely, we have to bundle libffi itself
[#42042] RUBY 2 RCR: remove Thread#raise — Roger Pack <rogerdpack2@...>
Hello.
Roger Pack <rogerdpack2@gmail.com> wrote:
[#42049] [ruby-trunk - Bug #5877][Open] Poor performance of initial and final UTF-8 substrings — Nathan Weizenbaum <nex342@...>
[#42063] [ruby-trunk - Bug #5884][Open] Float::NAN and 0.0/0.0 is represented differently when packed with 'g' — Hiro Asari <asari.ruby@...>
[#42080] [ruby-trunk - Bug #5887][Open] The documentation of Module.constants is incorrect — Shugo Maeda <redmine@...>
[#42085] [ruby-trunk - Bug #5888][Open] JSON unittest fails — Vit Ondruch <v.ondruch@...>
[#42093] Backport93 help needed for a few Windows requests? — Jon <jon.forums@...>
Currently the following Windows-specific backport requests to ruby_1_9_3 remain unassigned:
[#42113] [ruby-trunk - Feature #5893][Open] named return,next... — Ondrej Bilka <neleai@...>
On Fri, Jan 13, 2012 at 7:21 PM, Ondrej Bilka <neleai@seznam.cz> wrote:
On Fri, Jan 13, 2012 at 11:11:28PM +0900, Anurag Priyam wrote:
[#42139] [ruby-trunk - Feature #5898][Open] raise and Exception#initialize — Thomas Sawyer <transfire@...>
[#42149] [ruby-trunk - Feature #5899][Open] chaining comparsions. — Ondrej Bilka <neleai@...>
[#42160] [ruby-trunk - Bug #5902][Open] Array#join with an unused, infected separator may or may not infect the result — John Firebaugh <john.firebaugh@...>
[#42164] [ruby-trunk - Feature #5903][Open] Optimize st_table (take 2) — Yura Sokolov <funny.falcon@...>
[#42189] [ruby-trunk - Bug #5914][Open] Calling extend with an anonymous module requires use of parentheses — Mark Somerville <mark@...>
[#42194] [ruby-trunk - Bug #5915][Open] Array#join with explicit nil should not use $, — John Firebaugh <john.firebaugh@...>
[#42222] [ruby-trunk - Bug #5925][Open] Lazy initialization is not thread safe. — Xuân Baldauf <xuan--2009--xbaldauf--redmine.ruby-lang.org@...>
[#42235] [ruby-trunk - Bug #5931][Open] Random SEGV during execution on YARD specs — Vit Ondruch <v.ondruch@...>
[#42246] Fwd: RCR String#{last, first} — Roger Pack <rogerdpack2@...>
Hello.
[#42256] [ruby-trunk - Feature #5945][Open] Add the ability to mark a at_exit as process-local. — Robert Gleeson <rob@...>
[#42257] [Backport93 - Backport #5942][Open] Backport r34309-34310 r34312-32414 — Yura Sokolov <funny.falcon@...>
[#42285] Why Ruby 1.9 GUI hangs if i do any intensive computation in separate Ruby thread? — Grigory Petrov <grigory.v.p@...>
Hello
the GIL is *not* supposed to lift if some threads enters native code...
[ruby-core:42226] [ruby-trunk - Feature #3131] add Kernel#Hash() method like Kernel#Array()
Issue #3131 has been updated by Yukihiro Matsumoto.
I accept this patch for trunk, except that Hash(nil) should return an empty hash, not nil.
Matz.
----------------------------------------
Feature #3131: add Kernel#Hash() method like Kernel#Array()
https://bugs.ruby-lang.org/issues/3131
Author: Suraj Kurapati
Status: Assigned
Priority: Normal
Assignee: Yukihiro Matsumoto
Category: core
Target version: 2.0.0
=begin
Hello,
There is an imbalance of power in the Ruby core API (when it comes
to arrays and hashes) because it is easier to convert nil values
into empty arrays, thanks to Kernel#Array(), than it is to convert
nil values into empty hashes, due to lack of Kernel#Hash().
To correct this asymmetry and restore a balance of power, please
add a Kernel#Hash() method for converting nil, Array, and Hash
values into hashes:
module Kernel
def Hash(value)
if value.respond_to? :to_hash
value.to_hash
elsif value.respond_to? :to_ary
Hash[*value.to_ary]
elsif value.nil?
{}
else
raise ArgumentError, "invalid value for Hash: #{value}"
end
end
end
For example, here is how I would use the above API:
#-------------------------------------------------------------------------
# CASE 1: to_hash
#-------------------------------------------------------------------------
real_hash = {:real => true}
Hash(real_hash) # => {:real=>true}
fake_hash = Object.new
def fake_hash.to_hash
{:fake => true}
end
Hash(fake_hash) # => {:fake=>true}
#-------------------------------------------------------------------------
# CASE 2: to_ary
#-------------------------------------------------------------------------
real_array = [:real, true]
Hash(real_array) # => {:real=>true}
fake_array = Object.new
def fake_array.to_ary
[:fake, true]
end
Hash(fake_array) # => {:fake=>true}
#-------------------------------------------------------------------------
# CASE 3: nil
#-------------------------------------------------------------------------
Hash(nil) # => {}
#-------------------------------------------------------------------------
# CASE 4: unsupported arguments
#-------------------------------------------------------------------------
>> Hash(true)
ArgumentError: invalid value for Hash: true
from (irb):74:in `Hash'
from (irb):80
from /usr/bin/irb:12:in `<main>'
>> Hash(false)
ArgumentError: invalid value for Hash: false
from (irb):74:in `Hash'
from (irb):81
from /usr/bin/irb:12:in `<main>'
>> Hash(123)
ArgumentError: invalid value for Hash: 123
from (irb):74:in `Hash'
from (irb):82
from /usr/bin/irb:12:in `<main>'
Thanks for your consideration.
=end
--
http://bugs.ruby-lang.org/