[#28561] Ruby::DL vs Ruby::FFI — Aston <blackapache512-ticket@...>

Ruby.DL and FFI libraries are great for programmers like me who are not internet programmers, but are more interested in scientific and number processing etc.

11 messages 2010/03/08

[#28686] trunk (26947) build fail with msys/mingw/vista — Jon <jon.forums@...>

I get the following build failure when msysgit's "c:\git\cmd" dir is on PATH.

8 messages 2010/03/16

[#28687] [Bug #2973] rb_bug - Segmentation fault - error.c:213 — rudolf gavlas <redmine@...>

Bug #2973: rb_bug - Segmentation fault - error.c:213

10 messages 2010/03/16

[#28735] [Bug #2982] Ruby tries to link with both openssl and readline — Lucas Nussbaum <redmine@...>

Bug #2982: Ruby tries to link with both openssl and readline

16 messages 2010/03/18

[#28736] [Bug #2983] Ruby (GPLv2 only) tries to link to with readline (now GPLv3) — Lucas Nussbaum <redmine@...>

Bug #2983: Ruby (GPLv2 only) tries to link to with readline (now GPLv3)

10 messages 2010/03/18

[#28907] [Bug #3000] Open SSL Segfaults — Christian Höltje <redmine@...>

Bug #3000: Open SSL Segfaults

19 messages 2010/03/23

[#28924] [Bug #3005] Ruby core dump - [BUG] rb_sys_fail() - errno == 0 — Sebastian YEPES <redmine@...>

Bug #3005: Ruby core dump - [BUG] rb_sys_fail() - errno == 0

10 messages 2010/03/24

[#28954] [Feature #3010] slow require gems in ruby 1.9.1 — Miao Jiang <redmine@...>

Feature #3010: slow require gems in ruby 1.9.1

15 messages 2010/03/24

[#29179] [Bug #3071] Convert rubygems and rdoc to use psych — Aaron Patterson <redmine@...>

Bug #3071: Convert rubygems and rdoc to use psych

10 messages 2010/03/31

[ruby-core:29048] [Bug #3022] What are $. and ARGF.lineno ?

From: Marc-Andre Lafortune <redmine@...>
Date: 2010-03-26 19:14:57 UTC
List: ruby-core #29048
Bug #3022: What are $. and ARGF.lineno ?
http://redmine.ruby-lang.org/issues/show/3022

Author: Marc-Andre Lafortune
Status: Open, Priority: Normal
Category: core, Target version: 1.9.2
ruby -v: ruby 1.9.2dev (2010-03-03 trunk 26805) [x86_64-darwin10.2.0] 

1) $. is not officially documented.

This makes it difficult to know if it works as expected or not...

The Ruby Prog Language (Flanagan & Matz) states:
"The number of the last line read from the current input file. Equivalent to ARGF.lineno."

This is not true in trunk, as demonstrated by:

  $ rubydev -e "
      ARGF.gets
      File.open('/etc/passwd'){|f| f.gets; f.gets}
      p $., ARGF.lineno
    " /etc/hosts
  2
  1


What is the "current input file"? Not clear, but it's not thread local, as shown:

  $ rubydev -e "
    p $.
    Thread.new{File.open('/etc/passwd').gets; p $. }.join;
    p $.
  "
  0
  1
  1



2) ARGF.lineno does not conform to its doc.

The doc states:

  Returns the current line number of the current file in ARGF. This value
  can be set manually with ARGF.lineno=.


Reading this, I would expect ARGF.lineno to be the same as ARGF.to_io.lineno.

That is not the case:

  rubydev -e 'p "#{ARGF.lineno} #{ARGF.to_io.lineno}" while ARGF.gets' /etc/hosts /etc/passwd
  "1 1"
  "2 2"
  ...
  "25 1"
  "26 2"
  ...


1) Maybe the best definition would be that $. returns the number of line read operations issued, from the last time an IO was read in the current thread?

2) I suggest the documentation of ARGF.lineno be changed to:

  Returns the current line number of ARGF as a whole. This value
  can be set manually with ARGF.lineno=.


See also [ruby-core:26303]


----------------------------------------
http://redmine.ruby-lang.org

In This Thread

Prev Next