Граф коммитов

71455 Коммитов

Автор SHA1 Сообщение Дата
Hiroshi SHIBATA 8e3fbf9432 Merge psych master: Removed the bundled libyaml 2022-03-25 09:53:07 +09:00
Burdette Lamar 465edb96f0
[DOC] Enhanced RDoc for String (#5707)
Treated:

    #chomp
    #chomp!
    #chop
    #chop!
2022-03-24 19:40:58 -05:00
Jeremy Evans 343ea9967e Raise RuntimeError if Kernel#binding is called from a non-Ruby frame
Check whether the current or previous frame is a Ruby frame in
call_trace_func before attempting to create a binding for the frame.

Fixes [Bug #18487]

Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
2022-03-24 12:31:07 -07:00
git 33b13bd9f1 * 2022-03-25 [ci skip] 2022-03-25 01:14:55 +09:00
Kevin Newton 8008fb7352 Update formatting per feedback
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2022-03-24 09:14:38 -07:00
Kevin Newton 8f6eaca2e1 Delete ID from constant cache table if it becomes empty on ISEQ free
Co-authored-by: John Hawthorn <john@hawthorn.email>
2022-03-24 09:14:38 -07:00
Kevin Newton 629908586b Finer-grained inline constant cache invalidation
Current behavior - caches depend on a global counter. All constant mutations cause caches to be invalidated.

```ruby
class A
  B = 1
end

def foo
  A::B # inline cache depends on global counter
end

foo # populate inline cache
foo # hit inline cache

C = 1 # global counter increments, all caches are invalidated

foo # misses inline cache due to `C = 1`
```

Proposed behavior - caches depend on name components. Only constant mutations with corresponding names will invalidate the cache.

```ruby
class A
  B = 1
end

def foo
  A::B # inline cache depends constants named "A" and "B"
end

foo # populate inline cache
foo # hit inline cache

C = 1 # caches that depend on the name "C" are invalidated

foo # hits inline cache because IC only depends on "A" and "B"
```

Examples of breaking the new cache:

```ruby
module C
  # Breaks `foo` cache because "A" constant is set and the cache in foo depends
  # on "A" and "B"
  class A; end
end

B = 1
```

We expect the new cache scheme to be invalidated less often because names aren't frequently reused. With the cache being invalidated less, we can rely on its stability more to keep our constant references fast and reduce the need to throw away generated code in YJIT.
2022-03-24 09:14:38 -07:00
Peter Zhu 5f10bd634f Add ISEQ_BODY macro
Use ISEQ_BODY macro to get the rb_iseq_constant_body of the ISeq. Using
this macro will make it easier for us to change the allocation strategy
of rb_iseq_constant_body when using Variable Width Allocation.
2022-03-24 10:03:51 -04:00
git 04591e1be7 Update default gems list at 4c4a1e2035 [ci skip] 2022-03-24 12:39:01 +00:00
Marc-André Lafortune 4c4a1e2035 [ruby/ostruct] v0.5.4
https://github.com/ruby/ostruct/commit/fe19de4644
2022-03-24 21:38:26 +09:00
Marc-André Lafortune ad5754162b [ruby/ostruct] Avoid aliasing `block_given?` for JRuby [Fixes #40]
https://github.com/ruby/ostruct/commit/14d04ff694
2022-03-24 21:37:14 +09:00
dependabot[bot] 137e69b481 Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 20:39:14 +09:00
dependabot[bot] 9deacb3155 Bump actions/cache from 2 to 3
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 20:38:15 +09:00
Hiroshi SHIBATA 2ec82dd361
Added dependabot configuration for actions dependencies 2022-03-24 20:31:57 +09:00
David Rodríguez 39606a774e [rubygems/rubygems] Maybe this is now fixed
https://github.com/rubygems/rubygems/commit/d9c442e54c
2022-03-24 20:22:00 +09:00
Nobuyoshi Nakada e6c1db1d8a
[DOC] Refine flip-flop 2022-03-24 19:08:43 +09:00
Yusuke Endoh 8dc357fa94 Add Yuta Saito (katei) as the platform maintainer of WebAssembly/WASI 2022-03-24 13:23:24 +09:00
Nobuyoshi Nakada 1bb9e42fa5 extlibs.rb: Add fallback `Colorize`
To get rid of an unnecessary dependency for the case using
in other repositories.
2022-03-24 13:16:13 +09:00
Nobuyoshi Nakada 9ed6875f93 extlibs.rb: Enclose `Vars` in `ExtLibs` class
To get rid of an unnecessary top-level constant for the case using
as a library.
2022-03-24 13:16:13 +09:00
Nobuyoshi Nakada 247f8ecfa4 extlibs.rb: Extract ExtLibs#process
For the case using this script as a library.
- `ExtLibs#process` reads and processes an extlibs file.
- `ExtLibs#process_under` processes all extlibs files under the
  given directory.
- `Extlibs.run` parses `ARGV` and lets an instance process the
  directories.
2022-03-24 13:16:13 +09:00
Yusuke Endoh 9112cf4ae7 regint.h: Reduce the frequency of rb_thread_check_ints
edc8576a65 checks interrupt at every
backtrack, which brought significant overhead.

This change makes the check only once every 128 backtracks.
2022-03-24 09:47:22 +09:00
Nobuyoshi Nakada 1357b14750
Now all extension libraries must consider the ABI header 2022-03-24 08:59:24 +09:00
Nobuyoshi Nakada cccfd65350
[DOC] Remove mis-synced bundler directory 2022-03-24 08:34:57 +09:00
David Rodríguez d9dd88a686 [rubygems/rubygems] Avoid crash in test teardown
If an exception happens during test `setup` method, the `teardown`
method will still be run for cleaning up, but if some other errors
occurs then, it will hide the original error.

This is happening sometimes in CI where restoring original gem hooks is
failing because the error in `setup` happened before the variable
holding the original hooks was initialized.

This commit moves initialization of `@orig_hooks` to the beginning of
the `setup` method to avoid this issue.

https://github.com/rubygems/rubygems/commit/8524d2b74d
2022-03-24 07:34:29 +09:00
git 8b05b5a0e1 * 2022-03-24 [ci skip] 2022-03-24 05:32:22 +09:00
David Rodríguez 13481c1ec9 [rubygems/rubygems] Improve RDoc setup
Completely exclude the full bundler folder. The actual Bundler docs are
excluded anyways by ruby-core (by bundler/lib/bundler/.document,
bundler/lib/bundler/man/.document), I guess because bundler docs are not
in RDoc format?

Running RDoc in the repo root before these changes takes about 5 minutes
on my machine, while after these changes takes about 15 seconds.

https://github.com/rubygems/rubygems/commit/8b1802447a
2022-03-24 05:32:06 +09:00
Jeremy Evans 8f1c69f27c Raise ArgumentError when calling Enumberable#inject without block or arguments
Previously, this would work as expected if the enumerable contained
0 or 1 element, and would raise LocalJumpError otherwise. That
inconsistent behavior is likely to lead to bugs.

Fixes [Bug #18635]
2022-03-23 07:55:49 -07:00
David Rodríguez d32fa986c3 [rubygems/rubygems] Make `rescue` clause more specific
This is hiding a real bundler issue as a "network error". It's more
helpful to get a proper bug report, with stack trace and so on.

So stop re-raising errors when evaluating unmarshaled  responses  as
network errors, and only raise Marshal errors when the Marshal format is
invalid, not whenever marshalled gemspecs can't be loaded because that
may hide actual client errors, like missing `YAML` constants.

https://github.com/rubygems/rubygems/commit/05ea907e1c
2022-03-23 23:31:05 +09:00
Burdette Lamar 0140e6c41e
[DOC] Enhanced RDoc for String (#5685)
Treats:

    #chars
    #codepoints
    #each_char
    #each_codepoint
    #each_grapheme_cluster
    #grapheme_clusters

Also, corrects a passage in #unicode_normalize that mentioned module UnicodeNormalize, whose doc (:nodoc:, actually) says not to mention it.
2022-03-22 14:51:05 -05:00
Nobuyoshi Nakada 26aff37466
Need to reconfigure and rebuild everything when abi.h changed 2022-03-23 00:58:46 +09:00
git 2b01d7f2ce * 2022-03-23 [ci skip] 2022-03-23 00:01:31 +09:00
Jun Aruga 1ff174bfd1 [rubygems/rubygems] Fix a test for `bin/bundle update --bundler` to pass on ruby/ruby.
Consider the case that the latest Bundler version on RubyGems is higher than
the `system_bundler_version` (= `Bundler::VERSION`) in `make test-bundler` on
ruby/ruby.

See <https://bugs.ruby-lang.org/issues/18643>.

https://github.com/rubygems/rubygems/commit/bfa2f72cfa
2022-03-23 00:01:17 +09:00
Peter Zhu a51f30c671 [Feature #18634] Implement Arrays on Variable Width Allocation
This commit implements arrays on Variable Width Allocation. This allows
longer arrays to be embedded (i.e. contents directly follow the object
header) which improves performance through better cache locality.
2022-03-22 09:42:39 -04:00
Nobuyoshi Nakada 414ad77142
[DOC] re-count test suites run by `make check` [ci skip] 2022-03-22 11:24:53 +09:00
Kazuhiro NISHIYAMA bbd29fe0b6
Fix a link [ci skip] 2022-03-22 09:49:32 +09:00
Burdette Lamar c129b6119d
[DOC] Use RDoc inclusions in string.c (#5683)
As @peterzhu2118 and @duerst have pointed out, putting string method's RDoc into doc/ (which allows non-ASCII in examples) makes the "click to toggle source" feature not work for that method.

This PR moves the primary method doc back into string.c, then includes RDoc from doc/string/*.rdoc, and also removes doc/string.rdoc.

The affected methods are:

    ::new
    #bytes
    #each_byte
    #each_line
    #split

The call-seq is in string.c because it works there; it did not work when the call-seq is in doc/string/*.rdoc.

This PR also updates the relevant guidance in doc/documentation_guide.rdoc.
2022-03-21 14:58:00 -05:00
Benoit Daloze 1fd1f7bbfc Fix Markdown syntax in spec/README.md 2022-03-21 17:40:42 +01:00
Nobuyoshi Nakada 9f82818833
[DOC] Move old NEWS files to a separate directory 2022-03-22 01:37:34 +09:00
git 35cc70606b * 2022-03-22 [ci skip] 2022-03-22 01:32:26 +09:00
Nobuyoshi Nakada 92ef73a918 [ruby/rdoc] Expand the enclosing tree of the current file
https://github.com/ruby/rdoc/commit/f9f90ef2ff
2022-03-22 01:32:13 +09:00
Nobuyoshi Nakada dafe5c1323 [ruby/rdoc] Fold files in the page directory
https://github.com/ruby/rdoc/commit/b7b4cdab6c
2022-03-22 01:32:12 +09:00
Nobuyoshi Nakada 034c09776d [ruby/rdoc] Add test_generate_page
https://github.com/ruby/rdoc/commit/c870284163
2022-03-22 01:32:11 +09:00
Nobuyoshi Nakada 73541cdc2f
[ruby/rdoc] Allow method source code to scroll [ci skip]
https://github.com/ruby/rdoc/commit/1bb0496c53
2022-03-20 15:42:56 +09:00
Nobuyoshi Nakada 20ad09e560 [ruby/rdoc] Use the custom style `details summary` only in `nav-section`
https://github.com/ruby/rdoc/commit/7736d3a89c
2022-03-20 15:38:28 +09:00
git 7b3fdcdf03 * 2022-03-20 [ci skip] 2022-03-20 14:28:57 +09:00
Nobuyoshi Nakada 6946263a29
[DOC] make internally used classes/methods nodoc
Empty class documents are generated even with `:stopdoc:`.
2022-03-20 14:26:20 +09:00
Nobuyoshi Nakada fafa40997e
Make a dedecated assertion to clarify failed assertions 2022-03-19 14:33:04 +09:00
git 44998f2732 * 2022-03-19 [ci skip] 2022-03-19 07:17:18 +09:00
Burdette Lamar d52f41b765
[DOC] Enhanced RDoc for String (#5675)
Treats:
    #split
    #each_line
    #lines
    #each_byte
    #bytes
2022-03-18 17:17:00 -05:00
Peter Zhu 97426e15d7 [Bug #18627] Fix crash when including module
During lazy sweeping, the iclass could be a dead object that has not yet
been swept. However, the chain of superclasses of the iclass could
already have been swept (and become a new object), which would cause a
crash when trying to read the object.
2022-03-18 09:19:11 -04:00