From: Daniel DeLorme Date: 2008-02-07T11:17:08+09:00 Subject: string[0..-1] no longer uses copy on write As the subject states, in 1.8 string[0..-1] used copy on write but in 1.9 it does not, i.e. $ ruby1.8 -ve 'x="x"*1000000; list=(0..99).map{ x[0..-1] }; system("ps u #{$$}")' ruby 1.8.4 (2005-12-24) [i486-linux] USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND dan42 27732 0.0 0.1 4052 2524 pts/25 S+ 11:11 0:00 ruby1.8 $ ruby1.9 -ve 'x="x"*1000000; list=(0..99).map{ x[0..-1] }; system("ps u #{$$}")' ruby 1.9.0 (2008-02-06 revision 0) [i686-linux] USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND dan42 27736 42.0 5.0 103784 101552 pts/25 Sl+ 11:11 0:00 ruby1.9 Should that be considered a bug? On a related topic, why is copy on write not used for String#dup ? Daniel