diff options
| author | Alan Wu <alanwu@ruby-lang.org> | 2023-11-30 18:46:00 -0500 |
|---|---|---|
| committer | Alan Wu <alanwu@ruby-lang.org> | 2023-11-30 18:46:00 -0500 |
| commit | 59f31a66180b8b118c93cdb3dad20e467b18f7fc (patch) | |
| tree | 4453d4ae17890b975b9331cae501b027117467ee | |
| parent | c3cb27eede43ccdabfe1c367c56c27d654a80a2d (diff) | |
NEWS: Adjust indentation for RDoc's markdown parser
Indenting by 2 spaces wasn't yielding nested list up as intended. I guess
it's a quirk of RDoc's markdown parser:
https://github.com/ruby/rdoc/blob/v6.6.0/lib/rdoc/markdown.kpeg#L1128-L1130
NonindentSpace = / {0,3}/
Indent = /\t| /
IndentedLine = Indent Line
| -rw-r--r-- | NEWS.md | 114 |
1 files changed, 57 insertions, 57 deletions
@@ -216,13 +216,13 @@ changelog for details of the default gems or bundled gems. ## Compatibility issues * Subprocess creation/forking via the following file open methods is deprecated. [[Feature #19630]] - * Kernel#open - * URI.open - * IO.binread - * IO.foreach - * IO.readlines - * IO.read - * IO.write + * Kernel#open + * URI.open + * IO.binread + * IO.foreach + * IO.readlines + * IO.read + * IO.write * When given a non-lambda, non-literal block, Kernel#lambda with now raises ArgumentError instead of returning it unmodified. These usages have been @@ -236,10 +236,10 @@ changelog for details of the default gems or bundled gems. ## Stdlib compatibility issues * `racc` is promoted to bundled gems. - * You need to add `racc` to your `Gemfile` if you use `racc` under bundler environment. + * You need to add `racc` to your `Gemfile` if you use `racc` under bundler environment. * `ext/readline` is retired - * We have `reline` that is pure Ruby implementation compatible with `ext/readline` API. We rely on `reline` in the future. If you need to use `ext/readline`, you can install `ext/readline` via rubygems.org with `gem install readline-ext`. - * We no longer need to install libraries like `libreadline` or `libedit`. + * We have `reline` that is pure Ruby implementation compatible with `ext/readline` API. We rely on `reline` in the future. If you need to use `ext/readline`, you can install `ext/readline` via rubygems.org with `gem install readline-ext`. + * We no longer need to install libraries like `libreadline` or `libedit`. ## C API updates @@ -270,32 +270,32 @@ changelog for details of the default gems or bundled gems. ### YJIT * Major performance improvements over 3.2 - * Support for splat and rest arguments has been improved. - * Registers are allocated for stack operations of the virtual machine. - * More calls with optional arguments are compiled. - * Exception handlers are also compiled. - * Instance variables no longer exit to the interpreter - with megamorphic object shapes. - * Unsupported call types no longer exit to the interpreter. - * `Integer#!=`, `String#!=`, `Kernel#block_given?`, `Kernel#is_a?`, - `Kernel#instance_of?`, `Module#===` are specially optimized. - * Now more than 3x faster than the interpreter on optcarrot! + * Support for splat and rest arguments has been improved. + * Registers are allocated for stack operations of the virtual machine. + * More calls with optional arguments are compiled. + * Exception handlers are also compiled. + * Instance variables no longer exit to the interpreter + with megamorphic object shapes. + * Unsupported call types no longer exit to the interpreter. + * `Integer#!=`, `String#!=`, `Kernel#block_given?`, `Kernel#is_a?`, + `Kernel#instance_of?`, `Module#===` are specially optimized. + * Now more than 3x faster than the interpreter on optcarrot! * Significantly improved memory usage over 3.2 * Metadata for compiled code uses a lot less memory. * Generate more compact code on ARM64 * Compilation speed is now slightly faster than 3.2. * Add `RubyVM::YJIT.enable` that can enable YJIT later - * You can start YJIT without modifying command-line arguments or environment variables. - * This can also be used to enable YJIT only once your application is - done booting. `--yjit-disable` can be used if you want to use other - YJIT options while disabling YJIT at boot. + * You can start YJIT without modifying command-line arguments or environment variables. + * This can also be used to enable YJIT only once your application is + done booting. `--yjit-disable` can be used if you want to use other + YJIT options while disabling YJIT at boot. * Code GC now disabled by default, with `--yjit-exec-mem-size` treated as a hard limit - * Can produce better copy-on-write behavior on forking web servers such as `unicorn` - * Use the `--yjit-code-gc` option to automatically run code GC when YJIT reaches the size limit + * Can produce better copy-on-write behavior on forking web servers such as `unicorn` + * Use the `--yjit-code-gc` option to automatically run code GC when YJIT reaches the size limit * `ratio_in_yjit` stat produced by `--yjit-stats` is now available in release builds, a special stats or dev build is no longer required to access most stats. * Exit tracing option now supports sampling - * `--trace-exits-sample-rate=N` + * `--trace-exits-sample-rate=N` * More thorough testing and multiple bug fixes * `--yjit-stats=quiet` is added to avoid printing stats on exit. * `--yjit-perf` is added to facilitate profiling with Linux perf. @@ -303,45 +303,45 @@ changelog for details of the default gems or bundled gems. ### MJIT * MJIT is removed. - * `--disable-jit-support` is removed. Consider using `--disable-yjit --disable-rjit` instead. + * `--disable-jit-support` is removed. Consider using `--disable-yjit --disable-rjit` instead. ### RJIT * Introduced a pure-Ruby JIT compiler RJIT. - * RJIT supports only x86\_64 architecture on Unix platforms. - * Unlike MJIT, it doesn't require a C compiler at runtime. + * RJIT supports only x86\_64 architecture on Unix platforms. + * Unlike MJIT, it doesn't require a C compiler at runtime. * RJIT exists only for experimental purposes. - * You should keep using YJIT in production. + * You should keep using YJIT in production. ### M:N Therad scheduler * M:N Thread scheduler is introduced. [[Feature #19842]] - * Background: Ruby 1.8 and before, M:1 thread scheduler (M Ruby threads - with 1 native thread. Called as User level threads or Green threads) - is used. Ruby 1.9 and later, 1:1 thread scheduler (1 Ruby thread with - 1 native thread). M:1 threads takes lower resources compare with 1:1 - threads because it needs only 1 native threads. However it is difficult - to support context switching for all of blocking operation so 1:1 - threads are employed from Ruby 1.9. M:N thread scheduler uses N native - threads for M Ruby threads (N is small number in general). It doesn't - need same number of native threads as Ruby threads (similar to the M:1 - thread scheduler). Also our M:N threads supports blocking operations - well same as 1:1 threads. See the ticket for more details. - Our M:N thread scheduler refers on the gorotuine scheduler in the - Go language. - * In a ractor, only 1 thread can run in a same time because of - implementation. Therefore, applications that use only one Ractor - (most applications) M:N thread scheduler works as M:1 thread scheduler - with further extension from Ruby 1.8. - * M:N thread scheduler can introduce incompatibility for C-extensions, - so it is disabled by default on the main Ractors. - `RUBY_MN_THREADS=1` environment variable will enable it. - On non-main Ractors, M:N thread scheduler is enabled (and can not - disable it now). - * `N` (the number of native threads) can be specified with `RUBY_MAX_CPU` - environment variable. The default is 8. - Note that more than `N` native threads are used to support many kind of - blocking operations. + * Background: Ruby 1.8 and before, M:1 thread scheduler (M Ruby threads + with 1 native thread. Called as User level threads or Green threads) + is used. Ruby 1.9 and later, 1:1 thread scheduler (1 Ruby thread with + 1 native thread). M:1 threads takes lower resources compare with 1:1 + threads because it needs only 1 native threads. However it is difficult + to support context switching for all of blocking operation so 1:1 + threads are employed from Ruby 1.9. M:N thread scheduler uses N native + threads for M Ruby threads (N is small number in general). It doesn't + need same number of native threads as Ruby threads (similar to the M:1 + thread scheduler). Also our M:N threads supports blocking operations + well same as 1:1 threads. See the ticket for more details. + Our M:N thread scheduler refers on the gorotuine scheduler in the + Go language. + * In a ractor, only 1 thread can run in a same time because of + implementation. Therefore, applications that use only one Ractor + (most applications) M:N thread scheduler works as M:1 thread scheduler + with further extension from Ruby 1.8. + * M:N thread scheduler can introduce incompatibility for C-extensions, + so it is disabled by default on the main Ractors. + `RUBY_MN_THREADS=1` environment variable will enable it. + On non-main Ractors, M:N thread scheduler is enabled (and can not + disable it now). + * `N` (the number of native threads) can be specified with `RUBY_MAX_CPU` + environment variable. The default is 8. + Note that more than `N` native threads are used to support many kind of + blocking operations. [Bug #17146]: https://bugs.ruby-lang.org/issues/17146 [Feature #18183]: https://bugs.ruby-lang.org/issues/18183 |
