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

76195 Коммитов

Автор SHA1 Сообщение Дата
Kouhei Yanagita 3fefe660f8
[DOC] Fix call-seq of Struct.new (#7246) 2023-02-03 14:26:39 -08:00
Peter Zhu e30cf60a19 Remove dead code in ar_copy
All of the callers of ar_copy guarantee that hash2 has an ar table,
so we don't need the logic to handle the case when hash2 doesn't have
an ar table.
2023-02-03 14:59:00 -05:00
Alan Wu f901b934fd YJIT: Make Block::start_addr non-optional
We set the block address as soon as we make the block, so there is no
point in making it `Option<CodePtr>`. No memory saving, unfortunately,
as `mem::size_of::<Block>() = 176` before and after this change. Still
a simplification for the logic, though.
2023-02-03 14:58:01 -05:00
Takashi Kokubun dff03149a0
Put example VSCode configs in misc/.vscode [ci skip]
They are needed very often but it's hard to remember. I thought it'd be
useful to just copy that to /.vscode and edit that.

Usage:
cp -r misc/.vscode .vscode

Don't symlink it because you'd edit it but not want to commit it.
2023-02-03 11:01:08 -08:00
Alan Wu e50f102489 CI: Pass -O2 for annocheck
Because `optflags` is pasted into the invocation line after `CC`, we were
building with -O1 unintentionally. You can see this in the configuration
summary: https://github.com/ruby/ruby/actions/runs/3933391169/jobs/6727044423#step:9:753

The check actually fails with -O2. To make it pass, upstream suggest
that we use the annocheck GCC plugin. Since it requires building from
source as the debian package for it isn't ready yet, punt on it for now
and use `--skip-gaps`.

Co-authored-by: Jun Aruga <jaruga@redhat.com>
2023-02-03 13:26:45 -05:00
Jean Boussier c6b90e5e9c Mark "mapping_buffer" as write barrier protected
It doesn't have any reference so it can be marked as protected.
2023-02-03 19:10:42 +01:00
Takashi Kokubun 08c529be90
YJIT: Support ifunc on invokeblock (#7233) 2023-02-03 10:14:42 -05:00
Jean Boussier 8e7d2cc2ab Implement Write Barrier for Backtrace::Location
It only has a single reference, set in a single place.
2023-02-03 15:58:44 +01:00
Jean Boussier fe5ce1ee41 Enable write barriers on File::Stat
It holds no reference, so no changes needed.
2023-02-03 15:37:01 +01:00
Burdette Lamar faa4c2279a [ruby/net-http] [DOC] Enhanced RDoc for write_timeout
(https://github.com/ruby/net-http/pull/115)

https://github.com/ruby/net-http/commit/6da39b0461
2023-02-03 14:33:53 +00:00
git 4d35365ace Update default gems list at cbd5de4f88 [ci skip] 2023-02-03 07:50:34 +00:00
Nobuyoshi Nakada cbd5de4f88 [ruby/stringio] Development of 3.0.6 started.
https://github.com/ruby/stringio/commit/a7561f447b
2023-02-03 07:49:31 +00:00
Maxime Chevalier-Boisvert 73674cac2b
YJIT: log the names of methods we call to in disasm (#7231)
* YJIT: log the names of methods we call to in disasm

* Assert that pointer is not null

* Handle case where UTF8 conversion not possible
2023-02-02 16:54:16 -05:00
Alan Wu 92ac5f686b Fix typos in YJIT [ci skip] 2023-02-02 16:16:45 -05:00
Alan Wu 3b83b265f1 YJIT: Crash with rb_bug() when panicking
Helps with getting good bug reports in the wild. Intended to be
backported to the 3.2.x series.
2023-02-02 15:16:09 -05:00
Peter Zhu 5b34839b0f Remove redundant else if statement in hash.c
Hashes can only be ar or st, so the else if is redundant.
2023-02-02 14:43:50 -05:00
Martin Emde 65ca14ea6e [rubygems/rubygems] Fix TarReader::Entry#read/partial to match File#read and StringIO#read
TarReader is used as an IO object, but doesn't behave the same as other
implementations. These fixes make `read` and `readpartial` conform to the
interface of StringIO and File.

https://github.com/rubygems/rubygems/commit/bba32d7217
2023-02-02 17:17:34 +00:00
Martin Emde 0853703ec6 [rubygems/rubygems] Test to show non-standard behavior of zero byte files in archive
Added more tests for some of the other behavior as well.
Tests were missing for readpartial with a buffer, and reading
remaining bytes after a partial read, using StringIO as reference.

https://github.com/rubygems/rubygems/commit/d600a657b1
2023-02-02 17:17:33 +00:00
Alan Wu 188688a53e YJIT: ARM64: Fix long jumps to labels
Previously, with Code GC, YJIT panicked while trying to emit a B.cond
instruction with an offset that is not encodable in 19 bits. This only
happens when the code in an assembler instance straddles two pages.

To fix this, when we detect that a jump to a label can land on a
different page, we switch to a fresh new page and regenerate all the
code in the assembler there. We still assume that no one assembler has
so much code that it wouldn't fit inside a fresh new page.

[Bug #19385]

Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
2023-02-02 10:05:00 -05:00
Alan Wu 905e12a30d YJIT: ARM64: Move functions out of arm64_emit() 2023-02-02 10:05:00 -05:00
Alan Wu a690db390d YJIT: other_cb is None in tests
Since the other cb is in CodegenGlobals, and we want Rust tests to be
self-contained.
2023-02-02 10:05:00 -05:00
Alan Wu 81b7f86f47 YJIT: Move CodegenGlobals::freed_pages into an Rc
This allows for supplying a freed_pages vec in Rust tests. We need it so we
can test scenarios that occur after code GC.
2023-02-02 10:05:00 -05:00
Peter Zhu 84be7a4089 Keep shared arrays WB protected
Sharing an array will cause it to be WB unprotected due to the use
of `RARRAY_PTR`. We don't need to WB unprotect the array because we're
not writing to the buffer of the array.

The following script demonstrates this issue:

```
ary = [1] * 1000
shared = ary[10..20]
puts ObjectSpace.dump(ary)
```
2023-02-02 09:17:20 -05:00
BurdetteLamar 3e5a77f1ae [ruby/net-http] Remarks on inclusions
https://github.com/ruby/net-http/commit/dfd060c583
2023-02-02 14:16:59 +00:00
git a874c3f4bb Update default gems list at 5a9e2f142d [ci skip] 2023-02-02 14:04:02 +00:00
Burdette Lamar 5a9e2f142d [ruby/net-http] [DOC] Enhanced RDoc for HTTPGenericRequest
(https://github.com/ruby/net-http/pull/113)

https://github.com/ruby/net-http/commit/14c8405702
2023-02-02 14:03:19 +00:00
Nobuyoshi Nakada 89d9547800 [ruby/stringio] Revert "bump up to 3.0.6" [ci skip]
This reverts commit https://github.com/ruby/stringio/commit/325933500b35.
It is bumped to 3.0.5 in advance but not released yet.

https://github.com/ruby/stringio/commit/af67c36693
2023-02-02 12:44:53 +00:00
Hiroshi SHIBATA c35ebed895
Removed OS specific section because It's out of scope for us. 2023-02-02 18:11:06 +09:00
Hiroshi SHIBATA 3474a62033
Mentioned scoop and vcpkg for windows build instruction 2023-02-02 14:48:44 +09:00
Takashi Kokubun 1c5bd01363
Add a test for svar #7225 (#7228) 2023-02-01 21:47:45 -08:00
Hiroshi SHIBATA 4d82e94200
Ignore rb_mjit_header.h.new and ripper.tmp.y 2023-02-02 14:12:08 +09:00
git 71e9eacc4c Update default gems list at 8087ba736e [ci skip] 2023-02-02 04:45:47 +00:00
Nobuyoshi Nakada 8087ba736e [ruby/stringio] bump up to 3.0.6
https://github.com/ruby/stringio/commit/325933500b
2023-02-02 04:44:38 +00:00
Nobuyoshi Nakada fad48fefe1 [Bug #19399] Parsing invalid heredoc inside block parameter
Although this is of course invalid as Ruby code, allow to just parse
and tokenize.
2023-02-02 12:20:10 +09:00
Nobuyoshi Nakada f499c81b01 [DOC] Merge README.win32 to doc/windows.md 2023-02-02 11:22:16 +09:00
Koichi Sasada 0a82bfe5e1
use correct svar (#7225)
* use correct svar

Without this patch, svar location is used "nearest Ruby frame".
It is almost correct but it doesn't correct when the `each` method
is written in Ruby.

```ruby
class C
  include Enumerable
  def each
    %w(bar baz).each{|e| yield e}
  end
end

C.new.grep(/(b.)/){|e| p [$1, e]}
```

This patch fix this issue by traversing ifunc's cfp.

Note that if cfp doesn't specify this Thread's cfp stack, reserved
svar location (`ec->root_svar`) is used.

* make yjit-bindgen

---------

Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
2023-02-01 16:13:19 -08:00
Maxime Chevalier-Boisvert 2675f2c864 Remove whitespace 2023-02-01 16:05:22 -05:00
Peter Zhu c6f84e9189 [Bug #19398] Memory leak in WeakMap
There's a memory leak in ObjectSpace::WeakMap due to not freeing
the `struct weakmap`. It can be seen in the following script:

```
100.times do
  10000.times do
    ObjectSpace::WeakMap.new
  end

  # Output the Resident Set Size (memory usage, in KB) of the current Ruby process
  puts `ps -o rss= -p #{$$}`
end
```
2023-02-01 13:23:55 -05:00
Hiroshi SHIBATA 375f527ded [rubygems/rubygems] Introduce to specify deprecated version for rubygems_deprecate_command.
We sometimes to remove minor command without bumping major version. This feature
  helps this deprecation process.

https://github.com/rubygems/rubygems/commit/41301cd2a8
2023-02-01 16:44:55 +00:00
Peter Zhu aa222b56fa [ruby/bigdecimal] Make BigDecimal WB protected
BigDecimal has no references, so it is WB protected.

https://github.com/ruby/bigdecimal/commit/29c61c90e8
2023-02-01 15:59:11 +00:00
NARUSE, Yui 269c5d408f fix to work with the case default issue is used 2023-02-01 22:49:54 +09:00
Nobuyoshi Nakada 62146d3cee
Fix a typo 2023-02-01 22:45:45 +09:00
Nobuyoshi Nakada 9445a14d31
Suppress an unused-function warning 2023-02-01 22:42:12 +09:00
Nobuyoshi Nakada ee3176a27a
Reject VS2022 compiler versions with the known bugs 2023-02-01 17:13:01 +09:00
dependabot[bot] 941783461f Bump ruby/setup-ruby from 1.133.0 to 1.134.0
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.133.0 to 1.134.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](09c10210cc...ee26e27437)

---
updated-dependencies:
- dependency-name: ruby/setup-ruby
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-01 16:25:22 +09:00
dependabot[bot] 4f4038e634 Bump actions/cache from 3.2.2 to 3.2.4
Bumps [actions/cache](https://github.com/actions/cache) from 3.2.2 to 3.2.4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](4723a57e26...627f0f41f6)

---
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-02-01 16:24:49 +09:00
Nobuyoshi Nakada 7b343d9c67 Extract body rules from endless method definitions 2023-02-01 16:17:12 +09:00
dependabot[bot] eb8f284cf2 Bump github/codeql-action from 2.1.37 to 2.2.1
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.1.37 to 2.2.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](959cbb7472...3ebbd71c74)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-01 13:56:43 +09:00
dependabot[bot] ea572708d6 Bump actions/upload-artifact from 3.1.1 to 3.1.2
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](83fd05a356...0b7f8abb15)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-01 13:56:29 +09:00
dependabot[bot] 41e84c7b09 Bump actions/checkout from 3.2.0 to 3.3.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](755da8c3cf...ac59398561)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-01 13:56:14 +09:00