[#35400] Fwd: [ruby-cvs:38176] Ruby:r30994 (trunk): * string.c (rb_str_byteslice): the resulted encoding should keep — "Martin J. Dst" <duerst@...>
I'm really surprised that the encoding is kept for an arbitrary byteslice.
[#35403] Why are hash keys sometimes duped? — Aaron Patterson <aaron@...>
Why are some objects duped when they are used as hash keys and other
Aaron Patterson <[email protected]> wrote:
[#35417] [Ruby 1.9 - Bug #4463][Open] [PATCH] release GVL for fcntl() for operations that may block — Eric Wong <normalperson@...>
> Issue #4463 has been reported by Eric Wong.
Hi
KOSAKI Motohiro <[email protected]> wrote:
Hi
[#35426] [Ruby 1.8 - Bug #4467][Open] Process.maxgroups= should only accept numeric values — Daniel Berger <djberg96@...>
[#35440] [Ruby 1.9 - Feature #1047] request: getters, setters for the GC — Narihiro Nakamura <authorNari@...>
[#35446] [Ruby 1.9 - Bug #4477][Open] Kernel:exec and backtick (`) don't work for certain system commands — Joachim Wuttke <j.wuttke@...>
[#35462] Source for 1.8 syck gram.y and token.re? — Kurt Stephens <ks@...>
I found bug in 1.8 ext/syck. The problem is in gram.c and/or token.c.
This is obviously dead and gone: http://whytheluckystiff.net/syck/
Syck is dead. 1.9 should make Psych/libyaml default. The fact that
I know syck is dead.
Maybe it's possible to bribe Aaron into releasing a Psych gem for 1.8?
[#35483] /proc/$PID/environ in Linux — Eric Wong <normalperson@...>
I wanted to inspect the environment of a long-running process[1] and I
[#35494] Re: can someone explain this? — Michael Edgar <adgar@...>
[+ruby-core]
[#35509] Why has defined? been changed for autoloaded constants in 1.9? — Nikolai Weibull <now@...>
Hi!
[#35513] String#upcase and UTF-8/Unicode not working — Nikolai Weibull <now@...>
Why does the following print =E2=80=9D=C3=A4BC=E2=80=9D instead of =E2=80=
[#35519] NoMethodError#message may take very long to execute — Adiel Mittmann <adiel@...>
Hello,
[#35528] [Ruby 1.9 - Feature #4512][Open] [PATCH] ext/fcntl/fcntl.c: add F_DUPFD_CLOEXEC constant — Eric Wong <normalperson@...>
[#35536] File.write take 4 — Roger Pack <rogerdpack2@...>
Hello all.
Could I get any feedback on my latest patch for File.write?
[#35552] [Ruby 1.9 - Feature #4523][Open] Kernel#require to return the path of the loaded file — Alex Young <alex@...>
On 18/03/12 10:22, nobu wrote:
On Mon, Mar 19, 2012 at 8:06 AM, Alex Young <[email protected]> wrote:
On 19/03/12 11:58, Luis Lavena wrote:
[#35555] [Ruby 1.9 - Bug #4527][Open] [PATCH] IO#close releases GVL if possible — Eric Wong <normalperson@...>
[#35565] [Ruby 1.9 - Feature #4531][Open] [PATCH 0/7] use poll() instead of select() in certain cases — Eric Wong <normalperson@...>
> ref: [ruby-core:35527]
KOSAKI Motohiro <[email protected]> wrote:
2011/3/29 Eric Wong <[email protected]>:
Comment for patch 2.
Motohiro KOSAKI <[email protected]> wrote:
diff --git a/ext/-test-/wait_for_single_fd/wait_for_single_fd.c
[#35566] [Ruby 1.9 - Feature #4532][Open] [PATCH] add IO#pread and IO#pwrite methods — Eric Wong <normalperson@...>
2011/3/28 Eric Wong <[email protected]>:
KOSAKI Motohiro <[email protected]> wrote:
[#35567] [Ruby 1.9 - Bug #4534][Open] ri does not open $PAGER with program name only — Robert Klemme <shortcutter@...>
[#35586] [Ruby 1.9 - Feature #4538][Open] [PATCH (cleanup)] avoid unnecessary select() calls before doing I/O — Eric Wong <normalperson@...>
Charles Nutter <[email protected]> wrote:
[ruby-core:35543] Re: NoMethodError#message may take very long to execute
Hi,
Should I report the bug I described a few days ago somewhere else? Or
is it considered a non-issue that should be left behind?
On Fri, Mar 18, 2011 at 07:53:14AM +0900, Adiel Mittmann wrote:
> Hello,
>
> When a non-existing method is called on an object, NoMethodError is risen. If
> you call #message, however, your code may use up all CPU for a very long time
> (in my case, up to a few minutes).
>
> I narrowed the problem down to this code in error.c (SVN snapshot) in the function
> name_err_mesg_to_str():
>
> d = rb_protect(rb_inspect, obj, 0);
> if (NIL_P(d) || RSTRING_LEN(d) > 65) {
> d = rb_any_to_s(obj);
> }
>
> The problem is that, for a complex object, #inspect may take very long to
> execute, only to have its results thrown away because they will be larger than
> 65 characters.
>
> Of course I can write a #to_s for all my objects, but the point is that I didn't
> call #to_s or #inspect, I called #message on an exception object, which then
> takes a few minutes just to return a short string.
>
> Needless to say, this might be easy to spot in a simple example, but once you're
> writing a web application that suddenly freezes for one minute with no apparent
> reason, you're all but clueless as to what's going on. (The first time this
> happened, I didn't even know that something would eventually show up on the
> screen -- I thought it was an infinite loop).
>
> Here's an example code that shows this behavior:
>
> <snip>
> require 'nokogiri'
> class A
> def x
> @xml = Nokogiri::XML(File.new('baz.xml', 'rb').read())
> foo()
> end
> end
> A.new().x()
> a.x
> </snip>
>
> Here, the time it takes for Ruby to print out the message that #foo doesn't
> exist is proportional to the size of baz.xml.
>
> As a comparison, Python doesn't seem to do this. Take the following code:
>
> <snip>
> class Test:
> def __str__(self):
> return "hello"
> a = Test()
> print a
> print a.x()
> </snip>
>
> If you execute it, this is the result:
>
> <output>
> hello
> Traceback (most recent call last):
> File "test.py", line 6, in <module>
> print a.x()
> AttributeError: Test instance has no attribute 'x'
> </output>
>
> It uses the method __str__ to convert the object to a string when necessary, but
> doesn't use it when printing out the message stating that the attribute doesn't
> exist.
>
> One obvious way to fix this would be to always print out the simpler
> representation given by rb_any_to_s.
>
> --
> Adiel Mittmann