summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-06-16Fixed comments in cmd.exe script [ci skip]Nobuyoshi Nakada
2021-06-16Removed redundant NUM2IOCTLREQ definition [Bug #17759]Nobuyoshi Nakada
Fix up c2d9967f78d2e6f93f8d9876c2b3ab25aa6b86e7.
2021-06-16Configure ioctl request argument type [Bug #17759]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4576
2021-06-16* 2021-06-16 [ci skip]git
2021-06-16Make ext directory before extinit.c when out-of-place buildNobuyoshi Nakada
2021-06-15Time#getlocal tests for [Feature #17544]Nobuyoshi Nakada
2021-06-15Convert initial contents before allocating queue bufferNobuyoshi Nakada
2021-06-15[ruby/ostruct] v0.4.0Marc-Andre Lafortune
https://github.com/ruby/ostruct/commit/8534f69e4e
2021-06-14[Bug #17880] Set leaf false on opt_setinlinecache (#4565)Eileen M. Uchitelle
This change fixes the bug described in https://bugs.ruby-lang.org/issues/17880. Checking `ractor_shareable_p` will cause the method to call back into Ruby. Anything calling this method can't be a leaf instruction, otherwise it could crash. By adding `attr bool leaf = false` we no longer crash because it marks the function as not a leaf. Here's a simplified reproduction script: ```ruby require "set" class Id attr_reader :db_id def initialize(db_id) @db_id = db_id end def ==(other) other.class == self.class && other.db_id == db_id end alias_method :eql?, :== def hash 10 end def <=>(other) db_id <=> other.db_id if other.is_a?(self.class) end end class Namespace IDS = Set[ Id.new(1).freeze, Id.new(2).freeze, Id.new(3).freeze, Id.new(4).freeze, ].freeze class << self def test?(id) IDS.include?(id) end end end p Namespace.test?(Id.new(1)) p Namespace.test?(Id.new(5)) ``` Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org> Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org> Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2021-06-14[lib/ostruct] Fix YAML testMarc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/4572
2021-06-14[lib/ostruct] Allow overriding of `block_given?`Marc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/4572
2021-06-15* 2021-06-15 [ci skip]git
2021-06-15Suppress exception report in inner threadNobuyoshi Nakada
2021-06-15Close leaked file descriptorsNobuyoshi Nakada
2021-06-14[ruby/ostruct] bump upNobuyoshi Nakada
https://github.com/ruby/ostruct/commit/bb253be3e9
2021-06-14Suppress gcc11 clobbered warningNobuyoshi Nakada
2021-06-14Add fallback block to `OpenStruct#delete_field` (#1409)jfrazx
Notes: Merged-By: marcandre <github@marc-andre.ca>
2021-06-14prefer cc/gcc over clang on solaris卜部昌平
requested by tankf33der at https://bugs.ruby-lang.org/issues/17949#change-92430 Notes: Merged: https://github.com/ruby/ruby/pull/4567
2021-06-14Fixed method names in exception messagesNobuyoshi Nakada
These methods are not !-suffixed, and the messages were very confusing.
2021-06-14Fix fiber scheduler address resolve solaris testsBruno Sutic
Notes: Merged: https://github.com/ruby/ruby/pull/4571
2021-06-14Revert "Suppress gcc11 clobbered warning"Samuel Williams
This reverts commit f0f9e77b65990001bd2acb42e1c6b673f6324425. Notes: Merged: https://github.com/ruby/ruby/pull/4570
2021-06-14Wake up join list within thread EC context. (#4471)Samuel Williams
* Wake up join list within thread EC context. * Consume items from join list so that they are not re-executed. If `rb_fiber_scheduler_unblock` raises an exception, it can result in a segfault if `rb_threadptr_join_list_wakeup` is not within a valid EC. This change moves `rb_threadptr_join_list_wakeup` into the thread's top level EC which initially caused an infinite loop because on exception will retry. We explicitly remove items from the thread's join list to avoid this situation. * Verify the required scheduler interface. * Test several scheduler hooks methods with broken `unblock` implementation. Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2021-06-14Removed no longer used variablesNobuyoshi Nakada
2021-06-14Pack values to preserveNobuyoshi Nakada
2021-06-14Suppress gcc11 clobbered warningNobuyoshi Nakada
2021-06-14Add scheduler hook `Addrinfo.getaddrinfo`. (#4375)Samuel Williams
Co-authored-by: Bruno Sutic <code@brunosutic.com> Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2021-06-14time.c: Check if defined(RUBY_MSVCRT_VERSION) to build on SolarisYusuke Endoh
Fixes [Bug #17947]
2021-06-14* 2021-06-14 [ci skip]git
2021-06-14parse.y: Fix the location of a target constant of OP_CDECLYusuke Endoh
``` p RubyVM::AbstractSyntaxTree.parse("::Foo += 1").children #=> before: [[], nil, (OP_CDECL@1:0-1:10 (COLON3@1:0-1:10 :Foo) :+ (LIT@1:9-1:10 1))] #=> after: [[], nil, (OP_CDECL@1:0-1:10 (COLON3@1:0-1:5 :Foo) :+ (LIT@1:9-1:10 1))] ```
2021-06-13Suppress array-parameter warnings by gcc 11Nobuyoshi Nakada
2021-06-13Added parentheses to silence sizeof-array-div warningsNobuyoshi Nakada
As well as 2366c681166a1dab95de6b9ca8ffcaae18aadd39.
2021-06-13Removed duplicate includeNobuyoshi Nakada
2021-06-13Check if alternative malloc header can work in C++Nobuyoshi Nakada
jemalloc (5.2.1 at least) cannot compile in C++ on macOS SDK, due to conflicts on exception specification.
2021-06-13* 2021-06-13 [ci skip]git
2021-06-13Refactor rb_block_call functionS.H
rb_block_call and rb_block_call_kw have similar code. So, using rb_block_kw function in rb_block_call function for refactoring. Notes: Merged: https://github.com/ruby/ruby/pull/4566 Merged-By: nobu <nobu@ruby-lang.org>
2021-06-12* 2021-06-12 [ci skip]git
2021-06-12cont.c: Replace "iff" with "if and only if"nagachika
2021-06-11* 2021-06-11 [ci skip]git
2021-06-10Crash more nicely when the VM isn't fully set upAaron Patterson
If we crash but the VM isn't fully alive, we can get an infinite loop.
2021-06-10Finish GC before calling gc_set_initial_pagesPeter Zhu
If we are during incremental sweeping when calling gc_set_initial_pages there is an assertion error. The following patch will artificially produce the bug: ``` diff --git a/gc.c b/gc.c index c3157dbe2c..d7282cf8f0 100644 --- a/gc.c +++ b/gc.c @@ -404,7 +404,7 @@ int ruby_rgengc_debug; * 5: show all references */ #ifndef RGENGC_CHECK_MODE -#define RGENGC_CHECK_MODE 0 +#define RGENGC_CHECK_MODE 1 #endif // Note: using RUBY_ASSERT_WHEN() extend a macro in expr (info by nobu). @@ -10821,6 +10821,10 @@ gc_set_initial_pages(void) void ruby_gc_set_params(void) { + for (int i = 0; i < 10000; i++) { + rb_ary_new(); + } + /* RUBY_GC_HEAP_FREE_SLOTS */ if (get_envparam_size("RUBY_GC_HEAP_FREE_SLOTS", &gc_params.heap_free_slots, 0)) { /* ok */ ``` The crash looks like: ``` Assertion Failed: ../gc.c:2038:heap_add_page:!(heap == heap_eden && heap->sweeping_page) ``` Notes: Merged: https://github.com/ruby/ruby/pull/4562
2021-06-10Add missing dependenciesTakashi Kokubun
https://github.com/ruby/ruby/runs/2791163586?check_suite_focus=true
2021-06-10Cast jit_func for WindowsTakashi Kokubun
https://ci.appveyor.com/project/ruby/ruby/builds/39542385/job/8b7aq951f9t01x4x
2021-06-10Avoid enqueueing the same ISeq twiceTakashi Kokubun
by a race condition by multiple Ractors. Atmically incrementing body->total_calls may have its own cost, so for now we intentionally leave the unreliable total_calls. So we allow an ISeq to be never pushed when you use multiple Ractors. However, if you enqueue a single ccan node twice, get_from_list loops infinitely. Thus this patch takes care of such a situation.
2021-06-10Freeze command line scriptNobuyoshi Nakada
2021-06-09Refactor gc_marks_start_heap to only configure heapPeter Zhu
Move the non-heap related configurations to gc_marks_start. Notes: Merged: https://github.com/ruby/ruby/pull/4560
2021-06-10* 2021-06-10 [ci skip]git
2021-06-09Enable Travis on the specific branches or forked repositories.Jun Aruga
Align the Travis enabling timing with GitHub Actions. For the syntax, see <https://docs.travis-ci.com/user/conditions-v1>. We use `repo` syntax rather than `fork = true/false` syntax to show a general usage in any repositories on GitHub. The non-forked repo is not always a primary repo in any GitHub repositories. [Bug #17936] Notes: Merged: https://github.com/ruby/ruby/pull/4556
2021-06-09Pack iseq_inline_constant_cache_entryNobuyoshi Nakada
Reordered iseq_inline_constant_cache_entry members not to exceed the size of RValue.
2021-06-09[Win32] fixed PACKED_STRUCT_UNALIGNED on x86Nobuyoshi Nakada
Use MACHINE for x86 CPU family, ARCH is CPU model name (i386) and cannot be x86.
2021-06-09POSIX timer cannot be shared in forked process [Bug #17941]Nobuyoshi Nakada