summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-10-24Reuse RBOOL macro in rb_ivar_defined functionS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/6622
2022-10-24Update default gems list at c5f5403f6ed9e62f2a1002417e61c9 [ci skip]git
2022-10-24[ruby/net-http] Bump version to 0.3.0 Hiroshi SHIBATA
2022-10-24Skip `File.atime`/`File.mtime` tests randomly failing on TravisNobuyoshi Nakada
Not only powerpc64le, also s390x and arm32 seem failing too. These failures are probably caused by filesystem settings on Travis, but unrelated to CPUs.
2022-10-24Adjust indents [ci skip]Nobuyoshi Nakada
2022-10-23Fix argument & Remove enumS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/6616
2022-10-23Introduce rb_memsearch_with_char_size functionS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/6616
2022-10-23Reduce type check of arguments at Complex creationNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6618
2022-10-23Introduce `hash_iter_status_check` functionS.H
Notes: Merged: https://github.com/ruby/ruby/pull/6564 Merged-By: nobu <nobu@ruby-lang.org>
2022-10-23[Bug #19004] `Complex.polar` handles complex singular `abs` argumentStephen Ierodiaconou
`Complex.polar` accepts Complex values as arguments for the polar form as long as the value of the complex has no imaginary part (ie it is 'real'). In `f_complex_polar` this is handled by extracting the real part of the arguments. However in the case `polar` is called with only a single argument, the absolute value (abs), then the Complex is created without applying a check on the type of abs, meaning it is possible to create a Complex where the real part is itself an instance of a Complex. This change removes the short circuit for the single argument case meaning the real part extraction is performed correctly (by f_complex_polar). Also adds an example to `spec/ruby/core/complex/polar_spec.rb` to check that the real part of a complex argument is correctly extracted and used in the resulting Complex real and imaginary parts. Notes: Merged: https://github.com/ruby/ruby/pull/6568 Merged-By: nobu <nobu@ruby-lang.org>
2022-10-23Update Complex.polar with Complex testsNobuyoshi Nakada
2022-10-22Improved formatting of `hash_foreach_iter` functions. (#6615)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-10-22[rubygems/rubygems] Allow upcoming JRuby to pass keywords for Kernel#warnThomas E. Enebo
jruby-head (which will be JRuby 9.4.0.0) can now properly process the keywords to Kernel#warn. I cannot think of any capability based test for this so I constrained it using a version guard. Only JRuby will ever hit the version guard. https://github.com/rubygems/rubygems/commit/cd468c7e0f
2022-10-22Add [Feature #19013] to NEWS [ci skip]yui-knk
Notes: Merged: https://github.com/ruby/ruby/pull/6614
2022-10-21Rename `iv_count` on shapes to `next_iv_index`Jemma Issroff
`iv_count` is a misleading name because when IVs are unset, the new shape doesn't decrement this value. `next_iv_count` is an accurate, and more descriptive name. Notes: Merged: https://github.com/ruby/ruby/pull/6608
2022-10-21Remove unused class serialJemma Issroff
Before object shapes, we were using class serial to invalidate inline caches. Now that we use shape_id for inline cache keys, the class serial is unnecessary. Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/6605
2022-10-21YJIT: Fix page rounding for icache bustingAlan Wu
Previously, we found the current page by rounding the current pointer to the closest smaller page size. This is incorrect because pages are relative to the start of the address we reserve. For example, if the starting address is 12KiB modulo the 16KiB page size, once we have more than 4KiB of code, calculating with the address would incorrectly give us page 1 when we're actually still on page 0. Previously, I can reproduce crashes with: make btest RUN_OPTS=--yjit-code-page-size=32 on ARM64 macOS, where system page sizes are 16KiB. Notes: Merged: https://github.com/ruby/ruby/pull/6607 Merged-By: XrXr
2022-10-21YJIT: Read rb_num_t as usize earlyAlan Wu
This patch makes sure that we're not accidentally reading rb_num_t instruction arguments as VALUE and accidentally baking them into code and marking them. Some of these are simply moving the cast earlier, but some of these avoid potential problems for flag and ID arguments. Follow-up for 39f7eddec4c55711d56f05b085992a83bf23159e. Notes: Merged: https://github.com/ruby/ruby/pull/6606
2022-10-21[DOC] Add link targets (#6602)Burdette Lamar
Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2022-10-21In init_copy, set shape after copying ivarsJemma Issroff
GC uses shapes to determine IV buffer width. Since allocation can trigger GC, we need to ensure we only set the shape once we've fully allocated new memory for the IV buffer, otherwise the GC can end up trying to mark invalid memory. Notes: Merged: https://github.com/ruby/ruby/pull/6601
2022-10-21[ruby/stringio] [DOC] Enhanced RDoc for StringIOBurdette Lamar
(https://github.com/ruby/stringio/pull/36) Treats: - #each_codepoint - #gets - #readline (shows up in doc for module IO::generic_readable, not class StringIO) - #each_line https://github.com/ruby/stringio/commit/659aca7fe5
2022-10-21[ruby/net-http] Revert "Replace Timeout.timeout in Net:HTTP#connect"Hiroshi SHIBATA
This reverts commit https://github.com/ruby/net-http/commit/753cae3bbccc. https://github.com/ruby/net-http/commit/98caa38204
2022-10-21Range#size returns nil for (.."a") and (nil..)Yusuke Endoh
Fixes [Bug #18983] Notes: Merged: https://github.com/ruby/ruby/pull/6604
2022-10-21Check writebarrier arguments only when RGENGC_CHECK_MODE [ci skip]Nobuyoshi Nakada
The commit 575ae50d16a03ed23357ec4ea0dbf7167fc26c8c was for debugging the failure triggered by f55212bce939f736559709a8cd16c409772389c8, and it was fixed at the commit 39f7eddec4c55711d56f05b085992a83bf23159e.
2022-10-20YJIT: Fix gen_expandarray treating argument as VALUEAlan Wu
The expandarray instruction interpreters its arguments as rb_num_t. YJIT was treating the num argument as a VALUE previously and when it has a certain bit pattern, it can look like a GC pointer. The argument is not a pointer, so YJIT crashed when trying to mark those pointers. This bug existed previously, but our test suite didn't expose it until f55212bce939f736559709a8cd16c409772389c8. TestArgf#test_to_io has a line like: a1, a2, a3, a4, a5, a6, a7, a8 = array Which maps to an expandarray with an argument of 8. Qnil happened to be defined as 8, which masked the issue. Fix it by not using the argument as a VALUE. Notes: Merged: https://github.com/ruby/ruby/pull/6603
2022-10-20YJIT: remove some stale comments [ci skip]Alan Wu
2022-10-20Check writebarrier argumentsNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6600
2022-10-20YJIT: incorporate ruby_special_constsNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6600
2022-10-20Unmark Internal IV test as pendingJemma Issroff
Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/6595
2022-10-20Add Class#attached_objectUfuk Kayserilioglu
Implements [Feature #12084] Returns the object for which the receiver is the singleton class, or raises TypeError if the receiver is not a singleton class. Notes: Merged: https://github.com/ruby/ruby/pull/6450
2022-10-20Define `UNDEF_P` and `NIL_OR_UNDEF_P` [EXPERIMENTAL]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6599
2022-10-20Move "special consts" so `Qundef` and `Qnil` differ just 1 bitNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6599
2022-10-20Ignore manual files only commits [ci skip]Nobuyoshi Nakada
2022-10-20push dummy frame for loading processKoichi Sasada
This patch pushes dummy frames when loading code for the profiling purpose. The following methods push a dummy frame: * `Kernel#require` * `Kernel#load` * `RubyVM::InstructionSequence.compile_file` * `RubyVM::InstructionSequence.load_from_binary` https://bugs.ruby-lang.org/issues/18559 Notes: Merged: https://github.com/ruby/ruby/pull/6572
2022-10-20[Bug #18998] Honor `#to_str` next to `#to_int` in `Kernel#Integer`Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6598
2022-10-20Followed up CVE-2022-39253 for bundler examplesHiroshi SHIBATA
2022-10-20[DOC] Fix RUBY_SYMBOL_FLAG comment [ci skip]Nobuyoshi Nakada
Upper bits than the least significant 4 bits need not be 0.
2022-10-19YJIT: Respect writable_addrs on --yjit-dump-iseq-disasm as well (#6596)Takashi Kokubun
YJIT: Respect writable_addrs on --yjit-dump-iseq-disasm as well Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-10-19Remove a leftover comment [ci skip]Takashi Kokubun
2022-10-20Avoid missed wakeup with fiber scheduler and Fiber.blocking. (#6588)Samuel Williams
* Ensure that blocked fibers don't prevent valid wakeups. Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-10-19MJIT: Stop using the VM barrier for jit_contTakashi Kokubun
This solves multiple problems. First, RB_VM_LOCK_ENTER/LEAVE is a barrier. We could at least use the _NO_BARRIER variant. Second, this doesn't need to interfere with GC or other GVL users when multiple Ractors are used. This needs to be used in very few places, so the benefit of fine-grained locking would outweigh its small maintenance cost. Third, it fixes a crash for YJIT. Because YJIT is never disabled until a process exits unlike MJIT that finishes earlier, we could call jit_cont_free when EC no longer exists, which crashes RB_VM_LOCK_ENTER.
2022-10-19YJIT: Skip dumping code for the other cb on --yjit-dump-disasm (#6592)Takashi Kokubun
YJIT: Skip dumping code for the other cb on --yjit-dump-disasm Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-10-19YJIT: fix a #[warn(unused_parens)]Alan Wu
2022-10-19Transition frozen string to frozen root shapeJemma Issroff
Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/6590
2022-10-19YJIT: fold the "asm_comments" feature into "disasm" (#6591)Alan Wu
Previously, enabling only "disasm" didn't actually build. Since these two features are closely related and we don't really use one without the other, let's simplify and merge the two features together. Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-10-19[DOC] More about line number (#6582)Burdette Lamar
Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2022-10-19[ruby/stringio] [DOC] Enhanced RDoc for StringIOBurdette Lamar
(https://github.com/ruby/stringio/pull/35) Treated: - #getc - #getbyte - #ungetc - #ungetbyte - #readchar - #readbyte - #each_char https://github.com/ruby/stringio/commit/6400af8d9f
2022-10-19Stop zeroing memory on allocation / copyAaron Patterson
Shapes gives us an almost exact count of instance variables on an object. Since we know the number of instance variables that have been set, we will never access slots that haven't been initialized with an IV. Notes: Merged: https://github.com/ruby/ruby/pull/6585
2022-10-19Assert for RTEST that Qnil and Qfalse differ just 1 bitNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6589
2022-10-19[rubygems/rubygems] Use [] instead of double-quotes Hiroshi SHIBATA