NEWS.md 3.6 KB
Newer Older
Y
Yusuke Endoh 已提交
1 2
# NEWS for Ruby 2.8.0 (tentative; to be 3.0.0)

3 4
This document is a list of user visible feature changes
since the **2.7.0** release, except for bug fixes.
Y
Yusuke Endoh 已提交
5 6 7 8 9 10

Note that each entry is kept so brief that no reason behind or reference
information is supplied with.  For a full list of changes with all
sufficient information, see the ChangeLog file or Redmine
(e.g. `https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER`).

11
## Language changes
Y
Yusuke Endoh 已提交
12

J
Jeremy Evans 已提交
13 14 15 16
* Keyword arguments are now separated from positional arguments.
  Code that resulted in deprecation warnings in Ruby 2.7 will now
  result in ArgumentError or different behavior. [[Feature #14183]]

17 18
* $SAFE is now a normal global variable with no special behavior.
  [[Feature #16131]]
19

J
Jeremy Evans 已提交
20 21 22
* yield in singleton class definitions in methods is now a SyntaxError
  instead of a warning. yield in a class definition outside of a method
  is now a SyntaxError instead of a LocalJumpError.  [[Feature #15575]]
23

24
## Command line options
Y
Yusuke Endoh 已提交
25

26
## Core classes updates (outstanding ones only)
Y
Yusuke Endoh 已提交
27

28 29 30 31 32 33 34
* Dir

    * Modified method

        * Dir.glob and Dir.[] now sort the results by default, and
          accept `sort:` keyword option.  [[Feature #8709]]

35
* Hash
Y
Yusuke Endoh 已提交
36

37
    * Modified method
Y
Yusuke Endoh 已提交
38

39
        * Hash#transform_keys now accepts a hash that maps keys to new
40
          keys.  [[Feature #16274]]
Y
Yusuke Endoh 已提交
41

J
Jeremy Evans 已提交
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
* Kernel

    * Modified method

        * Kernel#clone when called with freeze: false keyword will call
          #initialize_clone with the freeze: false keyword.
          [[Bug #14266]]

        * Kernel#eval when called with two arguments will use "(eval)"
          for __FILE__ and 1 for __LINE__ in the evaluated code.
          [[Bug #4352]]

* Module

    * Modified method

        * Module#include now includes the arguments in modules and
          classes that have already included or prepended the receiver,
          mirroring the behavior if the arguments were included in the
          receiver before the other modules and classes included or
          prepended the receiver.  [[Feature #9573]]

64 65 66 67 68 69 70
* Symbol

    * Modified method

        * Symbol#to_proc now returns a lambda Proc.
          [[Feature #16260]]

71
## Stdlib updates (outstanding ones only)
Y
Yusuke Endoh 已提交
72

73 74 75 76
* Net::HTTP

    * New method

77
        * Add Net::HTTP#verify_hostname= and Net::HTTP#verify_hostname
78
          to skip hostname verification.  [[Feature #16555]]
79

80
## Compatibility issues (excluding feature bug fixes)
Y
Yusuke Endoh 已提交
81

82
* Regexp literals are frozen [[Feature #8948]] [[Feature #16377]]
83

84
    ```ruby
85 86
    /foo/.frozen? #=> true
    ```
87

88
* Bundled gems
89

90 91 92 93
    * net-telnet and xmlrpc have been removed from the bundled gems.
      If you are interested in maintaining them, please comment on
      your plan to https://github.com/ruby/xmlrpc
      or https://github.com/ruby/net-telnet.
94

95
## Stdlib compatibility issues (excluding feature bug fixes)
Y
Yusuke Endoh 已提交
96

97
## C API updates
Y
Yusuke Endoh 已提交
98

J
Jeremy Evans 已提交
99 100 101
* C API functions related to $SAFE have been removed.
  [[Feature #16131]]

102
## Implementation improvements
Y
Yusuke Endoh 已提交
103

104
## Miscellaneous changes
105

J
Jeremy Evans 已提交
106 107 108 109 110 111 112
* Methods using ruby2_keywords will no longer keep empty keyword
  splats, those are now removed just as they are for methods not
  using ruby2_keywords.

* Taint deprecation warnings are now issued in regular mode in
  addition to verbose warning mode.  [[Feature #16131]]

113

114
[Feature #8709]:  https://bugs.ruby-lang.org/issues/8709
115
[Feature #8948]:  https://bugs.ruby-lang.org/issues/8948
116 117
[Feature #15575]: https://bugs.ruby-lang.org/issues/15575
[Feature #16131]: https://bugs.ruby-lang.org/issues/16131
118
[Feature #16260]: https://bugs.ruby-lang.org/issues/16260
119 120
[Feature #16274]: https://bugs.ruby-lang.org/issues/16274
[Feature #16377]: https://bugs.ruby-lang.org/issues/16377
121
[Feature #16555]: https://bugs.ruby-lang.org/issues/16555