[#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:42146] [ruby-trunk - Feature #5898] raise and Exception#initialize
Issue #5898 has been updated by Thomas Sawyer.
Actually, I just did something rather interesting that better illustrates the discrepancy:
trans@logisys:assertions$ irb
>> class MyError < RuntimeError
>> def initialize(*args)
>> p args
>> end
>> end
=> nil
>> raise MyError.new, "custom message"
[]
MyError: custom message
from (irb):6
from /home/trans/.rbenv/versions/1.9.3-rc1/bin/irb:12:in `<main>'
>> raise MyError, "custom message"
["custom message"]
MyError: MyError
from (irb):7
from /home/trans/.rbenv/versions/1.9.3-rc1/bin/irb:12:in `<main>'
The first case sets the message without needing to pass the message to the MyError#initialize, but the second does not.
----------------------------------------
Feature #5898: raise and Exception#initialize
https://bugs.ruby-lang.org/issues/5898
Author: Thomas Sawyer
Status: Open
Priority: Normal
Assignee:
Category:
Target version: 2.0.0
Calling `#raise` with a `message` parameter passes the argument on the Exception class' initialize method. But it does not support any additional arguments if the initialize method has been defined otherwise. Nor is the last optional argument, `caller`, passed to the initializer. All of which makes for a rather confusing mishmash of an interface between `#raise` and `Exception#initialize`.
Ideally I would think whatever arguments are passed to `#raise` would likewise be passed on to `Exception#initialize`, e.g.
class MyError < Exception
def initialize(a,b)
super("#{a} and #{b}")
end
end
raise MyError, 'foo', 'bar'
Alas, because `caller` can be passed to `#raise` this causes an error, as it thinks `bar` ought to be the caller array. So unless others see a way around it that I do not, this idealized scenario simply is not possible.
So I propose a second best approach. Notice that if `caller` is passed to `#raise` it is not being passed on to the `#initialize` method unlike the `message` argument. Instead `#set_backtrace` is being used to set the caller. I propose that the `message` argument be handled in the same way, and a new method `#set_message(msg)` be added to the `Exception` class to handle it.
This would then allow the initializer of subclasses to be freed up to be defined in other ways, should a specialized exception be able to make good use of a variant interface Which, btw, is the exact circumstance I presently find myself in for one of my projects. Consequently I had no choice by to define the #initialize method to take an initial blank argument that will almost always be set to +nil+.
--
http://bugs.ruby-lang.org/