summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
2021-04-02merge revision(s) 7e8a9af9db42a21f6a1125a29e98c45ff9d5833b: [Backport #17732]NARUSE, Yui
rb_enc_interned_str: handle autoloaded encodings If called with an autoloaded encoding that was not yet initialized, `rb_enc_interned_str` would crash with a NULL pointer exception. See: https://github.com/ruby/ruby/pull/4119#issuecomment-800189841 --- encoding.c | 28 ++++++++++++---------------- ext/-test-/string/depend | 3 +++ ext/-test-/string/fstring.c | 15 +++++++++++++++ internal/encoding.h | 3 +++ string.c | 4 ++++ test/-ext-/string/test_fstring.rb | 16 ++++++++++++++++ 6 files changed, 53 insertions(+), 16 deletions(-)
2021-03-13merge revision(s) f6d5de8f33fe715d939e3e77b8ef73d88bcd6c9f: [Backport #17659]NARUSE, Yui
[ruby/io-wait] Declare as Ractor-safe Fixes https://bugs.ruby-lang.org/issues/17659 https://github.com/ruby/io-wait/commit/ba338b4764 --- ext/io/wait/wait.c | 4 ++++ test/io/wait/test_ractor.rb | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 test/io/wait/test_ractor.rb
2021-03-13Backport io-console 0.5.7 to Ruby 3.0 (#4252)Jeremy Evans
* [ruby/io-console] [DOC] Note that IO#getpass returns a chomped string IO#getpass uses String#chomp! on the read input line. https://github.com/ruby/io-console/commit/1e98c93bc8 * [ruby/io-console] Ignore chomp! result and return the modified string https://github.com/ruby/io-console/commit/09e5ccc729 * [ruby/io-console] Pre-define chomp! ID https://github.com/ruby/io-console/commit/028e1c9497 * [ruby/io-console] Shrink struct query_args https://github.com/ruby/io-console/commit/720be0a3e5 * [ruby/io-console] bump up to 0.5.7 https://github.com/ruby/io-console/commit/f55d7ebff6 Co-authored-by: Marcus Stollsteimer <sto.mar@web.de> Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2021-03-02merge revision(s) 5de38c41ae7bf17ae599fdfa9f8face87f16d8bb: [Backport #17644]NARUSE, Yui
ripper: fix a bug of Ripper::Lexer with syntax error and heredoc [Bug #17644] --- ext/ripper/lib/ripper/lexer.rb | 2 +- test/ripper/test_lexer.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-)
2021-02-02merge revision(s) 9241211538189a58b477bd55b539357617fd42ed: [Backport #17589]NARUSE, Yui
Forward keyword arguments for Pathname#each_line [Bug #17589] --- ext/pathname/pathname.c | 4 ++-- test/pathname/test_pathname.rb | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-)
2021-02-02merge revision(s) 6ca3d1af3302f722aed530764d07c1cc83e95ecf: [Backport #17552]NARUSE, Yui
objspace_dump.c: Handle allocation path and line missing --- ext/objspace/objspace_dump.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-)
2021-02-01merge revision(s) b84b253a69537a14e4854e17b6d94ae75c2af050: [Backport #17547]NARUSE, Yui
Fix Ripper with heredoc. --- ext/ripper/lib/ripper/lexer.rb | 1 + test/ripper/test_lexer.rb | 10 ++++++++++ 2 files changed, 11 insertions(+)
2021-01-24Fix compile error of sockssocketMasaki Matsushita
The patch is provided by PhobosK (Phobos Kappa). This should be backported to Ruby 3.0. [Feature #17187]
2021-01-19Backport lib/reline, ext/readline, and lib/irb for 3.0.1 (#4085)aycabta
* Get rid of inconsistent dll linkages against vcpkg readline * [ruby/irb] Enhance colored inspect output https://github.com/ruby/irb/commit/dffcdb5269 * [ruby/irb] Add color_printer.rb to gemspec https://github.com/ruby/irb/commit/b4df0fd8b2 * [ruby/irb] Fix failing tests https://github.com/ruby/irb/commit/7723ade899 * irb: add more syntax errors colorizing support (#3967) * [ruby/irb] Do not colorize partially-correct inspect This is to prevent a yellow-mixed output for ActiveSupport::TimeWithZone. Follows up https://github.com/ruby/irb/pull/159 and https://github.com/ruby/ruby/pull/3967. https://github.com/ruby/irb/commit/a5804c3560bb1de3ea8e40002635bff87f6a2825 * [ruby/irb] Remove unnecessary ignore_error in dispatch_seq Just forgotten in https://github.com/ruby/irb/commit/a5804c3560bb1de3ea8e40002635bff87f6a2825 https://github.com/ruby/irb/commit/e42e548793 * Increase timeout for reline with --jit-wait for failures like: http://ci.rvm.jp/logfiles/brlog.trunk-mjit-wait.20201229-130509 http://ci.rvm.jp/logfiles/brlog.trunk-mjit-wait.20201229-165132 http://ci.rvm.jp/logfiles/brlog.trunk-mjit-wait.20201228-015519 * [ruby/irb] Stringify when a non-object is passed to PP#text If a nested object is passed to #pp, it may be sometimes passed to the #text method as an object without being stringified. This is fixed on the Ruby main repository; https://github.com/ruby/ruby/commit/433a3be86a811de0b4adbb92e054ee3a6fc6b4d8 but it was a bug of Ripper so still needs this workaround for using irb as a gem on Ruby 3.0.0 or earlier. Co-authored-by: k0kubun <takashikkbn@gmail.com> https://github.com/ruby/irb/commit/8d13df22ee * [ruby/irb] Newline in oneliner def doesn't reset indent This closes ruby/irb#132. https://github.com/ruby/irb/commit/43456dcf5e * [ruby/irb] Escape invalid byte sequence in Exception This fixes ruby/irb#141. https://github.com/ruby/irb/commit/0815317d42 * [ruby/irb] Handle indentations related to keyword "do" correctly This fixes ruby/irb#158. https://github.com/ruby/irb/commit/964643400b * [ruby/irb] Heredoc may contain multiple newlines in a single token Use the start token as the indentation criteria so that it works properly in heredoc. ref. https://github.com/ruby/reline/pull/242 https://github.com/ruby/irb/commit/9704808dfd * [ruby/irb] Use Ripper::Lexer#scan to take broken tokens ref. https://github.com/ruby/reline/pull/242 https://github.com/ruby/irb/commit/54f90cb6c9 * [ruby/irb] Use error tokens if there are no correct tokens in the same place For example, the broken code "%www" will result in only one error token. https://github.com/ruby/irb/commit/9fa39a7cf3 * [ruby/irb] Ensure to restore $VERBOSE https://github.com/ruby/irb/commit/cef474a76a * 600x larger timeout for Reline I didn't notice it's msec. 2.5s is too short. http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3311385 * [ruby/irb] fix typo in `IRB::Irb#convert_invalid_byte_sequence` https://github.com/ruby/irb/commit/d09d3c3d68 * [ruby/irb] do not escape a predicate method for doc namespace * Fixes #88 https://github.com/ruby/irb/commit/d431a30af4 * [ruby/irb] refactoring an error handling in `IRB::Inspector` * moved rescue clause to `#inspect_value` to catch all failures in inspectors * test with all (currently five kind of) inspect modes - tweaked the input due to only `Marshal` can inspect(dump) a `BasicObject` https://github.com/ruby/irb/commit/9d112fab8e * [ruby/irb] Use Exception#full_message to show backtrace in the correct order [Bug #17466] https://github.com/ruby/irb/commit/1c76845cca * [ruby/irb] Fix BACK_TRACE_LIMIT logic https://github.com/ruby/irb/commit/30dc5d43fe * irb: Drop lines from backtrace for tests in Ruby repository * [ruby/reline] Update cursor correctly when just cursor moving This fixes ruby/reline#236 and ruby/reline#239. https://github.com/ruby/reline/commit/3e3c89d00b * [ruby/reline] Correct var names in Reline were different from vi-*-mode-string https://github.com/ruby/reline/commit/8255fc93b9 * [ruby/reline] Remove debug print https://github.com/ruby/reline/commit/d7fbaedc6a * [ruby/reline] Suppress crashing when auto_indent_proc returns broken indent info Co-authored-by: Juanito Fatas <me@juanitofatas.com> https://github.com/ruby/reline/commit/7c24276275 * [ruby/reline] Suppress crashing when dynamic_prompt_proc returns a broken prompt list Co-authored-by: Juanito Fatas <me@juanitofatas.com> https://github.com/ruby/reline/commit/558f7be168 * [ruby/reline] Suppress auto indent for adding newlines in pasting Co-authored-by: Juanito Fatas <me@juanitofatas.com> https://github.com/ruby/reline/commit/074bb017a7 * [ruby/reline] Add acknowledgments and license for rb-readline https://github.com/ruby/reline/commit/19df59b916 * [ruby/irb] Fix comment, irb gem supports 2.5.0 or older https://github.com/ruby/irb/commit/36118015ba * should use `assert_include` here. Random ordering test can introduce antoher candidate so it should be `assert_include`. * [ruby/irb] Add missing require This is useful if you want to use IRB::ColorPrinter as a library like: ``` begin require 'irb/color_printer' IRB::ColorPrinter.pp(obj) rescue LoadError pp(obj) end ``` https://github.com/ruby/irb/commit/f8461691c7 * [ruby/irb] Make IRB::ColorPrinter.pp compatible with PP.pp The incompatible interface is not helpful, again if you want to use it as a standalone library, falling it back to PP. Original PP.pp also ends with `out << "\n"`. https://github.com/ruby/irb/commit/4c74c7d84c * Suppress constant redefinition warnings * Fix the failing test with XDG_CONFIG_HOME * [ruby/irb] Version 1.3.1 https://github.com/ruby/irb/commit/c230d08911 * [ruby/reline] Handle ed_search_{prev,next}_history in multiline correctly The current line was being handled incorrectly when displaying the hit history, so it has been fixed to be correct. https://github.com/ruby/reline/commit/a3df4343b3 * [ruby/reline] Move the cursor correctly when deleting at eol This fixes ruby/reline#246. https://github.com/ruby/reline/commit/07a73ba601 * [ruby/reline] Version 0.2.1 https://github.com/ruby/reline/commit/a3b3c6ee60 * [ruby/reline] Initialize a variable just in case https://github.com/ruby/reline/commit/29b10f6e98 * [ruby/reline] Tests with yamatanooroti don't need chdir Because of chdir, log files ware created in temporary directries on Windows. https://github.com/ruby/reline/commit/200b469a68 * [ruby/reline] Windows needs more times to wait rendering https://github.com/ruby/reline/commit/53ff2b09c7 * [ruby/reline] Support for change in Windows-specific behavior at eol The behavior of automatically moving the cursor to the next line when displaying a char at the eol on Windows suddenly disappeared. https://github.com/ruby/reline/commit/cad4de6ee8 * [ruby/reline] Reline::Windows.erase_after_cursor erases attributes too https://github.com/ruby/reline/commit/68b961dfc7 * [ruby/irb] [ruby/irb] [ruby/reline] Version 0.2.2 https://github.com/ruby/reline/commit/dfb710946f https://github.com/ruby/irb/commit/1a1cdf9628 https://github.com/ruby/irb/commit/fe99faf8bd * [ruby/irb] handle `__ENCODING__` as a keyword as well https://github.com/ruby/irb/commit/a6a33d908f * [ruby/irb] handle repeated exception separately https://github.com/ruby/irb/commit/fcf6b34bc5 * [ruby/irb] skip a failling test on TruffleRuby * due to the difference of backtrace pointed out by @aycabta https://github.com/ruby/irb/commit/5e00a0ae61 * [ruby/irb] Version 1.3.2 https://github.com/ruby/irb/commit/a7699026cc Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Co-authored-by: Nobuhiro IMAI <nov@yo.rim.or.jp> Co-authored-by: Koichi Sasada <ko1@atdot.net> Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
2021-01-13enable constant cache on ractorsKoichi Sasada
constant cache `IC` is accessed by non-atomic manner and there are thread-safety issues, so Ruby 3.0 disables to use const cache on non-main ractors. This patch enables it by introducing `imemo_constcache` and allocates it by every re-fill of const cache like `imemo_callcache`. [Bug #17510] Now `IC` only has one entry `IC::entry` and it points to `iseq_inline_constant_cache_entry`, managed by T_IMEMO object. `IC` is atomic data structure so `rb_mjit_before_vm_ic_update()` and `rb_mjit_after_vm_ic_update()` is not needed.
2020-12-24etc: use atomic operation instead of mutexNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3983
2020-12-24Expose atomic operation macros with RUBY prefixNobuyoshi Nakada
Now we need atomic operations, which are lighter than mutex, more widely for extension libraries because of Ractor. Notes: Merged: https://github.com/ruby/ruby/pull/3983
2020-12-23[fiddle] Update to 1.0.6Kenta Murata
2020-12-23[ruby/psych] Bump version to 3.3.0Hiroshi SHIBATA
https://github.com/ruby/psych/commit/0abce07b90
2020-12-23[ruby/date] Define dummy RUBY_TYPED_FROZEN_SHAREABLE for old RubyKenta Murata
https://github.com/ruby/date/commit/9f3e90ad10
2020-12-23[ruby/psych] Optimize cache with `compare_by_identity`Marc-Andre Lafortune
Using `compare_by_identity` gives a 4x performance boost on cache hits. Benchmark in https://github.com/JuanitoFatas/fast-ruby/issues/189 Notes: Merged: https://github.com/ruby/ruby/pull/3953
2020-12-23[ruby/psych] Make Ractor-ready.Marc-Andre Lafortune
Config is Ractor-local. Benchmarking reveals that using `Ractor.local_storage` for storing cache is similar to accessing a constant (~15% slower). Notes: Merged: https://github.com/ruby/ruby/pull/3953
2020-12-23[ruby/psych] Don't use instance variables directly for configMarc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/3953
2020-12-23[ruby/psych] Avoid methods depending on bindingsMarc-Andre Lafortune
Improves Ractor-readiness. Notes: Merged: https://github.com/ruby/ruby/pull/3953
2020-12-23[ruby/psych] Freeze constants.Marc-Andre Lafortune
Improves Ractor-readiness. Notes: Merged: https://github.com/ruby/ruby/pull/3953
2020-12-23Update version for Ractor-safe extensionsHiroshi SHIBATA
2020-12-22[ruby/etc] Make Ractor safeMarc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/3954
2020-12-22[ruby/etc] Refactor locks using mutex APIMarc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/3954
2020-12-23[memory_view] Make some rb_memroy_view_t members constKenta Murata
2020-12-23[memory_view] Remove needless use of StringValueCStrKenta Murata
2020-12-23[memory_view] Add mdview_release_view for testKenta Murata
2020-12-23[memory_view][fiddle] Rename len to byte_size in rb_memory_view_tKenta Murata
2020-12-23[memory_view][fiddle] Use bool for boolean return valueKenta Murata
2020-12-23fiddle: Update to 1.0.5Sutou Kouhei
Notes: Merged: https://github.com/ruby/ruby/pull/3970
2020-12-22Merge json-2.5.1Hiroshi SHIBATA
2020-12-22Prepare to release json-2.5.0Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3975
2020-12-22[ruby/date] Make Ractor-compatibleMarc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/3946
2020-12-22[ruby/date] Deep-freeze internal constants.Marc-Andre Lafortune
Probably not strictly necessary, but good principle anyways. Notes: Merged: https://github.com/ruby/ruby/pull/3946
2020-12-22Removed rb_cData entityNobuyoshi Nakada
* Use the wrapper of rb_cObject instead of data access * Replaced rest of extentions * Updated the version guard for Data * Added the version guard of rb_cData Notes: Merged: https://github.com/ruby/ruby/pull/3961
2020-12-21[json] Avoid method redefinitionKenta Murata
2020-12-21[json] Make json Ractor safeKenta Murata
2020-12-21[json] JSON_parse_float: Fix how to convert numberKenta Murata
Stop BigDecimal-specific optimization. Instead, it tries the conversion methods in the following order: 1. `try_convert`, 2. `new`, and 3. class-named function, e.g. `Foo::Bar.Baz` function for `Foo::Bar::Baz` class If all the above candidates are unavailable, it fallbacks to Float.
2020-12-21[json] Make JSON.create_id thread-safeKenta Murata
2020-12-21[json] Stop using prototype objectsKenta Murata
2020-12-21[ruby/digest] Remove .gitignore and .travis.yml from gemspecKenta Murata
https://github.com/ruby/digest/commit/7b57b73f46
2020-12-20Remove unnecessary files from .documentKazuki Tsujimoto
* ruby:ext/rbconfig/exts.mk * ruby:ext/rbconfig/sizeof/Makefile * ruby:ext/rbconfig/sizeof/depend * ruby:ext/rbconfig/sizeof/mkmf.log * ruby:ext/win32/depend * ruby:ext/win32/exts.mk * ruby:ext/win32/resolv/depend * ruby:lib/racc/pre-setup
2020-12-20ext/racc/cparse is ractor-safeKoichi Sasada
2020-12-20ext/monitor is ractor-safeKoichi Sasada
2020-12-20cgi/escape is ractor-safeKoichi Sasada
2020-12-20bigdecimal: initialize conditionally assigned variableNobuyoshi Nakada
2020-12-20[pathname] Make Pathname Ractor safe (#3940)Kenta Murata
Notes: Merged-By: mrkn <mrkn@ruby-lang.org>
2020-12-19[bigdecimal] Version 3.0.0Kenta Murata
https://github.com/ruby/bigdecimal/commit/e68f1eb33a
2020-12-19[bigdecimal] Add BigDecimal#n_significant_digitsKenta Murata
https://github.com/ruby/bigdecimal/commit/981dc48f95 https://github.com/ruby/bigdecimal/commit/9ecf880ec04
2020-12-19[bigdecimal] Make BigDecimal#precs deprecatedKenta Murata
https://github.com/ruby/bigdecimal/commit/7e80e6e145 https://github.com/ruby/bigdecimal/commit/0ed7846e8c
2020-12-19[bigdecimal] Add BigDecimal#precisionKenta Murata
https://github.com/ruby/bigdecimal/commit/458eb66c49