summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-09-10[DOC] Fix method docs of scheduler#io_read and scheduler#io_writekudojp
Each of Fiber::Scheduler#io_read and io_write takes the "offset" as the fourth argument, which is not doucmented. Notes: Merged: https://github.com/ruby/ruby/pull/8407
2023-09-10[DOC] Fix a typo in "Open Options" section of IOHerwin
The word "and" was missing. Notes: Merged: https://github.com/ruby/ruby/pull/8409 Merged-By: nobu <nobu@ruby-lang.org>
2023-09-10Set ripper_init.c.tmpl to C mode [ci skip]Nobuyoshi Nakada
2023-09-08[DOC] Update Reline and IRB's maintainers list (#8406)Stan Lo
Update Reline and IRB's maintainers list Maintainers' order follows the same order they appear in the projects' contributors list as of the time this commit is made. Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2023-09-09memory_view: Avoid using bit fieldSutou Kouhei
Bit field's memory layout is implementation-defined. See also: https://wiki.sei.cmu.edu/confluence/display/c/EXP11-C.+Do+not+make+assumptions+regarding+the+layout+of+structures+with+bit-fields If memory layout is implementation-defined, it's difficult to use from FFI library such as Ruby-FFI. Notes: Merged: https://github.com/ruby/ruby/pull/8380
2023-09-08[YARP] Extract YP_COMPILE helper (#8403)Jemma Issroff
Notes: Merged-By: jemmaissroff
2023-09-08Update default gems list at f4443f3b1c6dd70b6b22470a7d5f87 [ci skip]git
2023-09-08[ruby/yarp] Increment versionKevin Newton
https://github.com/ruby/yarp/commit/2b41ceb754
2023-09-08[ruby/yarp] Template out a comment_targets methodKevin Newton
https://github.com/ruby/yarp/commit/a94af7c4c8
2023-09-08[ruby/yarp] Move parse result mutations into their own filesKevin Newton
https://github.com/ruby/yarp/commit/3be8272fa2
2023-09-08[YARP] Implement compilation for RationalNodes, fix other num types (#8404)Jemma Issroff
Notes: Merged-By: jemmaissroff
2023-09-08[ruby/yarp] Add ParseResult#attach_comments! to tie comments to their locationsVinicius Stock
https://github.com/ruby/yarp/commit/ddc699156f Co-authored-by: Kevin Newton <kddnewton@users.noreply.github.com>
2023-09-08Fix weak_references count testMatt Valentine-House
This test creates a lot of Objects held in an array, and a set of weak references to them using WeakMap. It then clears the array and frees it and asserts that all the weak references to it are also gone. This test is failing because one of the dummy objects in our weakmap is ending up on the stack, and so is being marked, even though we thought that we'd removed the only reference to it. This behaviour has changed since this commit: https://github.com/ruby/ruby/commit/5b5ae3d9e064e17e2a7d8d21d739fcc62ae1075c which rewrites `Integer#times` from C into Ruby. This change is somehow causing the last object we append to our array to consistently end up on the stack during GC. This commit fixes the specific weakmap test by using an enumerator and each, instead of `Integer#times`, and thus avoids having our last object created end up on the stack. Notes: Merged: https://github.com/ruby/ruby/pull/8402
2023-09-08[DOC] Kernel#{proc,lambda} don't issue warnings anymoreAlan Wu
They've been raising since 3.0.0.
2023-09-08[YARP] Implement compilation for Regex / InterpolatedRegex (#8396)Jemma Issroff
Notes: Merged-By: jemmaissroff
2023-09-08[YARP] Implement compilation for InterpolatedXStringNode (#8395)Jemma Issroff
* [YARP] Implemented compilation for InterpolatedXStringNode * Extract common function for interpolated nodes Notes: Merged-By: jemmaissroff
2023-09-08[ruby/yarp] Flatten multitarget into multiwriteKevin Newton
https://github.com/ruby/yarp/commit/1021dac372
2023-09-08[ruby/yarp] Multi target nodesKevin Newton
https://github.com/ruby/yarp/commit/fa53fe88e4
2023-09-08Try default `gcc` 9.4.0 to see if it exhibits the same compiler bugs. (#8394)Samuel Williams
* Revert "Extract `do_mutex_lock_check_interrupts` to try and fix `ppc64le`. (#8393)" This reverts commit 5184b40dd4dc446660cd35c3e53896324e95b317. * .travis.yml: Try default gcc 9.4.0 instead of gcc-10 in ppc64le and s390x. Use gcc 9.4.0 instead of gcc-10 to avoid the current failures by a possible GCC 10 compiler bug in the Travis ppc64le and s390x cases. And it also aligns with RubyCI Ubuntu ppc64le and s390x where the default gcc is used. --------- Co-authored-by: Jun Aruga <jaruga@ruby-lang.org> Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2023-09-08Bump actions/cache from 3.3.1 to 3.3.2dependabot[bot]
Bumps [actions/cache](https://github.com/actions/cache) from 3.3.1 to 3.3.2. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8...704facf57e6136b1bc63b828d79edcd491f0ee84) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
2023-09-08Continue even if addr or rnglists headers not foundNobuyoshi Nakada
Fix up commit 31d1226, "Avoid aborting inside addr2line.c". Source code informations did not appear in C level backtrace since that change.
2023-09-07Add `String#getbyte` YJIT implementation (#8397)Ian Candy
* Add getbyte JIT implementation Adds an implementation for String#getbyte for YJIT, along with a bootstrap test. This should be helpful for pure Ruby implementations and to avoid unneeded allocations. Co-authored-by: John Hawthorn <jhawthorn@github.com> * Skip the getbyte test for RJIT for now --------- Co-authored-by: John Hawthorn <jhawthorn@github.com> Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2023-09-07YJIT: Decrease IVAR_MAX_DEPTH to 8 (#8398)Takashi Kokubun
Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2023-09-07GC: Only force alloc slowpath for NEWOBJ hookJohn Hawthorn
Previously, configuring any GC event hook would cause all allocations to go through the newobj slowpath. We should only need to do that when the newobj specifically is subscribed to. This renames flags.has_hook to flags.has_newobj_hook, to make this new usage clear. newobj_of0 was the only place which previously checked this flag. Notes: Merged: https://github.com/ruby/ruby/pull/8378
2023-09-07Optimize handle_interrupt(Exception => ..) as a common caseMatthew Draper
When interrupt behavior is configured for all possible exceptions using 'Exception', there's no need to iterate the pending exception's ancestors for hash lookups. More significantly, by storing the catch-all timing symbol directly in the mask stack, we can skip allocating the hash we would otherwise need. Notes: Merged: https://github.com/ruby/ruby/pull/8278
2023-09-07Skip allocation if handle_interrupt arg is already usableMatthew Draper
If the supplied hash is already frozen and compare-by-identity, we can use it directly (still checking its contents are valid symbols), without making a new copy. Notes: Merged: https://github.com/ruby/ruby/pull/8278
2023-09-07YJIT: Decrease SEND_MAX_DEPTH to 5 (#8390)Takashi Kokubun
Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2023-09-07[ruby/yarp] Avoid an extra "stop" parameter to yp_strspn_whitespace_newlinesMike Dalessio
and use yp_strspn_inline_whitespace instead. Partially reverts implementation details from #1152 https://github.com/ruby/yarp/commit/c8f9f4cfde
2023-09-07Rewrite Integer#times in Ruby (#8388)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2023-09-07[ruby/yarp] Extract error messages into diagnostic.c and use canonical ↵Mike Dalessio
message IDs The parser now passes around `yp_diagnostic_id_t` for diagnostic messages instead of character strings, and we rely on the function `diagnostic_message()` to resolve that to a string. In addition, many messages were edited so that the parser expresses coordinate ideas in similar form [1] using consistent voice and typographic conventions. Closes https://github.com/ruby/yarp/pull/1379, and makes progress on #941. [1] Strunk & White rule 19 https://github.com/ruby/yarp/commit/0b6dd85bf1
2023-09-07Document that thread event hooks are called without the GVLJean Boussier
Except for the `RESUMED` event. Notes: Merged: https://github.com/ruby/ruby/pull/8383
2023-09-07[YARP] Miscellaneous small bug fixes (#8387)Jemma Issroff
Notes: Merged-By: jemmaissroff
2023-09-07[ruby/yarp] remove now-redundant `YP_TOKEN_NOT_PROVIDED_VALUE`Nathan Froyd
https://github.com/ruby/yarp/commit/8f9a3c2345
2023-09-07[ruby/yarp] use `YP_LOCATION_*_VALUE` macros more consistentlyNathan Froyd
https://github.com/ruby/yarp/commit/bcad93e2fc
2023-09-07[ruby/yarp] Introduce owned constantsKevin Newton
Before this commit, constants in the constant pool were assumed to be slices of the source string. This works in _almost_ all cases. There are times, however, when a string needs to be synthesized. This can occur when passing in locals that need to be scoped through eval, or when generating method names like `foo=`. After this commit, there is a single bit `owned` boolean on constants in the pool that indicates whether or not it is a slice of the source string. If it is not, it is assumed to be allocated memory that should be freed by the constant pool when the constant pool is freed. When serializing, the most significant bit in the location of the contents of the constant indicates whether or not it is owned. When it is, instead of 4 bytes for the source offset and 4 bytes for the length it is instead 4 bytes for the buffer offset and 4 bytes the length. The contents of the owned constants are embedded into the buffer after the constant pool itself. https://github.com/ruby/yarp/commit/461c047365
2023-09-07Remove function call for String#bytesize (#8389)Aaron Patterson
* Remove function call for String#bytesize String size is stored in a consistent location, so we can eliminate the function call. * Update yjit/src/codegen.rs Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> --------- Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2023-09-07[YARP] Use the correct field for the name on classes and modulesKevin Newton
2023-09-07[ruby/yarp] Constants and def nodesKevin Newton
https://github.com/ruby/yarp/commit/6b2421ce1b
2023-09-07[ruby/yarp] Constants on rest parameter nodesKevin Newton
https://github.com/ruby/yarp/commit/a6fdb8aae9
2023-09-07[ruby/yarp] Constants on keyword rest parametersKevin Newton
https://github.com/ruby/yarp/commit/5e1a8fbc54
2023-09-07[ruby/yarp] Constants on keyword parametersKevin Newton
https://github.com/ruby/yarp/commit/d2d4f25a23
2023-09-07[ruby/yarp] Remove name constant from classes/modulesKevin Newton
https://github.com/ruby/yarp/commit/26105f0b58
2023-09-08Extract `do_mutex_lock_check_interrupts` to try and fix `ppc64le`. (#8393)Samuel Williams
We found some tests were hanging in `do_mutex_lock`, specifically the fiber scheduler autoload test. After much investigation, it may be a code generation bug. Because we didn't change the code, but only extracted it into a separate function, and it appears to fix the problem. Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2023-09-07Update bundled gems list at 2023-09-07git
2023-09-07[Bug #19549] Check for variables to be interpolatedNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/7615
2023-09-07Reduce number of iterations in `TestFiberScheduler#test_autoload`. (#8391)Samuel Williams
`ppc64le` appears to be struggling with this test due to timeout. Let's see if reducing the number of iterations can help improve the test performance. Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2023-09-07[DOC] Fix up Process::Status#>>Nobuyoshi Nakada
2023-09-07[rubygems/rubygems] Reduce excess index creation and mergingMartin Emde
When @allow_cached is true, @allow_local is always true, therefore, the #installed_specs will always be merged after #cached_specs is called. This makes starting with installed_specs.dup redundant. When #cached_specs is called because @allow_remote is true and @allow_cached is false, then installed_specs will be added after cached_specs based on @allow_local. We never need to add installed_specs here, so don't. https://github.com/rubygems/rubygems/commit/49b38f9750
2023-09-07[rubygems/rubygems] Improve efficiency of Index#use and #search_allMartin Emde
Rename Index#use(override = true) to #merge! Rename Index @all_specs to @duplicates, it is not actually all specs. @duplicates only holds specs that would have been overridden during a call to Index#use or Index#merge! Reduced dupes in @duplicates by not double adding the new spec to the index and the @duplicates during #merge! Reduce Array creation by using specialized methods when the one result or no results are needed from the search. https://github.com/rubygems/rubygems/commit/47e91125db
2023-09-07[rubygems/rubygems] Source::Rubygems#fetch_names is only called with ↵Martin Emde
override = false https://github.com/rubygems/rubygems/commit/790202691d