I posted it to debian-devel list yesterday, but I'd like to know user's comments. Since I don't subscribe debian-user, please don't forget adding Cc: [EMAIL PROTECTED]
Thanks, Fumitoshi UKAI
--- Begin Message --->From [EMAIL PROTECTED] Fri Jun 13 04:39:34 2003 X-Original-To: [EMAIL PROTECTED] Delivered-To: [EMAIL PROTECTED] X-Return-Path: <[EMAIL PROTECTED]> Delivered-To: [EMAIL PROTECTED] Old-Return-Path: <[EMAIL PROTECTED]> Date: Fri, 13 Jun 2003 03:26:10 +0900 Message-ID: <[EMAIL PROTECTED]> From: Fumitoshi UKAI <[EMAIL PROTECTED]> To: [EMAIL PROTECTED] Subject: [ruby] Proposal: ruby 1.6.8 for stable User-Agent: Wanderlust/2.10.0 (Venus) SEMI/1.14.4 (Hosorogi) FLIM/1.14.4 (=?ISO-8859-4?Q?Kashiharajing=FE-mae?=) APEL/10.5 Emacs/21.3 (i386-pc-linux-gnu) MULE/5.0 (SAKAKI) Organization: Debian JP Project MIME-Version: 1.0 (generated by SEMI 1.14.4 - "Hosorogi") Content-Type: text/plain; charset=ISO-2022-JP X-Spam-Status: No, hits=-2.0 required=4.0 tests=BAYES_01,USER_AGENT version=2.53-lists.debian.org_2003_04_28 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.53-lists.debian.org_2003_04_28 (1.174.2.15-2003-03-30-exp) Resent-Message-ID: <[EMAIL PROTECTED]> Resent-From: [EMAIL PROTECTED] X-Mailing-List: <[EMAIL PROTECTED]> archive/latest/145103 X-Loop: [EMAIL PROTECTED] List-Post: <mailto:[EMAIL PROTECTED]> List-Help: <mailto:[EMAIL PROTECTED]> List-Subscribe: <mailto:[EMAIL PROTECTED]> List-Unsubscribe: <mailto:[EMAIL PROTECTED]> Precedence: list Resent-Sender: [EMAIL PROTECTED] Resent-Date: Thu, 12 Jun 2003 13:27:51 -0500 (CDT) Hi, Ruby users in debian. Currently, we have ruby 1.6.7 in stable. However, this version has many functionality problem (*1), so upstream released 1.6.8 in stable branch on 2002-12-24. For half a year since 1.6.8 released, there are a few important problem found in 1.6.8 compared with 1.6.7. So, we, debian ruby maintainance team (akira, tagoh, ukai), are considering to upgrade ruby to 1.6.8 in stable (stable-proposed-updates). I believe this upgrade won't break any ruby scripts and modules in stable. Backporting only important functionality fixes is another option, but I'm afraid that it would introduce another problem by backporting since there are many fixes. Ruby 1.6.8 package is known to work in unstable for long time. So, we prefer 1.6.8 to backporting. Any comments? Regards, Fumitoshi UKAI (*1) http://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=ruby+1.6+feature Yes, this is written in Japanese. So, I've attached breif translation only 1.6.7 -> 1.6.8. 1.6.7 (2002-03-01) -> 1.6.8 (2002-12-24) 2002-10-02: Thread (cygwin) Cygwin's Thread switch problem fixed [ruby-list:36058], [ruby-list:24637] 2002-10-01: Socket (win) Windows socket problem fixed [ruby-talk:40015], [ruby-win32:366] 2002-09-12: Thread.status (?) When signal is trapped by 'trap', thread status was not preserved, so that thread status sometimes become strange if interrupted by signal. [ruby-talk:40337], [ruby-core:00019] 2002-09-11: Queue#pop Queue#pop race condition fixed [ruby-dev:17223] 2002-09-11: SizedQueue.new fix bug to accept negative integer as argument. 2002-09-05: expression interpolation feature changes in stable snapshot was reverted. p "#{ "" }" => ruby 1.6.7 (2002-03-01) [i586-linux] "" => -:1: warning: bad substitution in string ruby 1.6.7 (2002-09-12) [i586-linux] "#{ }" => ruby 1.6.7 (2002-09-25) [i586-linux] "" Note that this is not backport from 1.7. p "#{ "" # comment }" => ruby 1.6.8 (2002-10-04) [i586-linux] "" => -:1: parse error ruby 1.7.3 (2002-10-04) [i586-linux] SizedQueue#deq, #shift SizedQueue#enq added(aliases to push, pop). Since these were not undefiend, enq will use method in superclass Queue. 2002-09-11: Tempfile#size Added [ruby-dev:17221] 2002-09-09 fix bug not to set environment variable to child process in mswin32/mingw32 version since 1.6.6 [ruby-dev:18236] 2002-09-03 Great performance improvement. Ruby compiled by using bison become much faster when load library many times. [ruby-dev:18145] 2002-08-20 File.expand_path fix bugs for Cygwin 1.3.x [ruby-bugs-ja:PR#299] p File.expand_path('file', 'c:/') => ruby 1.6.7 (2002-03-01) [i586-linux] /tmp/c:/file => ruby 1.6.7 (2002-08-21) [i586-linux] c:/file 2002-08-19 Thread (win) fix bugs that ruby was dead if you use both Ruby's thread and Win32 structured exception (including callbacks from Win32 API).[ruby-win32:273] 2002-08-12 Hash#== Default values of Hash object are considered equal when equal by '==' method. p Hash.new("foo") == Hash.new("bar") => ruby 1.6.7 (2002-03-01) [i586-linux] true => ruby 1.6.7 (2002-08-21) [i586-linux] false 2002-07-11 String#slice! ruby 1.6.7 raise exception if out of range string is used. ruby 1.6.8 always return nil. (same as String#[], String#slice) p "foo".slice!("bar") # <- return nil in ruby 1.6.7 or prior p "foo".slice!(5,10) => ruby 1.6.7 (2002-03-01) [i586-linux] nil -:2:in `slice!': index 5 out of string (IndexError) from -:2 => ruby 1.6.7 (2002-08-01) [i586-linux] nil nil 2002-07-05 String#split ruby 1.6.8 accept nil for first argument.[ruby-talk:43513] In this case, $; is used for separator. ruby 1.6.7 uses $; only when argument is omitted. $; = ":" p "a:b:c".split(nil) => -:2:in `split': bad separator (ArgumentError) from -:2 ruby 1.6.7 (2002-03-01) [i586-linux] => ruby 1.6.7 (2002-07-30) [i586-linux] ["a", "b", "c"] 2002-06-15 Dir.glob ruby 1.6.7 doesn't match dangling symlink by Dir.glob. File.symlink("foo", "bar") p Dir.glob("bar") => ruby 1.6.7 (2002-03-01) [i586-linux] [] => ruby 1.6.7 (2002-08-01) [i586-linux] ["bar"] 2002-06-13 Hash[] ruby 1.6.7 doesn't dup & freeze key string in Hash[]. a = "key" h = Hash[a,"val"] h.keys[0].upcase! p a => ruby 1.6.7 (2002-03-01) [i586-linux] "KEY" => -:3:in `upcase!': can't modify frozen string (TypeError) from -:3 ruby 1.6.7 (2002-08-01) [i586-linux] 2002-06-10 Fixnum#>>, << By shifing negative integer to right, you may get 0 in ruby 1.6.7 [ruby-bugs-ja:PR#247] Strange behaviour to shift left with negative argument, that means to shift right, in ruby 1.6.7. [ruby-bugs-ja:PR#248] p(-1 >> 31) => ruby 1.6.7 (2002-03-01) [i586-linux] 0 => ruby 1.6.7 (2002-08-01) [i586-linux] -1 p(-1 << -1) => ruby 1.6.7 (2002-03-01) [i586-linux] -2147483649 => ruby 1.6.7 (2002-08-01) [i586-linux] -1 2002-06-05 Math.acosh Math.asinh Math.atanh Added 2002-06-03 String#[]= ruby 1.6.7 returns rvalue if receiver doesn't have such index key string. ruby 1.6.8 raise IndexError exception in such a case. foo = "foo" p foo["bar"] = "baz" p foo => ruby 1.6.7 (2002-03-01) [i586-linux] "baz" "foo" => -:2:in `[]=': string not matched (IndexError) from -:2 ruby 1.6.7 (2002-07-30) [i586-linux] 2002-06-03 sprintf() ruby 1.6.8 follow same rule of type conversion for "%d" in format string with Integer. p sprintf("%d", nil) => -:1:in `sprintf': no implicit conversion from nil (TypeError) from -:1 ruby 1.6.7 (2002-03-01) [i586-linux] => ruby 1.6.7 (2002-07-30) [i586-linux] "0" 2002-05-23 -* option(?) ruby 1.6.7 accept the following line #! ruby -*- mode: ruby -*- ruby 1.6.8 don't. Put -*- line for Emacs in 2nd line not 1st line as above. [ruby-dev:17193] ruby '-*' -v => ruby 1.6.7 (2002-03-01) [i586-linux] => ruby: invalid option -* (-h will show valid options) 2002-05-22 parsedate version up [ruby-dev:17171] 2002-05-22 -T option ruby 1.6.7 ignores options after -T if you put options after -T without spaces. ruby 1.6.8 considers such options if -T is followed by non-digit. (same as -0 option) [ruby-dev:17179] ruby -Tv # -v is ignored (ruby 1.6.7 (2002-03-01) [i586-linux]) => ruby: No program input from stdin allowed in tainted mode (SecurityError) => ruby 1.6.7 (2002-07-30) [i586-linux] 2002-05-20 IO#close ruby 1.6.7 raise error if you close_write dupped bidirectional pipe. [ruby-dev:17155] open("|-","r+") {|f| if f f.dup.close_write else sleep 1 end } => ruby 1.6.7 (2002-03-01) [i586-linux] -:3:in `close_write': closing non-duplex IO for writing (IOError) from -:3 from -:1:in `open' from -:1 => ruby 1.6.7 (2002-07-30) [i586-linux] 2002-05-02 Regexp.quote ruby 1.6.8 quotes # with backslash, so that you can use quoted regexp in //x [ruby-bugs-ja:PR#231] p Regexp.quote("#") p /a#{Regexp.quote("#")}b/x =~ "ab" => -:3: warning: ambiguous first argument; make sure ruby 1.6.7 (2002-03-01) [i586-linux] "#" 0 => -:3: warning: ambiguous first argument; make sure ruby 1.6.7 (2002-07-30) [i586-linux] "\\#" nil 2002-04-29: rb_find_file() ruby 1.6.8 raises SecurityError for non absolute path in $SAFE >= 4. 2002-04-26: Regexp.quote ruby 1.6.8 quotes \ with backslash, so that you can use quoted regexp in //x [ruby-bugs-ja:PR#231] p Regexp.quote("\t") p /a#{Regexp.quote("\t")}b/x =~ "ab" => -:3: warning: ambiguous first argument; make sure ruby 1.6.7 (2002-03-01) [i586-linux] "\t" 0 => -:3: warning: ambiguous first argument; make sure ruby 1.6.7 (2002-05-04) [i586-linux] "\\t" nil 2002-04-20: Regexp#inspect In ruby 1.6.7, inspect for Regexp object with /x flag converts newline to \n [ruby-bugs-ja:PR#225] p /a b/x => -:1: warning: ambiguous first argument; make sure ruby 1.6.7 (2002-03-01) [i586-linux] /a\n b/x => -:1: warning: ambiguous first argument; make sure ruby 1.7.2 (2002-04-24) [i586-linux] /a b/x 2002-04-19: termination Fix bug that you need send a signal twice for the following script. [ruby-bugs-ja:PR#223] trap(:TERM, "EXIT") END{ puts "exit" } Thread::start{ Thread::stop } sleep 2002-04-17: Regexp#inspect [ruby-bugs-ja:PR#222] p %r{\/} => ruby 1.6.7 (2002-03-01) [i586-linux] /\\// => ruby 1.6.7 (2002-05-04) [i586-linux] /\// 2002-04-15: pack('U') Fix bug that pack('U') and unpack('U') are not reverse function. (unpack process by character, not by byte) [ruby-bugs-ja:PR#220] p [128].pack("U") p [128].pack("U").unpack("U") => ruby 1.6.7 (2002-03-01) [i586-linux] "\302\200" [0] => ruby 1.6.7 (2002-05-04) [i586-linux] "\302\200" [128] 2002-04-11: IO#write Fix bug to fail to detect EPIPE on socket or pipe. [ruby-dev:16849] 2002-04-11: cgi/session.rb support for multipart form. 2002-04-10: Object#remove_instance_variable ruby 1.6.8 raises NameError if specified instance variable is undefined. [ruby-bugs-ja:PR#216] Object.new.instance_eval { p remove_instance_variable :@foo } => ruby 1.6.7 (2002-03-01) [i586-linux] nil => -:2:in `remove_instance_variable': instance variable @foo not defined (NameError) ruby 1.6.7 (2002-04-10) [i586-linux] 2002-04-04: Integer#step ruby 1.6.7 raises ArgumentError if 2nd argument is less than 1 because it is considerd as 0. ruby 1.6.8 works. 1.step(2, 0.1) {|f| p f } => -:1:in `step': step cannot be 0 (ArgumentError) from -:1 ruby 1.6.7 (2002-03-01) [i586-linux] => ruby 1.6.7 (2002-04-10) [i586-linux] 1 1.1 : 1.9 2002-04-01: $~ You can't assign nil to $~ in ruby 1.6.7. ruby 1.6.8 accept such operation.[ruby-dev:16697] /foo/ =~ "foo" p $~ $~ = nil p $~ => ruby 1.6.7 (2002-03-01) [i586-linux] #<MatchData:0x401b1be4> -:3: wrong argument type nil (expected Match) (TypeError) ^^^^^ MatchData => ruby 1.6.7 (2002-04-04) [i586-linux] #<MatchData:0x401b1c98> nil 2002-03-25 BasicSocket.do_not_reverse_lookup ruby 1.6.8 doesn't accept to set value when $SAFE > 3 [ruby-dev:16554] 2002-03-23 IO#read ruby 1.6.7 fails to File#read file with size 0 but with contents (for example, in Linux's procfs) ruby 1.6.8 can read such files. p File.open("/proc/#$$/cmdline").read => ruby 1.6.7 (2002-03-01) [i586-linux] "" => ruby 1.6.7 (2002-03-29) [i586-linux] "ruby-1.6\000-v\000-" 2002-03-22 module_eval ruby 1.6.8 doesn't change scope of constant or class variable in module_eval block. [ruby-dev:17876] class Foo FOO = 1 @@foo = 1 end FOO = 2 @@foo = 2 Foo.module_eval { p FOO, @@foo } => ruby 1.6.7 (2002-03-01) [i586-linux] 1 1 => ruby 1.6.7 (2002-03-29) [i586-linux] 2 2 2002-03-22 net/http.rb ruby 1.6.7 returns nil if Net::HTTP.new has no block. [ruby-bugs-ja:PR#214] Note that net/protocol.rb will be deprecated. 2002-03-20 File.expand_path Fix memory leak [ruby-bugs:PR#276] 2002-03-18 String literal fix improper handling kanji character in #{..} [ruby-list:34478] #! ruby -Ks p a = "#{"$BI=(B"}" => -:1: compile error in string expansion (SyntaxError) -:1: unterminated string meets end of file ruby 1.6.7 (2002-03-15) [i586-linux] => ruby 1.6.7 (2002-03-19) [i586-linux] "$BI=(B" #! ruby -Ks p %[$BI>2A(B] => -:2: parse error p %[$BI>2A(B] ^ ruby 1.6.7 (2002-03-15) [i586-linux] => ruby 1.6.7 (2002-03-19) [i586-linux] "$BI>2A(B" 2002-03-16 $~ ruby 1.6.7 doesn't clear $~ when regexp match method doesn't do matching actually. [ruby-bugs-ja:PR#208] /foo/ =~ "foo" /foo/ =~ nil p $~ /foo/ =~ "foo" $_ = nil; ~"foo" p $~ /foo/ =~ "foo" "foo".index(/bar/, 4) p $~ /foo/ =~ "foo" "foo".rindex(/bar/, -4) p $~ => ruby 1.6.7 (2002-03-06) [i586-linux] #<MatchData:0x401b1be4> #<MatchData:0x401b198c> #<MatchData:0x401b1644> #<MatchData:0x401b1414> => ruby 1.6.7 (2002-03-19) [i586-linux] nil nil nil nil 2002-03-14 autoload of extension library ruby 1.6.7 can't autoload extension library [ruby-dev:16379] autoload :Fcntl, "fcntl" require "fcntl" => -:2:in `require': uninitialized constant Fcntl (NameError) from -:2 ruby 1.6.7 (2002-03-01) [i586-linux] => ruby 1.6.7 (2002-03-15) [i586-linux] 2002-03-13 getopts.rb refine. [ruby-dev:16193], [ruby-dev:16213] 2002-03-11 octal code in regexp ruby 1.6.7 accept 4-octal if first number is 0 in \nnn in regexp. $B!#(B[ruby-bugs-ja:PR#207] p /\0001/ =~ "\0001" # equivalent to "\0" + "1" => -:1: warning: ambiguous first argument; make sure ruby 1.6.7 (2002-03-01) [i586-linux] nil => -:1: warning: ambiguous first argument; make sure ruby 1.6.7 (2002-03-15) [i586-linux] 0 2002-03-11 trap [ruby-bugs-ja:PR#206] trap('EXIT','Foo') => -:1: [BUG] Segmentation fault ruby 1.6.7 (2002-03-01) [i586-linux] => ruby 1.6.7 (2002-03-15) [i586-linux] 2002-03-10 return value of method fix return values of the following methods [ruby-bugs-ja:PR#205] - each_with_index should return self (ruby 1.6.7, return nil) - Process.setpgrp return unspecified in ruby 1.6.7 - ljust, rjust, center should return dupped string even if same result 2002-03-08 class variable [ruby-talk:35122] class C class << self def test @@cv = 5 p @@cv end end test end => -:5:in `test': uninitialized class variable @@cv in C (NameError) from -:9 ruby 1.6.7 (2002-03-01) [i586-linux] => ruby 1.6.6 (2001-12-26) [i586-linux] 5 2002-03-03 Marshal.load Marshal.load uses Proc#yield which is a mathod introduced in ruby 1.7 [ruby-dev:16178] Marshal.load(Marshal.dump('foo'), proc {|o| p o}) => -:1:in `load': undefined method `yield' for #<Proc:0x401b1b30> (NameError) from -:1 ruby 1.6.7 (2002-03-01) [i586-linux] => ruby 1.6.6 (2001-12-26) [i586-linux] "foo" -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
--- End Message ---

