~ubuntu-branches/ubuntu/hardy/ruby1.8/hardy-updates

« back to all changes in this revision

Viewing changes to doc/NEWS-1.8.0

  • Committer: Bazaar Package Importer
  • Author(s): akira yamada
  • Date: 2007-03-13 22:11:58 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20070313221158-h3oql37brlaf2go2
Tags: 1.8.6-1
* new upstream version, 1.8.6.
* libruby1.8 conflicts with libopenssl-ruby1.8 (< 1.8.6) (closes: #410018)
* changed packaging style to cdbs from dbs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
= command line options
 
2
 
 
3
: -W option
 
4
 
 
5
  new option to specify warning level. -W0 to shut up warnings, -W1 for normal level,
 
6
  -W2 for verbose level.  -w equals to -W2.
 
7
 
 
8
= language syntax
 
9
 
 
10
: arbitrary delimited string array
 
11
 
 
12
  %W(...) notation, word list literal like %w(...) with the
 
13
  exception that #{} interpolation is allowed.
 
14
 
 
15
: arbitrary delimited symbol literl
 
16
 
 
17
  :"foo", :"foo#{bar}", etc.
 
18
 
 
19
: expression interpolation in strings
 
20
 
 
21
  Now arbitrary statements are allowed inside #{} interpolation
 
22
  without escapes.  In other hand, they can no longer access to
 
23
  variables defined in eval.
 
24
 
 
25
: negative number literals
 
26
 
 
27
  Digits preceded minus sign is a literal integer.
 
28
 
 
29
: array expansion
 
30
 
 
31
  Fixed with the following behavior:
 
32
 
 
33
    a = *[1]
 
34
    p a #=> [1]
 
35
 
 
36
  Now 1-element array in rhs is expanded properly.
 
37
 
 
38
    a = *[1]
 
39
    p a #=> 1
 
40
 
 
41
: break and next
 
42
 
 
43
  Extended to take an optional expression, which is used as a value
 
44
  for termination.
 
45
 
 
46
: direct assignment to Foo::Bar is allowed
 
47
 
 
48
  also, you can define "class Foo::Bar; end".
 
49
 
 
50
= language core
 
51
 
 
52
: $stdin, $stdout, $stderr
 
53
 
 
54
  can be assignable again.  the original stdio are preserved as STDIN,
 
55
  STDOUT, STDERR.
 
56
 
 
57
: $VERBOSE now has 3 levels
 
58
 
 
59
  nil - silence, false - medium (default), true - verbose
 
60
 
 
61
: allocation framework
 
62
 
 
63
  any instance of class can be allocated by class.allocate,
 
64
  (except for a few classes).
 
65
 
 
66
: comparison of exception classes in a rescue clause
 
67
 
 
68
  changed to use Module#=== for comparing $! with the exception
 
69
  class specified in each rescue clause.
 
70
 
 
71
  as the previous behavior was to use kind_of?, the effect is limited
 
72
  to the SystemCallError case.  SystemCallError.=== has been newly
 
73
  defined to return true when the two have the same errno.  With this
 
74
  change, SystemCallError's with the same errno, such as Errno::EAGAIN
 
75
  and Errno::EWOULDBLOCK, can both be rescued by listing just one of
 
76
  them.
 
77
 
 
78
: constants lookup
 
79
 
 
80
  improved at the performance of searching by using an internal hash
 
81
  table.
 
82
 
 
83
  calls const_missing method of the class/module, if constant is not
 
84
  found in the look up path.
 
85
 
 
86
: expression parenthesis in the first argument
 
87
 
 
88
  altered to get the following code (note the space after p):
 
89
 
 
90
    p ("xx"*2).to_i
 
91
 
 
92
  Interpreted as:
 
93
 
 
94
    p (("xx"*2).to_i)
 
95
 
 
96
  Instead of:
 
97
 
 
98
    (p("xx"*2)).to_i
 
99
 
 
100
: implicit comparison in conditional expressions
 
101
 
 
102
  Obsoleted except when it is used in -e.
 
103
 
 
104
  : between Range and $.
 
105
      Use explicit comparison instead.
 
106
 
 
107
  : between Regexp and $_
 
108
      Use the unary method ~/re/ instead.
 
109
 
 
110
: to_str
 
111
 
 
112
  added to get objects which define to_str() treated as String's.
 
113
 
 
114
  now almost all the built-in methods try each argument with to_str()
 
115
  when they expect it to be a String.
 
116
 
 
117
    foo = Object.new
 
118
    class <<foo
 
119
      def to_str
 
120
        "foo"
 
121
      end
 
122
    end
 
123
    p File.open(foo)
 
124
    => -:7:in `open': wrong argument type Object (expected String) (TypeError)
 
125
       ruby 1.6.4 (2001-04-19) [i586-linux]
 
126
    => -:7:in `open': No such file or directory - "foo" (Errno::ENOENT)
 
127
       ruby 1.7.0 (2001-05-02) [i586-linux]
 
128
 
 
129
: multiple assignment behavior
 
130
 
 
131
  Fixed so that "*a = nil" results in "a == []".
 
132
 
 
133
= changes in core class library
 
134
 
 
135
: open
 
136
 
 
137
  Extended so that when the third argument is permission flags it
 
138
  calls open(2) instead of fopen(3).
 
139
 
 
140
: sprintf
 
141
 
 
142
  new format specifier "%p" is available.
 
143
 
 
144
: lambda and proc
 
145
 
 
146
  Proc object returns from these methods has the following attributes:
 
147
 
 
148
  * strict argument number check
 
149
  * break and return terminates the proc execution.
 
150
 
 
151
: warn(message)
 
152
 
 
153
  a method to give warnings.
 
154
 
 
155
: abort()
 
156
 
 
157
  takes optional terminate message argument.
 
158
 
 
159
: Object#initialize_copy
 
160
 
 
161
  copy constructor for clone and dup.
 
162
 
 
163
: Object#instance_variable_set, Object#instance_variable_get
 
164
 
 
165
  added.
 
166
 
 
167
: Object#singleton_method_removed
 
168
: Object#singleton_method_undefined
 
169
 
 
170
  Added.
 
171
 
 
172
: Array#transpose
 
173
 
 
174
  added.
 
175
 
 
176
: Array#fetch(index [, default])
 
177
 
 
178
  Added.  If a default value isn't given, raises index error if index
 
179
  is out of range.
 
180
 
 
181
: Array#insert(n, other, ...)
 
182
 
 
183
  Added. [ruby-talk:14289]
 
184
 
 
185
  This is much the same as (({ary[n,0] = [other,...]})) except
 
186
  returing self.
 
187
 
 
188
    ary = [0,1,2,3]
 
189
    ary[2, 0] = [4, 5, 6]
 
190
    p ary
 
191
 
 
192
    ary = [0,1,2,3]
 
193
    ary.insert(2, 4, 5, 6)
 
194
    p ary
 
195
 
 
196
: Array#sort!
 
197
 
 
198
  Changed to always return self without checking whether the sequence
 
199
  of the elements was modified or not.
 
200
 
 
201
  Beware that this behavior is not guaranteed to continue in the
 
202
  future.  Do not rely on its return value. [ruby-dev:12506]
 
203
 
 
204
: Array#filter
 
205
 
 
206
  Previously deprecated, now removed.  Use Array#collect!.
 
207
 
 
208
: Array#pack, String#unpack
 
209
 
 
210
  Allows comment in template strings.
 
211
 
 
212
: Array#pack, String#unpack
 
213
 
 
214
  New templates 'q' and 'Q' for 64bit integer (signed and unsigned respectively).
 
215
 
 
216
: Array#new
 
217
 
 
218
  Now takes block to fill initial values.  E.g.
 
219
 
 
220
        Array.new(10) { |i| i + 1 }
 
221
        => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 
222
 
 
223
: Array#fill
 
224
 
 
225
  Takes block to get the values to fill.
 
226
 
 
227
: Array#fetch
 
228
 
 
229
  Takes block to get the default value.
 
230
 
 
231
: Array#zip
 
232
 
 
233
  added.
 
234
 
 
235
: Hash#update
 
236
 
 
237
  Takes block to resolve key conflict.
 
238
 
 
239
: Hash#merge and Hash#merge!
 
240
 
 
241
  update hash.  Hash#merge! is a synonym of Hash#update.
 
242
 
 
243
: String#split
 
244
 
 
245
  if "sep" argument is a string, regular expression meta characters
 
246
  are escaped internally.
 
247
 
 
248
: String#rstrip
 
249
 
 
250
  chop off NULs at the end of strings.
 
251
 
 
252
: String#to_i
 
253
 
 
254
  Now accepts optional base argument.
 
255
 
 
256
        "101".to_i(10) => 101
 
257
        "101".to_i(2)  => 5
 
258
        "101".to_i(8)  => 65
 
259
        "101".to_i(16) => 257
 
260
 
 
261
  A base argument of 0 guesses at the base.
 
262
 
 
263
        "101".to_i(0)   => 101
 
264
        "0b101".to_i(0) => 5
 
265
        "0101".to_i(0)  => 65
 
266
        "0x101".to_i(0) => 257
 
267
 
 
268
: String#[regexp, nth]
 
269
 
 
270
  Extended to accepts optional second argument.
 
271
 
 
272
  It tries match between self and REGEXP, then returns the
 
273
  content of the NTH regexp register.
 
274
 
 
275
: String#casecmp
 
276
 
 
277
  Added.  This is a case insensitive version of String#<=>.
 
278
 
 
279
: String#chomp
 
280
 
 
281
  If $/ == "\n", chops off last newlines (any of \n, \r, \r\n).
 
282
 
 
283
: String#eql?
 
284
 
 
285
  Changed to be always case sensitive.
 
286
 
 
287
: String#insert(n, other)
 
288
 
 
289
  Added.
 
290
 
 
291
  This is much the same as (({str[n, 0] = other})) except returing
 
292
  self.
 
293
 
 
294
: String#lstrip, rstrip, lstrip!, rstrip!
 
295
 
 
296
  Added.  These strip only left or right part of a string.
 
297
 
 
298
: String#match
 
299
 
 
300
  Added.
 
301
 
 
302
: String/Array methods
 
303
 
 
304
  Returns an instance of receivers class.
 
305
 
 
306
: String.new
 
307
 
 
308
  The first argument becomes optional.
 
309
 
 
310
: Symbol#intern
 
311
 
 
312
  Added.
 
313
 
 
314
: Symbol.all_symbols
 
315
 
 
316
  Added. [ruby-dev:12921]
 
317
 
 
318
: IO
 
319
 
 
320
  64bit off_t support by Janathan Baker.
 
321
 
 
322
: IO#read
 
323
: IO#sysread
 
324
 
 
325
  takes optinal second argument for read buffer.
 
326
 
 
327
: IO::sysopen
 
328
 
 
329
  New method to get a raw file descriptor.
 
330
 
 
331
: IO#sysseek
 
332
 
 
333
  Added.
 
334
 
 
335
: IO#fsync
 
336
 
 
337
  new method that copies all in-memory parts of a file to disk and
 
338
  waits until the device reports that all parts are on stable storage.
 
339
  Implemented with fsync(2) or equivalent.
 
340
 
 
341
: IO.open
 
342
 
 
343
  Made public.  Can only associate an IO object with a file number
 
344
  like IO.new and IO.for_fd, but can take a block.
 
345
 
 
346
: IO.for_fd
 
347
 
 
348
  Added as a synonym for IO.new.
 
349
 
 
350
: IO.read
 
351
 
 
352
  Added.  Like IO.readlines, except it returns the entire file as a
 
353
  string.  [ruby-talk:9460]
 
354
 
 
355
: File#fnmatch, File::Constants::FNM_*
 
356
 
 
357
  Added.  Refer to the fnmatch(3) manpage for details.
 
358
 
 
359
  Localism is FNM_DOTMATCH which has the opposite meaning of the
 
360
  commonly known FNM_PERIOD, which does not exist in Ruby.
 
361
 
 
362
  e.g.
 
363
 
 
364
    # exclude files matching "*.bak" case-insensitively.
 
365
    files.reject! {|fn| File.fnmatch?("*.bak", fn, File::FNM_CASEFOLD) }
 
366
 
 
367
: File.lchmod
 
368
: File.lchown
 
369
 
 
370
  Added.
 
371
 
 
372
: File.open, IO.open
 
373
 
 
374
  File mode can be specified by flags like open(2),
 
375
  e.g. File::open(path, File::CREAT|File::WRONLY).
 
376
 
 
377
: Regexp#options
 
378
 
 
379
  Added.
 
380
 
 
381
: Regexp.last_match(n)
 
382
 
 
383
  Extended to take an optional argument.
 
384
 
 
385
: MatchData#captures
 
386
 
 
387
  added.
 
388
 
 
389
: Dir#path
 
390
 
 
391
  Added.
 
392
 
 
393
: Dir.chdir
 
394
 
 
395
  Extended to take a block.
 
396
 
 
397
: Dir.glob
 
398
 
 
399
  Made to support meta-character escaping by a backslash.  Wildcards
 
400
  and spaces may now be escaped using a backslash.
 
401
 
 
402
: Dir.open
 
403
 
 
404
  Changed to return what the block returns when a block is given, just
 
405
  as File.open does. (It always returned (({nil})) in 1.6 and
 
406
  prior)
 
407
 
 
408
: Dir.chdir
 
409
 
 
410
  Changed to warn only when invoked from multiple threads or no block
 
411
  is given. [ruby-dev:13823]
 
412
 
 
413
    Dir.chdir('foo') {
 
414
      Dir.chdir('bar') {   # previously warned
 
415
        puts Dir.pwd
 
416
      }
 
417
    }
 
418
 
 
419
: Dir#pos=
 
420
 
 
421
  Returns the new position instead of self.
 
422
 
 
423
: Dir::glob
 
424
 
 
425
  Now accepts optional FNM_* flags via the second argument, whereas
 
426
  Dir::[] doesn't.
 
427
 
 
428
    Dir.glob("makefile", File::FNM_CASEFOLD) #=> ['Makefile', 'makefile']
 
429
 
 
430
: Class#inherited
 
431
 
 
432
  Method is called when Class is inherited by another class.
 
433
 
 
434
        class A; end
 
435
        def A.inherited(by)
 
436
          puts "A inherited by #{by.inspect}"
 
437
        end
 
438
        class B < A; end
 
439
 
 
440
        Prints out "A inherited by B"
 
441
 
 
442
: Module#include?
 
443
 
 
444
  Added. [ruby-dev:13941] 
 
445
 
 
446
: Module#included
 
447
 
 
448
  Added.  This is a hook called after Module#append_feature.
 
449
 
 
450
: Module#method_removed
 
451
: Module#method_undefined
 
452
 
 
453
  Added.
 
454
 
 
455
: Module.new, Class.new
 
456
 
 
457
  Extended to take block.
 
458
 
 
459
: Time
 
460
 
 
461
  Extended to accept a negative time_t. (Only when the platform
 
462
  supports it)
 
463
 
 
464
    p Time.at(-1)
 
465
    => Thu Jan 01 08:59:59 JST 1970
 
466
 
 
467
: Time#to_a
 
468
: Time#zone
 
469
 
 
470
  Made to return "UTC" under gmtime.  It used to return a platform
 
471
  dependent value, typically "GMT", in 1.6 and prior.
 
472
 
 
473
: Marshal to use marshal_dump and marshal_load
 
474
 
 
475
  if a dumping object responds to 'marshal_dump', Marshal.dump calls
 
476
  it, and dumps object returned.  Marshal.load allocates a new instance
 
477
  using "allocate", then calls its "marshal_load" with dumped data.
 
478
  Marshal format version is now 4.8 (was 4.6 in 1.6.8).
 
479
 
 
480
: Marshal
 
481
 
 
482
  Fixed not to dump anonymous classes/modules.
 
483
 
 
484
  Fixed with loading modules.
 
485
 
 
486
: Thread#group
 
487
 
 
488
  new method to get belonging  ThreadGroup.
 
489
 
 
490
: Thread#terminate
 
491
 
 
492
  synonym of Thread#exit
 
493
 
 
494
: Thread#join
 
495
 
 
496
  Optional argument limits maximum time to wait the thread in second.
 
497
  And returns nil if timed out.
 
498
 
 
499
: ThreagGroup#enclose
 
500
 
 
501
  prohibits thread movement from/to enclosed groups.
 
502
 
 
503
: Range#step([step=1])
 
504
 
 
505
  Added.
 
506
 
 
507
: SystemCallError
 
508
 
 
509
  SystemCallError's "===" match (used in rescue also) is now based on its errno.
 
510
 
 
511
: Interrupt
 
512
 
 
513
  Made a subclass of SignalException. (It was a subclass of
 
514
  Exception in 1.6 and prior)
 
515
 
 
516
: NameError and NoMethodError
 
517
 
 
518
  Moved and now NoMethodError < NameError < StandardError.
 
519
 
 
520
: NoMethodError
 
521
 
 
522
  Added. [ruby-dev:12763]
 
523
 
 
524
: NotImplementError
 
525
 
 
526
  Finally obsoleted.  Use NotImplementedError.
 
527
 
 
528
: SystemCallError.===
 
529
 
 
530
  Added. (See the "Comparison of exception classes in a rescue clause"
 
531
  paragraph above) [ruby-dev:12670]
 
532
 
 
533
: SystemExit#status
 
534
 
 
535
  Added.
 
536
 
 
537
: Proc#==
 
538
 
 
539
  Added.
 
540
 
 
541
: Method#==
 
542
 
 
543
  Added.
 
544
 
 
545
: UnboundMethod is no longer subclass of Method
 
546
 
 
547
  class hierarchy changed. 
 
548
 
 
549
: Enumerable#all?
 
550
: Enumerable#any?
 
551
: Enumerable#inject
 
552
: Enumerable#sort_by
 
553
 
 
554
  Added.
 
555
 
 
556
: Math.acos(x)
 
557
: Math.asin(x)
 
558
: Math.atan(x)
 
559
: Math.cosh(x)
 
560
: Math.hypot(x,y)
 
561
: Math.sinh(x)
 
562
: Math.tanh(x)
 
563
 
 
564
  Added.
 
565
 
 
566
: Process.abort
 
567
: Process.exit
 
568
 
 
569
  synonym of Kernel#abort, and Kernel#exit respectively.
 
570
 
 
571
: Process::detach(pid)
 
572
 
 
573
  new method to detach child process.  child process will be "wait"ed
 
574
  automagically.
 
575
 
 
576
: Process.times
 
577
 
 
578
  Moved from Time.times. (Time.times still remains but emits a
 
579
  warning)
 
580
 
 
581
: Process.waitall
 
582
 
 
583
  Added.
 
584
 
 
585
: Process::Status
 
586
 
 
587
  Added.  (({$?})) is now an instance of this class.
 
588
 
 
589
: Process::UID, Process::GID, Process::Sys,
 
590
 
 
591
  Added.
 
592
 
 
593
: Signal
 
594
 
 
595
  Added. This module has module functions Signal.trap and Signal.list.
 
596
 
 
597
= changes in bundled libraries
 
598
 
 
599
: lib/cgi.rb
 
600
 
 
601
  cgi[name] returns CGI::QueryExtension::Value that wraps string
 
602
  value, no longer array.
 
603
 
 
604
: lib/timeout
 
605
 
 
606
  timeout "function" wrapped in Timeout module.
 
607
 
 
608
: TCPServer#accept, UNIXServer#accept, Socket#accept
 
609
 
 
610
  New methods to return an accepted socket fd.
 
611
 
 
612
: Date and DateTime
 
613
 
 
614
  lib/date.rb now provides both Date and DateTime.
 
615
 
 
616
  Some methods have been renamed.  But the old names are still alive.
 
617
 
 
618
  Some new methods have been added (Date::parse, Date#strftime, etc.).
 
619
 
 
620
  Date#mjd now returns the chronological modified Julian day number.
 
621
 
 
622
  All facilities about tjd have been removed.
 
623
 
 
624
: Curses
 
625
 
 
626
  Updated.  New methods and constants for using the mouse, character
 
627
  attributes, colors and key codes have been added.
 
628
 
 
629
: Net::HTTP
 
630
 
 
631
  New version of Net::HTTP has introduced seriously incompatible
 
632
  changes. For details, see document embedded in net/http.rb itself.
 
633
 
 
634
: Socket.pack_sockaddr_in, Socket.unpack_sockaddr_in
 
635
 
 
636
  Added.  Utility for direct Socket access.
 
637
 
 
638
: Socket.pack_sockaddr_un, Socket.unpack_sockaddr_un
 
639
 
 
640
  Added.  Utility for direct Socket access.
 
641
 
 
642
: TCPServer#listen, UNIXServer#listen
 
643
 
 
644
  Added.
 
645
 
 
646
: TCPSocket.new
 
647
: TCPSocket.open
 
648
 
 
649
  Extended to take an address and a port number for the local side in
 
650
  optional 3rd and 4th arguments.
 
651
 
 
652
= newly bundled library
 
653
 
 
654
: ext/bigdecimal
 
655
 
 
656
  variable precision decimal number 
 
657
 
 
658
: ext/dl
 
659
 
 
660
  an interface to the dynamic linker.
 
661
 
 
662
: ext/enumerator
 
663
 
 
664
  a helper module for the Enumerable interface.
 
665
 
 
666
: ext/io/wait
 
667
 
 
668
  IO wait methods.
 
669
 
 
670
: ext/iconv
 
671
 
 
672
  wrapper library of (({iconv})).
 
673
 
 
674
: ext/openssl
 
675
 
 
676
  OpenSSL for Ruby
 
677
 
 
678
: ext/racc/cparse
 
679
 
 
680
  Racc runtime library in C. (Racc is a parser generator for ruby)
 
681
 
 
682
: ext/stringio
 
683
 
 
684
  Pseudo (({IO})) class from/to (({String})).
 
685
 
 
686
: ext/strscan
 
687
 
 
688
  Fast string scanner library.
 
689
 
 
690
: ext/syck
 
691
 
 
692
  fast YAML parser.
 
693
 
 
694
: lib/abbrev
 
695
 
 
696
  creates an abbreviation table from a list
 
697
 
 
698
: lib/benchmark
 
699
 
 
700
  Ruby scripts benchmarker
 
701
 
 
702
: lib/cgi/session/pstore
 
703
 
 
704
  cgi/session back-end using pstore 
 
705
 
 
706
: lib/csv
 
707
 
 
708
  reads/writes CSV files.
 
709
 
 
710
: lib/date/format
 
711
 
 
712
  strftime for Date class
 
713
 
 
714
: lib/drb
 
715
 
 
716
  dRuby or distributed Ruby
 
717
 
 
718
: lib/fileutils
 
719
 
 
720
  file utility library.
 
721
 
 
722
: lib/generator
 
723
 
 
724
  converts an internal iterator to an external iterator
 
725
 
 
726
: lib/gserver
 
727
 
 
728
  generic server used by xmlrpc
 
729
 
 
730
: lib/ipaddr
 
731
 
 
732
  manipulates IP address.
 
733
 
 
734
: lib/multi-tk
 
735
 
 
736
  to allow safe Tk, etc.
 
737
 
 
738
: lib/open-uri
 
739
 
 
740
  easy-to-use wrapper for net/http and net/ftp
 
741
 
 
742
: lib/optparse
 
743
 
 
744
  command line options utility library
 
745
 
 
746
: lib/pathname
 
747
 
 
748
  handles pathname in OO manner.
 
749
 
 
750
: lib/pp
 
751
 
 
752
  prettyprinter for Ruby objects
 
753
 
 
754
: lib/prettyprint
 
755
 
 
756
  implements prettyprint algorithm.
 
757
 
 
758
: lib/profiler
 
759
 
 
760
  library to implement -r "profile"
 
761
 
 
762
: lib/racc/parser
 
763
 
 
764
  RACC parser generator runtime in Ruby.
 
765
 
 
766
: lib/scanf
 
767
 
 
768
  scan string and retrieve object with format
 
769
 
 
770
: lib/set
 
771
 
 
772
  Set class
 
773
 
 
774
: lib/runit
 
775
 
 
776
  RubyUnit compatible layer for test/unit
 
777
 
 
778
: lib/test/unit
 
779
 
 
780
  unit testing framework for Ruby
 
781
 
 
782
: lib/tmpdir
 
783
 
 
784
  get temporary directory path.
 
785
 
 
786
: lib/tsort
 
787
 
 
788
  topological sorting library.
 
789
 
 
790
: lib/rexml
 
791
 
 
792
  REXML XML library
 
793
 
 
794
: lib/webrick
 
795
 
 
796
  generic internet server kit
 
797
 
 
798
: lib/xmlrpc
 
799
 
 
800
  simple RPC via XML
 
801
 
 
802
: lib/un
 
803
 
 
804
  used like 'ruby -run -e cp -- -p foo bar'.  neat, isn't it?
 
805
 
 
806
: lib/win32/registry
 
807
 
 
808
  win32/registry is registry accessor
 
809
 
 
810
: lib/yaml
 
811
 
 
812
  YAML Ain't Mark-up Language
 
813
 
 
814
= removed libraries
 
815
 
 
816
: lib/ftplib
 
817
 
 
818
  use net/ftp instead.
 
819
 
 
820
: lib/telnet
 
821
 
 
822
  use net/telnet instead.
 
823
 
 
824
= new port
 
825
 
 
826
: WindowsCE port
 
827
: Win32 BCC
 
828
 
 
829
= interpreter implementation
 
830
 
 
831
: garbage collector
 
832
 
 
833
  faster, but uses more memory for the worst case.
 
834
 
 
835
: string concatenation
 
836
 
 
837
  faster by avoiding too frequent realloc(3).