[#35027] [Ruby 1.9-Bug#4352][Open] [patch] Fix eval(s, b) backtrace; make eval(s, b) consistent with eval(s) — "James M. Lawrence" <redmine@...>
Bug #4352: [patch] Fix eval(s, b) backtrace; make eval(s, b) consistent with eval(s)
Issue #4352 has been updated by James M. Lawrence.
Hi,
On Wed, Feb 2, 2011 at 10:47 AM, Yusuke ENDOH <mame@tsg.ne.jp> wrote:
Hi,
[#35036] [Ruby 1.9-Bug#4354][Open] File.realdirpath is expected to test for real file. — Luis Lavena <redmine@...>
Bug #4354: File.realdirpath is expected to test for real file.
[#35055] [Ruby 1.9-Bug#4359][Open] regular expressions created with Regexp::FIXEDENCODING have incorrect inspect — Aaron Patterson <redmine@...>
Bug #4359: regular expressions created with Regexp::FIXEDENCODING have incorrect inspect
[#35071] Bug in system()? — Anthony Wright <anthony@...>
I've just hit a problem where the system() method to call an external program failed in a fairly unpredictable way, and I couldn't get any clues from within ruby to diagnose the problem. As a result I ended up debugging process.c to work out what the problem was.
[#35100] [Ruby 1.9-Bug#4370][Open] Abort trap in net/http — David Phillips <redmine@...>
Bug #4370: Abort trap in net/http
[#35114] [Ruby 1.9-Bug#4373][Open] http.rb:677: [BUG] Segmentation fault — Christian Fazzini <redmine@...>
Bug #4373: http.rb:677: [BUG] Segmentation fault
[#35144] Documentation Clarifications to Array methods rotate, rotate!, index, and rindex — Loren Sands-Ramshaw <lorensr@...>
Tue Feb 8 11:47:11 2011 Loren Sands-Ramshaw <lorensr@gmail.com>
[#35146] [Ruby 1.9-Bug#4383][Assigned] psych fails to parse a symbol in a flow sequence — Yuki Sonoda <redmine@...>
Bug #4383: psych fails to parse a symbol in a flow sequence
[#35167] Redmine misconfigured (was Re: Re: [Ruby 1.9-Bug#4340] Encoding of result string for String#gsub is not consistent) — mathew <meta@...>
On Tue, Feb 8, 2011 at 16:27, Eric Hodel <drbrain@segment7.net> wrote:
[#35171] [Ruby 1.9-Bug#4386][Open] encoding: directive does not affect regex expressions — mathew murphy <redmine@...>
Bug #4386: encoding: directive does not affect regex expressions
[#35202] Patch to Net::InternetMessageIO — Daniel Cormier <daniel.cormier@...>
This patch addresses an issue when sending a message with Net::SMTP
On Fri, Feb 11, 2011 at 09:13, Daniel Cormier <daniel.cormier@gmail.com> wrote:
Perhaps that is a better solution, but shouldn't sending a message
On Fri, Feb 11, 2011 at 17:08, Daniel Cormier <daniel.cormier@gmail.com> wrote:
Ok, but since the period escaping is already being done (just with
[#35237] [Ruby 1.9-Bug#4400][Open] nested at_exit hooks run in strange order — Suraj Kurapati <redmine@...>
Bug #4400: nested at_exit hooks run in strange order
Issue #4400 has been updated by Motohiro KOSAKI.
[#35332] [ANN] Planned maintenance of redmine.ruby-lang.org — "Yuki Sonoda (Yugui)" <yugui@...>
-----BEGIN PGP SIGNED MESSAGE-----
-----BEGIN PGP SIGNED MESSAGE-----
[#35340] odd require behavior — Roger Pack <rogerdpack2@...>
Hello all.
[#35355] eval'ing large strings runs out of stack space? — Roger Pack <rogerdpack2@...>
Hello all.
[#35356] suggestion: default irb to saving history — Roger Pack <rogerdpack2@...>
Hello all.
[#35376] [Ruby 1.9 - Feature #4447] [Open] add String#byteslice() method — Suraj Kurapati <sunaku@...>
string.force_encoding(ENCODING::BINARY).slice almost does what you want,
[ruby-core:35046] Re: [Ruby 1.9-Bug#4352] [patch] Fix eval(s, b) backtrace; make eval(s, b) consistent with eval(s)
On Wed, Feb 2, 2011 at 10:47 AM, Yusuke ENDOH <mame@tsg.ne.jp> wrote: > Hi, > > 2011/2/2 James M. Lawrence <redmine@ruby-lang.org>: > > Thank you for that detailed explanation. The problem for me is the > > connection to source_location, which should be usable by tools. > > What kind of tools are you talking about? > Even if a binding location is discarded, we can still fake __FILE__ > and __LINE__ without using a binding: > > eval <<-END, nil, "/etc/passwd", 1 > def foo > end > END > p method(:foo).source_location #=> ["/etc/passwd", 1] > > So, source_location user should know and accept the fact that the > information is not trustable. > Sigh. The main use of setting the file and line in an eval() call is to get around the fact that the location is not what folks expect. In fact, that's why you yourself used that form to suggest how to rewrite the code to do what James M. Lawrence seems to want. See also http://ola-bini.blogspot.com/2008/01/ruby-antipattern-using-eval-without.html. It is called an "anti-pattern" there which I guess is used in a derogatory fashion. A place where setting the file and line is used is in template systems like merb or erb where the file the user works on is not a Ruby file but a template file that expands to a Ruby file. In that situation, disregarding the expanded Ruby file is convenient since there can only be one location attached in the Ruby implementation. However I don't see why a templating system couldn't also provide an expanded Ruby file for debugging problems much as one can get the C-preprocessed output for a C program when one wants. In the trepanning debuggers (http://github.com/rocky/rb-trepanning and http://github.com/rbx-trepanning) I allow similar types of filename remapping to go on in the debugger. But in reporting a location I always try to report both locations; and it is done automatically in showing an eval location. But shouldn't we try to address the location problem head on in the Ruby implementation? I suspect it too late to try to change Ruby MRI 1.x, but perhaps in Ruby 2.x some thought could be given to how to address. If the fact that source_location is not trustable is a a concern, then perhaps setting the file and line parameters on eval can be disallowed at some level greater than 0 and less than 4 which is where eval() is disallowed totally. > Why do you think only a binding location as a problem? > > -- > Yusuke Endoh <mame@tsg.ne.jp> > >