[#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:35047] Re: [Ruby 1.9-Bug#4352] [patch] Fix eval(s, b) backtrace; make eval(s, b) consistent with eval(s)
I'd like to make more succinct the important point of what I wrote below: address handling source locations correctly in Ruby implementations, and you should not ever need the file and line parameters on eval. On Wed, Feb 2, 2011 at 11:21 AM, Rocky Bernstein <rockyb@rubyforge.org>wrote: > > > 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> >> >> >