[#25936] [Bug:1.9] [rubygems] $LOAD_PATH includes bin directory — Nobuyoshi Nakada <nobu@...>

Hi,

10 messages 2009/10/05

[#25943] Disabling tainting — Tony Arcieri <tony@...>

Would it make sense to have a flag passed to the interpreter on startup that

16 messages 2009/10/05

[#26028] [Bug #2189] Math.atanh(1) & Math.atanh(-1) should not raise an error — Marc-Andre Lafortune <redmine@...>

Bug #2189: Math.atanh(1) & Math.atanh(-1) should not raise an error

14 messages 2009/10/10

[#26222] [Bug #2250] IO::for_fd() objects' finalization dangerously closes underlying fds — Mike Pomraning <redmine@...>

Bug #2250: IO::for_fd() objects' finalization dangerously closes underlying fds

11 messages 2009/10/22

[#26244] [Bug #2258] Kernel#require inside rb_require() inside rb_protect() inside SysV context fails — Suraj Kurapati <redmine@...>

Bug #2258: Kernel#require inside rb_require() inside rb_protect() inside SysV context fails

24 messages 2009/10/22

[#26361] [Feature #2294] [PATCH] ruby_bind_stack() to embed Ruby in coroutine — Suraj Kurapati <redmine@...>

Feature #2294: [PATCH] ruby_bind_stack() to embed Ruby in coroutine

42 messages 2009/10/27

[#26371] [Bug #2295] segmentation faults — tomer doron <redmine@...>

Bug #2295: segmentation faults

16 messages 2009/10/27

[ruby-core:26309] Re: IO.foreach (and friends) effect on $< and $.

From: Charles Oliver Nutter <headius@...>
Date: 2009-10-26 03:27:52 UTC
List: ruby-core #26309
On Sun, Oct 25, 2009 at 9:22 PM, Marc-Andre Lafortune
<ruby-core-mailing-list@marc-andre.ca> wrote:
> I believe there is a bug in trunk with $. but I am not certain how to
> resolve it.
>
> Is there an official documentation for $. (and all other global
> variables) in rdoc?
>
> The Ruby Prog Language (Flanagan & Matz) states:
>
> The number of the last line read from the current input file.
> Equivalent to ARGF.lineno.
>
> I find "current input file" to be very imprecise. Is that the file
> currently being read from ARGF? or the last IO read from?

It is definitely imprecise, especially now considering that 1.8 and
1.9 do things differently

> Currently, it's a bit of both. It's usually the last read io:
>
> $ rubydev -e "ARGF.gets; f=File.new '/etc/passwd'; 4.times{f.gets}; p
> $., ARGF.lineno" /etc/hosts
> 4
> 1

Results on my system; "ruby" is OS X 10.5 latest 1.8.6 version:

~/projects/jruby ➔ ruby -e 'ARGF.gets; f=File.new "/etc/passwd";
4.times{f.gets}; p $., ARGF.lineno' /etc/hosts
4
4

~/projects/jruby ➔ ruby1.8.7 -e 'ARGF.gets; f=File.new "/etc/passwd";
4.times{f.gets}; p $., ARGF.lineno' /etc/hosts
4
4

~/projects/jruby ➔ ruby1.9 -e 'ARGF.gets; f=File.new "/etc/passwd";
4.times{f.gets}; p $., ARGF.lineno' /etc/hosts
4
1

> Clearly, it is not equivalent to ARGF.lineno in this case.
>
> On the other hand, it's affected by ARGF.lineno= (contrary to any
> other IO#lineno=), and vice-versa:
> $ rubydev -e "ARGF.lineno = 42; p $.; $. = 56; p ARGF.lineno"
> 42
> 56

Yes, this was confusing to me as well. I don't understand why these
are intertwined.

- Charlie

In This Thread

Prev Next