summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-12-18[ruby/date] Remove `extz_pats` tableNobuyoshi Nakada
https://github.com/ruby/date/commit/945e26e243
2022-12-18[ruby/date] Remove `merid_names` tableNobuyoshi Nakada
https://github.com/ruby/date/commit/7fe2bd5f94
2022-12-18[ruby/date] Match abbreviated day and month names with head of full namesNobuyoshi Nakada
https://github.com/ruby/date/commit/a45f8f03c9
2022-12-17Use FL_TEST_RAW in rb_hash_default_valueJohn Hawthorn
We should always have a T_HASH here, so we can use FL_TEST_RAW to avoid checking whether we may have an immediate value. I expect this to be a very small performance improvement (perf stat ./miniruby benchmark/hash_aref_miss.rb shows a ~1% improvement). It also removes 9 instructions from rb_hash_default_value on x86_64. Notes: Merged: https://github.com/ruby/ruby/pull/6945
2022-12-17Use a BOP for Hash#defaultJohn Hawthorn
On a hash miss we need to call default if it is redefined in order to return the default value to be used. Previously we checked this with rb_method_basic_definition_p, which avoids the method call but requires a method lookup. This commit replaces the previous check with BASIC_OP_UNREDEFINED_P and a new BOP_DEFAULT. We still need to fall back to rb_method_basic_definition_p when called on a subclasss of hash. | |compare-ruby|built-ruby| |:---------------|-----------:|---------:| |hash_aref_miss | 2.692| 3.531| | | -| 1.31x| Co-authored-by: Daniel Colson <danieljamescolson@gmail.com> Co-authored-by: "Ian C. Anderson" <ian@iancanderson.com> Co-authored-by: Jack McCracken <me@jackmc.xyz> Notes: Merged: https://github.com/ruby/ruby/pull/6945
2022-12-17MJIT: Refactor BitField dereference byte and bitmask (#6955)Mau Magnaguagno
Prefer Array#unpack1 and Enumerable#sum. I think the bitmask formula ``2 ** @width - 1`` would be clearer, but not faster for such small integers. Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-12-17Hard crash when allocating in GC when RUBY_DEBUGPeter Zhu
Not all builds have RGENGC_CHECK_MODE set, so it should also crash when RUBY_DEBUG is set.
2022-12-17Move check for GC to xmalloc and xcallocPeter Zhu
Moves the check earlier to before we actually perform the allocation.
2022-12-17Add tests for `Queue#pop` with fiber scheduler. (#6953)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-12-16Clean up Ruby Shape APIJemma Issroff
Make printing shapes better, use a struct instead of specific methods for each field on a shape. Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/6942
2022-12-16Don't allow allocating memory during GCPeter Zhu
Allocating memory (xmalloc and xrealloc) during GC could cause GC to trigger, which would crash with `[BUG] during_gc != 0`. This is an intermittent bug which could be hard to debug. This commit changes it so that any memory allocation during GC will emit a warning. When debug flags are enabled it will also cause a crash. Notes: Merged: https://github.com/ruby/ruby/pull/6921
2022-12-16[Feature #18033] [DOC] Add NEWSNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4825
2022-12-16[Feature #18033] Parse more strictly conformant with ISO-8601Nobuyoshi Nakada
* 4-digits or more is required as year * Minutes and seconds parts are not ommittable Notes: Merged: https://github.com/ruby/ruby/pull/4825
2022-12-16[Feature #18033] Make more conformant with C standardNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4825
2022-12-16[Feature #18033] Add `precision:` optionNobuyoshi Nakada
Which limits the precision of subsecond. Defaulted to 9, that means nanosecond. Notes: Merged: https://github.com/ruby/ruby/pull/4825
2022-12-16[Feature #18033] More strict checksNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4825
2022-12-16[Feature #18033] Name a magic numberNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4825
2022-12-16[Feature #18033] Make Time.new parse time stringsNobuyoshi Nakada
`Time.new` now parses strings such as the result of `Time#inspect` and restricted ISO-8601 formats. Notes: Merged: https://github.com/ruby/ruby/pull/4825
2022-12-16Unconditionally warn "unknown pack/unpack directive"Yusuke Endoh
[Bug #19150] Notes: Merged: https://github.com/ruby/ruby/pull/6948
2022-12-16Update NEWS.mdYusuke Endoh
Regexp optimization and Wasm support are added.
2022-12-16Removed temporary workaround for syntax_suggest tagsHiroshi SHIBATA
2022-12-16Update default gems list at 11f3bef260258c4c8a05ea35ab3bf8 [ci skip]git
2022-12-16[ruby/date] Bump version to 3.3.2Hiroshi SHIBATA
https://github.com/ruby/date/commit/7afd9d4615
2022-12-16Update default gems list at 2cd22f9abd2e759a94452b54408a68 [ci skip]git
2022-12-16[ruby/logger] Bump version to 1.5.3Hiroshi SHIBATA
https://github.com/ruby/logger/commit/4e8d9e27fd
2022-12-16Followed up ad18d1297ed82aa9c38375532b0b709131cf1ae7 with tool/update-deps --fixHiroshi SHIBATA
2022-12-16Reject keyword arguments given to Enumerator::Product.newAkinori MUSHA
The use of keyword arguments should be reserved for future extension.
2022-12-16Update default gems list at d95ee114621c3cd34b4a34233888bb [ci skip]git
2022-12-16[ruby/io-console] Bump version to 0.6.0Hiroshi SHIBATA
https://github.com/ruby/io-console/commit/441528e3eb
2022-12-16Update default gems list at 7e26ff7dc008ce14e34b43b8ee04a7 [ci skip]git
2022-12-16[ruby/io-wait] Bump version to 0.3.0Hiroshi SHIBATA
https://github.com/ruby/io-wait/commit/940ba319d3
2022-12-16surpress warningKoichi Sasada
now `enc_table->list` is not a pointer.
2022-12-16[ruby/irb] Prefer to use File.open instead of Kernel.openHiroshi SHIBATA
https://github.com/ruby/irb/commit/ed9e435a6b
2022-12-16fixed encoding tableKoichi Sasada
This reduces global lock acquiring for reading. https://bugs.ruby-lang.org/issues/18949 Notes: Merged: https://github.com/ruby/ruby/pull/6935
2022-12-16Mentioned https://bugs.ruby-lang.org/issues/17767 on NEWS.mdHiroshi SHIBATA
2022-12-15Add NEWS entries about CGI and ERB [ci skip]Takashi Kokubun
2022-12-15YJIT: Fix `obj.send(:call)`Alan Wu
All the method call types need to handle argument shifting in case they're called by `.send`, and we weren't handling that in `OPTIMIZED_METHOD_TYPE_CALL`. Lack of shifting caused the stack size assertion in gen_leave() to fail. Discovered by Rails CI: https://buildkite.com/rails/rails/builds/91705#018516c4-f8f8-469e-bc2d-ddeb25ca8317/1920-2067 Diagnosed with help from `@eileencodes` and `@k0kubun`. Notes: Merged: https://github.com/ruby/ruby/pull/6943 Merged-By: XrXr
2022-12-15Indicate if a shape is too_complex in ObjectSpace#dumpJemma Issroff
Notes: Merged: https://github.com/ruby/ruby/pull/6939
2022-12-15Move definition of SIZE_POOL_COUNT back to gc.hPeter Zhu
SIZE_POOL_COUNT is a GC macro, it should belong in gc.h and not shape.h. SIZE_POOL_COUNT doesn't depend on shape.h so we can have shape.h depend on gc.h. Co-Authored-By: Matt Valentine-House <matt@eightbitraptor.com> Notes: Merged: https://github.com/ruby/ruby/pull/6940
2022-12-15[ruby/net-http] Enhanced RDoc for Net::HTTPBurdetteLamar
https://github.com/ruby/net-http/commit/da626e4e42
2022-12-15Improve Struct NEWS [ci skip]Takashi Kokubun
I meant to commit diff, but it was left uncommitted locally.
2022-12-15Refactor to only attempt to move movable objectsPeter Zhu
Moves check for gc_is_moveable_obj from try_move to gc_compact_plane. Co-Authored-By: Matt Valentine-House <matt@eightbitraptor.com> Notes: Merged: https://github.com/ruby/ruby/pull/6938
2022-12-15Fix Object Movement allocation in GCMatt Valentine-House
When moving Objects between size pools we have to assign a new shape. This happened during updating references - we tried to create a new shape tree that mirrored the existing tree, but based on the root shape of the new size pool. This causes allocations to happen if the new tree doesn't already exist, potentially triggering a GC, during GC. This commit changes object movement to look for a pre-existing new tree during object movement, and if that tree does not exist, we don't move the object to the new pool. This allows us to remove the shape allocation from update references. Co-Authored-By: Peter Zhu <peter@peterzhu.ca> Notes: Merged: https://github.com/ruby/ruby/pull/6938
2022-12-15YJIT: Fix code GC freeing stubs with a trampoline (#6937)Alan Wu
Stubs we generate for invalidation don't necessarily co-locate with the code that jump to the stub. Since we rely on co-location to keep stubs alive as they are in the outlined code block, it used to be possible for code GC inside branch_stub_hit() to free the stub that's its direct caller, leading us to return to freed code after. Stubs used to look like: ``` mov arg0, branch_ptr mov arg1, target_idx mov arg2, ec call branch_stub_hit jmp return_reg ``` Since the call and the jump after the call is the same for all stubs, we can extract them and use a static trampoline for them. That makes branch_stub_hit() always return to static code. Stubs now look like: ``` mov arg0, branch_ptr mov arg1, target_idx jmp trampoline ``` Where the trampoline is: ``` mov arg2, ec call branch_stub_hit jmp return_reg ``` Code GC can now free stubs without problems since we'll always return to the trampoline, which we generate once on boot and lives forever. This might save a small bit of memory due to factoring out the static part of stubs, but it's probably minor. [Bug #19234] Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-12-15Add Struct examples to NEWS [ci skip]Takashi Kokubun
2022-12-15Add Data.define examples to NEWS [ci skip]Takashi Kokubun
2022-12-15Update NEWS.md to include shapes and gc bitmap markingJemma Issroff
Notes: Merged: https://github.com/ruby/ruby/pull/6941
2022-12-15Fix missing variablesTakashi Kokubun
It was a bad copy-paste.
2022-12-15Enable Slack notifications on more ActionsTakashi Kokubun
auto_request_review, codeql-analysis, scorecards don't have it either, but those are intentional.
2022-12-15Partially revert "Update bundled_gems"Takashi Kokubun
This reverts the net-imap upgrade of commit e3ed6c07832edf2a95bae3bdd908cc3f5b65eebe. net-imap tests of test-bundled-gems seem to be broken https://github.com/ruby/ruby/actions/runs/3704473689/jobs/6277145052.