[前][次][番号順一覧][スレッド一覧]

ruby-changes:3213

From: ko1@a...
Date: 25 Dec 2007 23:20:02 +0900
Subject: [ruby-changes:3213] matz - Ruby:r14707 (trunk): * doc/NEWS: changes for 1.9

matz	2007-12-25 23:19:55 +0900 (Tue, 25 Dec 2007)

  New Revision: 14707

  Modified files:
    trunk/doc/NEWS

  Log:
    * doc/NEWS: changes for 1.9

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/doc/NEWS?r1=14707&r2=14706

Index: doc/NEWS
===================================================================
--- doc/NEWS	(revision 14706)
+++ doc/NEWS	(revision 14707)
@@ -1,837 +1,207 @@
-= command line options
+Changes for 1.9
 
-: -W option
+Incompatible (Severe)
 
-  new option to specify warning level. -W0 to shut up warnings, -W1 for normal level,
-  -W2 for verbose level.  -w equals to -W2.
+    * New syntax and semantics
+          o Block arguments are always local
+          o Block arguments
+          o New semantics for block arguments
+          o Block local variables
+    * String
+          o No longer an Enumerable
+          o ?c semantics
+          o "One-char-wide" semantics for String#[] and String#[]= [Ruby2]
+          o Encoding-awareness
+    * IO operations
+          o IO#getc
 
-= language syntax
+Incompatible (Trivial)
 
-: arbitrary delimited string array
+    * New syntax and semantics
+          o Method used for splat arguments: #to_splat
+          o defined? and local variables
+    * Kernel and Object
+          o Kernel#require
+    * Class and Module
+          o Class variables behavior
+          o Module#attr is an alias of attr_reader
+          o Module#instance_methods, #private_instance_methods, #public_instance_methods
+          o Extra subclassing check when binding UnboundMethods
+    * Exceptions
+          o Equality of exceptions
+          o SystemStackError
+          o SecurityError
+          o Removed Exception#to_str [Ruby2]
+    * Array
+          o Array#nitems
+          o Array#[m,n] = nil places nil in the array.
+    * Hash
+          o Hash#to_s is equivalent to Hash#inspect
+          o Semantics for Hash#each and Hash#each_pair
+          o Hash#select
+    * Integer
+          o Integer(nil) raises TypeError
+    * Struct
+          o Struct#inspect
+    * File and Dir operations
+          o #to_path in File.path, File.chmod, File.lchmod, File.chown, File.lchown, File.utime, File.unlink... [Ruby2]
+          o Dir.[], Dir.glob
+          o Dir.exist?
+    * IO operations
+          o Non-blocking IO
+          o IO#getbyte, IO#readbyte, StringIO#getbyte, StringIO#readbyte
+          o Kernel#open takes encoding specified
+          o IO#initialize now accepts an IO argument
+          o StringIO#readpartial
+          o IO#lines
+          o IO#bytes
+          o IO.try_convert
+          o Limit input in IO#gets, IO#readline, IO#readlines, IO#each_line, IO#lines, IO.foreach, IO.readlines, StringIO#gets, StringIO#readline, StringIO#each, StringIO#readlines
+          o IO#ungetc, StringIO#ungetc
+	  o IO#internal_encoding, IO#external_encoding, IO#set_encoding
+	  o IO.pipe takes encoding option
+    * Time
+          o New format in Time#to_s
+          o Timezone information preserved on Marshal.dump/load
+    * Symbols: restriction on literal symbols
+    * $SAFE and bound methods
+    * Deprecation
+          o VERSION and friends
+          o Kernel.to_a
+          o Kernel#getc
+          o Object#type
+          o Hash#index
+          o ENV.index
+          o Symbol#to_int
+          o Removed Array and Hash #indices, #indexes
+	  o libraries: base64, mailread, getopts, parsearg, soap, wsdl
 
-  %W(...) notation, word list literal like %w(...) with the
-  exception that #{} interpolation is allowed.
+Compatible
 
-: arbitrary delimited symbol literl
+    * New syntax and semantics
+          o New literal hash syntax
+          o New syntax for lambdas
+          o .() and calling Procs without #call/#[]
+          o Mandatory arguments after optional arguments allowed
+          o Multiple splats allowed
+          o Arguments to #[]
+          o printf-style formatted strings (%)
+          o Newlines allowed before ternary colon
+    * Kernel and Object
+          o BasicObject
+          o #instance_exec
+          o Object#=~
+          o Object#tap
+          o Kernel#instance_variable_defined?
+          o Kernel#define_singleton_method
+          o Kernel#singleton_methods, Kernel#methods
+    * Class and Module
+          o Module#const_defined?, #const_get and #method_defined?
+          o Module#class_variable_defined?
+          o #class_variable_{set,get}
+          o Class of singleton classes
+          o #module_exec
+    * Binding#eval
+    * Blocks and Procs
+          o Arity of blocks without arguments
+          o proc is now a synonym of Proc.new
+    * Blocks and Procs
+          o Proc#yield
+          o Passing blocks to #[]
+          o Proc#lambda?
+    * Enumerable and Enumerator
+          o Enumerable methods called without a block
+          o Enumerable#cycle
+          o Enumerable#each_with_index
+          o Enumerable#first(n)
+          o Enumerable#group_by
+          o Enumerable#find_index
+          o Enumerable#take
+          o Enumerable#drop
+          o Enumerable#take_while
+          o Enumerable#drop_while
+          o Enumerator#each
+          o Enumerable#inject (#reduce) without a block
+          o Enumerable#count
+          o Enumerable#reduce
+          o Enumerator#with_index
+          o Enumerable##min_by, #max_by
+          o Enumerable#zip
+          o Enumerable#minmax and minmax_by
+          o Enumerator#rewind
+          o Enumerator#next
+    * Regexp#match, String#match
+          o Regexp#match, String#match
+    * Fiber: coroutines/micro-threads
+    * Array
+          o Block argument to Array#index, Array#rindex [Ruby2]
+          o Array#combination
+          o Array#permutation
+          o Array#product
+          o Array#pop, Array#shift
+          o Array#to_s is equivalent to Array#inspect
+          o Array.try_convert
+    * Hash
+          o preserving item insertion order
+          o Hash#_compare_by_identity and Hash#compare_by_identity?
+          o Hash.try_convert
+    * Integer
+          o Integer#odd?, #even?
+          o Integer#pred
+    * Method
+          o Method#receiver
+          o Method#name
+          o Method#owner
+    * Numeric
+          o Numeric#upto, #downto, #times, #step
+          o Numeric#scalar?, Complex#scalar?
+          o Numeric#div
+          o Numeric#fdiv
+    * Range
+          o Range#cover?
+          o Range#include?
+          o Range#min, Range#max
+    * Regexp
+          o Regexp#=== matches symbols
+          o Regexp.try_convert
+    * String
+          o String#clear
+          o String#each_char
+          o String#ord
+          o String#partition, #rpartition
+          o String#lines
+          o String#bytes
+          o String#encoding
+          o String#force_encoding
+          o String#start_with?, #end_with?
+          o String#unpack with a block
+          o String#hash
+          o String#upto
+          o String.try_convert
+	  o String.encoding, String#force_encoding, String#encode
+    * Symbol
+          o Zero-length symbols allowed
+          o Symbol#=== matches strings
+          o Symbol#intern
+          o Symbol#encoding
+          o Symbol methods similar to those in String
+    * Math
+          o Math#log and Math#log2
+    * File and Dir operations
+          o New methods
+    * Process
+          o Process.setrlimit
+          o Process.daemon
+          o Process.exec
+    * Misc. new methods
+          o public_send
+          o GC.stress, GC.stress=
+          o Method#hash, Proc#hash
+          o __method__ and __callee__
+          o Symbol#to_proc
 
-  :"foo", :"foo#{bar}", etc.
-
-: expression interpolation in strings
-
-  Now arbitrary statements are allowed inside #{} interpolation
-  without escapes.  In other hand, they can no longer access to
-  variables defined in eval.
-
-: negative number literals
-
-  Digits preceded minus sign is a literal integer.
-
-: array expansion
-
-  Fixed with the following behavior:
-
-    a = *[1]
-    p a #=> [1]
-
-  Now 1-element array in rhs is expanded properly.
-
-    a = *[1]
-    p a #=> 1
-
-: break and next
-
-  Extended to take an optional expression, which is used as a value
-  for termination.
-
-: direct assignment to Foo::Bar is allowed
-
-  also, you can define "class Foo::Bar; end".
-
-= language core
-
-: $stdin, $stdout, $stderr
-
-  can be assignable again.  the original stdio are preserved as STDIN,
-  STDOUT, STDERR.
-
-: $VERBOSE now has 3 levels
-
-  nil - silence, false - medium (default), true - verbose
-
-: allocation framework
-
-  any instance of class can be allocated by class.allocate,
-  (except for a few classes).
-
-: comparison of exception classes in a rescue clause
-
-  changed to use Module#=== for comparing $! with the exception
-  class specified in each rescue clause.
-
-  as the previous behavior was to use kind_of?, the effect is limited
-  to the SystemCallError case.  SystemCallError.=== has been newly
-  defined to return true when the two have the same errno.  With this
-  change, SystemCallError's with the same errno, such as Errno::EAGAIN
-  and Errno::EWOULDBLOCK, can both be rescued by listing just one of
-  them.
-
-: constants lookup
-
-  improved at the performance of searching by using an internal hash
-  table.
-
-  calls const_missing method of the class/module, if constant is not
-  found in the look up path.
-
-: expression parenthesis in the first argument
-
-  altered to get the following code (note the space after p):
-
-    p ("xx"*2).to_i
-
-  Interpreted as:
-
-    p (("xx"*2).to_i)
-
-  Instead of:
-
-    (p("xx"*2)).to_i
-
-: implicit comparison in conditional expressions
-
-  Obsoleted except when it is used in -e.
-
-  : between Range and $.
-      Use explicit comparison instead.
-
-  : between Regexp and $_
-      Use the unary method ~/re/ instead.
-
-: to_str
-
-  added to get objects which define to_str() treated as String's.
-
-  now almost all the built-in methods try each argument with to_str()
-  when they expect it to be a String.
-
-    foo = Object.new
-    class <<foo
-      def to_str
-        "foo"
-      end
-    end
-    p File.open(foo)
-    => -:7:in `open': wrong argument type Object (expected String) (TypeError)
-       ruby 1.6.4 (2001-04-19) [i586-linux]
-    => -:7:in `open': No such file or directory - "foo" (Errno::ENOENT)
-       ruby 1.7.0 (2001-05-02) [i586-linux]
-
-: multiple assignment behavior
-
-  Fixed so that "*a = nil" results in "a == []".
-
-= changes in core class library
-
-: open
-
-  Extended so that when the third argument is permission flags it
-  calls open(2) instead of fopen(3).
-
-: sprintf
-
-  new format specifier "%p" is available.
-
-: lambda and proc
-
-  Proc object returns from these methods has the following attributes:
-
-  * strict argument number check
-  * break and return terminates the proc execution.
-
-: warn(message)
-
-  a method to give warnings.
-
-: abort()
-
-  takes optional terminate message argument.
-
-: Object#initialize_copy
-
-  copy constructor for clone and dup.
-
-: Object#instance_variable_set, Object#instance_variable_get
-
-  added.
-
-: Object#singleton_method_removed
-: Object#singleton_method_undefined
-
-  Added.
-
-: Array#transpose
-
-  added.
-
-: Array#fetch(index [, default])
-
-  Added.  If a default value isn't given, raises index error if index
-  is out of range.
-
-: Array#insert(n, other, ...)
-
-  Added. [ruby-talk:14289]
-
-  This is much the same as (({ary[n,0] = [other,...]})) except
-  returing self.
-
-    ary = [0,1,2,3]
-    ary[2, 0] = [4, 5, 6]
-    p ary
-
-    ary = [0,1,2,3]
-    ary.insert(2, 4, 5, 6)
-    p ary
-
-: Array#sort!
-
-  Changed to always return self without checking whether the sequence
-  of the elements was modified or not.
-
-  Beware that this behavior is not guaranteed to continue in the
-  future.  Do not rely on its return value. [ruby-dev:12506]
-
-: Array#filter
-
-  Previously deprecated, now removed.  Use Array#collect!.
-
-: Array#pack, String#unpack
-
-  Allows comment in template strings.
-
-: Array#pack, String#unpack
-
-  New templates 'q' and 'Q' for 64bit integer (signed and unsigned respectively).
-
-: Array#new
-
-  Now takes block to fill initial values.  E.g.
-
-	Array.new(10) { |i| i + 1 }
-	=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
-
-: Array#fill
-
-  Takes block to get the values to fill.
-
-: Array#fetch
-
-  Takes block to get the default value.
-
-: Array#zip
-
-  added.
-
-: Hash#update
-
-  Takes block to resolve key conflict.
-
-: Hash#merge and Hash#merge!
-
-  update hash.  Hash#merge! is a synonym of Hash#update.
-
-: String#split
-
-  if "sep" argument is a string, regular expression meta characters
-  are escaped internally.
-
-: String#rstrip
-
-  chop off NULs at the end of strings.
-
-: String#to_i
-
-  Now accepts optional base argument.
-
-	"101".to_i(10) => 101
-	"101".to_i(2)  => 5
-	"101".to_i(8)  => 65
-	"101".to_i(16) => 257
-
-  A base argument of 0 guesses at the base.
-
-	"101".to_i(0)   => 101
-	"0b101".to_i(0) => 5
-	"0101".to_i(0)  => 65
-	"0x101".to_i(0) => 257
-
-: String#[regexp, nth]
-
-  Extended to accepts optional second argument.
-
-  It tries match between self and REGEXP, then returns the
-  content of the NTH regexp register.
-
-: String#casecmp
-
-  Added.  This is a case insensitive version of String#<=>.
-
-: String#chomp
-
-  If $/ == "\n", chops off last newlines (any of \n, \r, \r\n).
-
-: String#eql?
-
-  Changed to be always case sensitive.
-
-: String#insert(n, other)
-
-  Added.
-
-  This is much the same as (({str[n, 0] = other})) except returing
-  self.
-
-: String#lstrip, rstrip, lstrip!, rstrip!
-
-  Added.  These strip only left or right part of a string.
-
-: String#match
-
-  Added.
-
-: String/Array methods
-
-  Returns an instance of receivers class.
-
-: String.new
-
-  The first argument becomes optional.
-
-: Symbol#intern
-
-  Added.
-
-: Symbol.all_symbols
-
-  Added. [ruby-dev:12921]
-
-: IO
-
-  64bit off_t support by Janathan Baker.
-
-: IO#read
-: IO#sysread
-
-  takes optinal second argument for read buffer.
-
-: IO::sysopen
-
-  New method to get a raw file descriptor.
-
-: IO#sysseek
-
-  Added.
-
-: IO#fsync
-
-  new method that copies all in-memory parts of a file to disk and
-  waits until the device reports that all parts are on stable storage.
-  Implemented with fsync(2) or equivalent.
-
-: IO.open
-
-  Made public.  Can only associate an IO object with a file number
-  like IO.new and IO.for_fd, but can take a block.
-
-: IO.for_fd
-
-  Added as a synonym for IO.new.
-
-: IO.read
-
-  Added.  Like IO.readlines, except it returns the entire file as a
-  string.  [ruby-talk:9460]
-
-: File#fnmatch, File::Constants::FNM_*
-
-  Added.  Refer to the fnmatch(3) manpage for details.
-
-  Localism is FNM_DOTMATCH which has the opposite meaning of the
-  commonly known FNM_PERIOD, which does not exist in Ruby.
-
-  e.g.
-
-    # exclude files matching "*.bak" case-insensitively.
-    files.reject! {|fn| File.fnmatch?("*.bak", fn, File::FNM_CASEFOLD) }
-
-: File.lchmod
-: File.lchown
-
-  Added.
-
-: File.open, IO.open
-
-  File mode can be specified by flags like open(2),
-  e.g. File::open(path, File::CREAT|File::WRONLY).
-
-: Regexp#options
-
-  Added.
-
-: Regexp.last_match(n)
-
-  Extended to take an optional argument.
-
-: MatchData#captures
-
-  added.
-
-: Dir#path
-
-  Added.
-
-: Dir.chdir
-
-  Extended to take a block.
-
-: Dir.glob
-
-  Made to support meta-character escaping by a backslash.  Wildcards
-  and spaces may now be escaped using a backslash.
-
-: Dir.open
-
-  Changed to return what the block returns when a block is given, just
-  as File.open does. (It always returned (({nil})) in 1.6 and
-  prior)
-
-: Dir.chdir
-
-  Changed to warn only when invoked from multiple threads or no block
-  is given. [ruby-dev:13823]
-
-    Dir.chdir('foo') {
-      Dir.chdir('bar') {   # previously warned
-        puts Dir.pwd
-      }
-    }
-
-: Dir#pos=
-
-  Returns the new position instead of self.
-
-: Dir::glob
-
-  Now accepts optional FNM_* flags via the second argument, whereas
-  Dir::[] doesn't.
-
-    Dir.glob("makefile", File::FNM_CASEFOLD) #=> ['Makefile', 'makefile']
-
-: Class#inherited
-
-  Method is called when Class is inherited by another class.
-
-	class A; end
-	def A.inherited(by)
-          puts "A inherited by #{by.inspect}"
-        end
-        class B < A; end
-
-        Prints out "A inherited by B"
-
-: Module#include?
-
-  Added. [ruby-dev:13941] 
-
-: Module#included
-
-  Added.  This is a hook called after Module#append_feature.
-
-: Module#method_removed
-: Module#method_undefined
-
-  Added.
-
-: Module.new, Class.new
-
-  Extended to take block.
-
-: Time
-
-  Extended to accept a negative time_t. (Only when the platform
-  supports it)
-
-    p Time.at(-1)
-    => Thu Jan 01 08:59:59 JST 1970
-
-: Time#to_a
-: Time#zone
-
-  Made to return "UTC" under gmtime.  It used to return a platform
-  dependent value, typically "GMT", in 1.6 and prior.
-
-: Marshal to use marshal_dump and marshal_load
-
-  if a dumping object responds to 'marshal_dump', Marshal.dump calls
-  it, and dumps object returned.  Marshal.load allocates a new instance
-  using "allocate", then calls its "marshal_load" with dumped data.
-  Marshal format version is now 4.8 (was 4.6 in 1.6.8).
-
-: Marshal
-
-  Fixed not to dump anonymous classes/modules.
-
-  Fixed with loading modules.
-
-: Thread#group
-
-  new method to get belonging  ThreadGroup.
-
-: Thread#terminate
-
-  synonym of Thread#exit
-
-: Thread#join
-
-  Optional argument limits maximum time to wait the thread in second.
-  And returns nil if timed out.
-
-: ThreagGroup#enclose
-
-  prohibits thread movement from/to enclosed groups.
-
-: Range#step([step=1])
-
-  Added.
-
-: SystemCallError
-
-  SystemCallError's "===" match (used in rescue also) is now based on its errno.
-
-: Interrupt
-
-  Made a subclass of SignalException. (It was a subclass of
-  Exception in 1.6 and prior)
-
-: NameError and NoMethodError
-
-  Moved and now NoMethodError < NameError < StandardError.
-
-: NoMethodError
-
-  Added. [ruby-dev:12763]
-
-: NotImplementError
-
-  Finally obsoleted.  Use NotImplementedError.
-
-: SystemCallError.===
-
-  Added. (See the "Comparison of exception classes in a rescue clause"
-  paragraph above) [ruby-dev:12670]
-
-: SystemExit#status
-
-  Added.
-
-: Proc#==
-
-  Added.
-
-: Method#==
-
-  Added.
-
-: UnboundMethod is no longer subclass of Method
-
-  class hierarchy changed. 
-
-: Enumerable#all?
-: Enumerable#any?
-: Enumerable#inject
-: Enumerable#sort_by
-
-  Added.
-
-: Math.acos(x)
-: Math.asin(x)
-: Math.atan(x)
-: Math.cosh(x)
-: Math.hypot(x,y)
-: Math.sinh(x)
-: Math.tanh(x)
-
-  Added.
-
-: Process.abort
-: Process.exit
-
-  synonym of Kernel#abort, and Kernel#exit respectively.
-
-: Process::detach(pid)
-
-  new method to detach child process.  child process will be "wait"ed
-  automagically.
-
-: Process.times
-
-  Moved from Time.times. (Time.times still remains but emits a
-  warning)
-
-: Process.waitall
-
-  Added.
-
-: Process::Status
-
-  Added.  (({$?})) is now an instance of this class.
-
-: Process::UID, Process::GID, Process::Sys,
-
-  Added.
-
-: Signal
-
-  Added. This module has module functions Signal.trap and Signal.list.
-
-= changes in bundled libraries
-
-: lib/cgi.rb
-
-  cgi[name] returns CGI::QueryExtension::Value that wraps string
-  value, no longer array.
-
-: lib/timeout
-
-  timeout "function" wrapped in Timeout module.
-
-: TCPServer#accept, UNIXServer#accept, Socket#accept
-
-  New methods to return an accepted socket fd.
-
-: Date and DateTime
-
-  lib/date.rb now provides both Date and DateTime.
-
-  Some methods have been renamed.  But the old names are still alive.
-
-  Some new methods have been added (Date::parse, Date#strftime, etc.).
-
-  Date#mjd now returns the chronological modified Julian day number.
-
-  All facilities about tjd have been removed.
-
-: Curses
-
-  Updated.  New methods and constants for using the mouse, character
-  attributes, colors and key codes have been added.
-
-: Net::HTTP
-
-  New version of Net::HTTP has introduced seriously incompatible
-  changes. For details, see document embedded in net/http.rb itself.
-
-: Socket.pack_sockaddr_in, Socket.unpack_sockaddr_in
-
-  Added.  Utility for direct Socket access.
-
-: Socket.pack_sockaddr_un, Socket.unpack_sockaddr_un
-
-  Added.  Utility for direct Socket access.
-
-: TCPServer#listen, UNIXServer#listen
-
-  Added.
-
-: TCPSocket.new
-: TCPSocket.open
-
-  Extended to take an address and a port number for the local side in
-  optional 3rd and 4th arguments.
-
-= newly bundled library
-
-: ext/bigdecimal
-
-  variable precision decimal number 
-
-: ext/dl
-
-  an interface to the dynamic linker.
-
-: ext/enumerator
-
-  a helper module for the Enumerable interface.
-
-: ext/io/wait
-
-  IO wait methods.
-
-: ext/iconv
-
-  wrapper library of (({iconv})).
-
-: ext/openssl
-
-  OpenSSL for Ruby
-
-: ext/racc/cparse
-
-  Racc runtime library in C. (Racc is a parser generator for ruby)
-
-: ext/stringio
-
-  Pseudo (({IO})) class from/to (({String})).
-
-: ext/strscan
-
-  Fast string scanner library.
-
-: ext/syck
-
-  fast YAML parser.
-
-: lib/abbrev
-
-  creates an abbreviation table from a list
-
-: lib/benchmark
-
-  Ruby scripts benchmarker
-
-: lib/cgi/session/pstore
-
-  cgi/session back-end using pstore 
-
-: lib/csv
-
-  reads/writes CSV files.
-
-: lib/date/format
-
-  strftime for Date class
-
-: lib/drb
-
-  dRuby or distributed Ruby
-
-: lib/fileutils
-
-  file utility library.
-
-: lib/generator
-
-  converts an internal iterator to an external iterator
-
-: lib/gserver
-
-  generic server used by xmlrpc
-
-: lib/ipaddr
-
-  manipulates IP address.
-
-: lib/multi-tk
-
-  to allow safe Tk, etc.
-
-: lib/open-uri
-
-  easy-to-use wrapper for net/http and net/ftp
-
-: lib/optparse
-
-  command line options utility library
-
-: lib/pathname
-
-  handles pathname in OO manner.
-
-: lib/pp
-
-  prettyprinter for Ruby objects
-
-: lib/prettyprint
-
-  implements prettyprint algorithm.
-
-: lib/profiler
-
-  library to implement -r "profile"
-
-: lib/racc/parser
-
-  RACC parser generator runtime in Ruby.
-
-: lib/scanf
-
-  scan string and retrieve object with format
-
-: lib/set
-
-  Set class
-
-: lib/runit
-
-  RubyUnit compatible layer for test/unit
-
-: lib/test/unit
-
-  unit testing framework for Ruby
-
-: lib/tmpdir
-
-  get temporary directory path.
-
-: lib/tsort
-
-  topological sorting library.
-
-: lib/rexml
-
-  REXML XML library
-
-: lib/webrick
-
-  generic internet server kit
-
-: lib/xmlrpc
-
-  simple RPC via XML
-
-: lib/un
-
-  used like 'ruby -run -e cp -- -p foo bar'.  neat, isn't it?
-
-: lib/win32/registry
-
-  win32/registry is registry accessor
-
-: lib/yaml
-
-  YAML Ain't Mark-up Language
-
-= removed libraries
-
-: lib/ftplib
-
-  use net/ftp instead.
-
-: lib/telnet
-
-  use net/telnet instead.
-
-= new port
-
-: WindowsCE port
-: Win32 BCC
-
-= interpreter implementation
-
-: garbage collector
-
-  faster, but uses more memory for the worst case.
-
-: string concatenation
-
-  faster by avoiding too frequent realloc(3).
+* Implementation
+    * Memory Diet
+      * Object Compaction - Object, Array, String, Hash, Struct, Class, Module
+      * st_table compaction (inlining small tables)
+    * YARV

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧]