Commit graph

77079 commits

Author SHA1 Message Date
Jean Boussier
60c924770d Mark Encoding as Write Barrier protected
It doesn't even have a mark function.
It's only about a hundred objects, but not reason
to scan them every time.
2023-02-07 11:48:57 +01:00
Jean Boussier
6e4c242130 Consider DATA objects without a mark function as protected
It's not uncommon for simple binding to wrap structs without
any Ruby object references. Hence with no `mark` function.

Might as well mark them as protected by a write barrier.
2023-02-07 11:48:49 +01:00
Hiroshi SHIBATA
8623c81220
Document default gems and bundled gems specifications 2023-02-07 17:29:19 +09:00
Hiroshi SHIBATA
5ee39ea67f
Added tarball instruction to building_ruby.md 2023-02-07 14:21:18 +09:00
dependabot[bot]
c84184d50b [rubygems/rubygems] Bump rb-sys
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.58 to 0.9.61.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.58...v0.9.61)

---
updated-dependencies:
- dependency-name: rb-sys
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 23:38:12 +00:00
cjilbert504
a719e3418e [ruby/rdoc] Remove duplicate word in RDoc::MarkupReference
The word "for" appeared twice in the same sentence in the margins section, and this PR removes the duplicate occurrence.
2023-02-06 23:09:38 +00:00
zzak
773d56b1c1 [ruby/rdoc] Add test coverage for -C flag
564be08f4b
2023-02-06 23:09:06 +00:00
zzak
b171e99791 [ruby/rdoc] Actually execute RDoc document task for coverage
7e70d41585
2023-02-06 23:09:05 +00:00
Jean byroot Boussier
c19defd026 Revert "Only emit circular dependency warning for owned thread shields"
This reverts commit fa49651e05.
2023-02-06 23:30:35 +01:00
Takashi Kokubun
c30602e64c
YJIT: Support arg0 splat on invokeblock (#7234) 2023-02-06 16:12:20 -05:00
Alan Wu
675e296641
Add .DELETE_ON_ERROR to Makefile
This instructs make to delete target files if the recipe fails midway, like
when make itself is interrupted. This is mostly for development since it
protects against corrupt builds that need a `make clean` to repair. Release
builds normally don't fail mid-recipe.

GNU make and BSD make support this.

From GNU make's manual:

> This is almost always what you want make to do, but it is not historical
> practice; so for compatibility, you must explicitly request it. 

See https://innolitics.com/articles/make-delete-on-error/
2023-02-06 14:50:06 -05:00
Jean Boussier
fa49651e05 Only emit circular dependency warning for owned thread shields
[Bug #19415]

If multiple threads attemps to load the same file concurrently
it's not a circular dependency issue.

So we check that the existing ThreadShield is owner by the current
fiber before warning about circular dependencies.
2023-02-06 19:35:38 +01:00
Jemma Issroff
28da990984 Limit maximum number of IVs on a shape on T_OBJECTS
Create SHAPE_MAX_NUM_IVS (currently 50) and limit all shapes of
T_OBJECTS to that number of IVs. When a shape with a T_OBJECT has more than 50 IVs, fall back to the
obj_too_complex shape which uses hash lookup for ivs.

Note that a previous version of this commit
78fcc9847a was reverted in
88f2b94065 because it did not account for
non-T_OBJECTS
2023-02-06 08:40:51 -08:00
Akira Matsuda
cab8c11611 [rubygems/rubygems] Properly exclude gemspec file itself from gem
by comparing the file names with full path.

Follows up f444478eac

9637a82d2e
2023-02-06 16:19:46 +00:00
Akira Matsuda
77bec15c93 [rubygems/rubygems] Properly load the generated gemspec
The previous code loads bundler's gemspec which does not include the generated
gemspec file, and thus the test was passing where it should indeed fail.
With this change, the test properly fails now.

2098ea0d75
2023-02-06 16:19:46 +00:00
Takashi Kokubun
21dcf5d766
YJIT: Check interrupts on frame pop (#7248)
YJIT: Skip gen_check_ints on ISEQ send

On the interpreter, vm_push_frame doesn't check interrupts. Only
vm_pop_frame does.
2023-02-06 10:29:41 -05:00
tompng
91f353b1c3 [ruby/reline] Fix line rendering when newline is added at the end of the buffer
7d61b3df9a
2023-02-06 14:23:59 +00:00
Hiroshi SHIBATA
440b9d2c6f
Fixup 3dcc2b6316 2023-02-06 16:19:39 +09:00
Hiroshi SHIBATA
3dcc2b6316
Separate download section for using Git 2023-02-06 16:16:45 +09:00
Hiroshi SHIBATA
f9cd67cbd2
Mentioned cache.r-l.o 2023-02-06 16:14:19 +09:00
ccmywish
b3fd1222c2 [ruby/English] Replace HTML5 deprecated tag <tt> with <code>
3712fd6752
2023-02-06 05:20:34 +00:00
Sorah Fukumori
8a29419b7f [ruby/reline] test_dumb_terminal: "ruby" command is not always available
Fixes the same issue at https://github.com/ruby/ruby/pull/5417

`ruby` is not always available in certain build environments and
configure options (e.g. --program-suffix)

This patch tries to choose an appropriate command line for spawning a
fresh Ruby process, based on EnvUtil implementation in ruby/ruby's test
suite.

Plus when this library is directly mirrored into ruby/ruby, prefer EnvUtil
available there over the implementation in this library's test suite.

278327d2e9
2023-02-05 20:31:37 +00:00
cjilbert504
8a474b344e [ruby/rdoc] [DOC] Fix reference to proper list type RDoc::MarkupReference
The "Lettered List" section referred to the previous "Numbered List" section, so this PR fixes that reference to point instead of lettered lists.
2023-02-05 09:28:02 +00:00
Sam Bostock
45a2f1c5c2 [rubygems/rubygems] Replace "prior to" with "immediately after"
Currently, the instructions and placeholder contradict each other.

The commit that introduced this placeholder (42bc4715d920e836c8499883d)
makes it clear that the placeholder should be replaced AFTER publishing
(i.e. once the author successfully claims the gem name on Rubygems), so
the placeholder should match.

23e2dea828
2023-02-05 01:37:36 +00:00
Stan Lo
295fc59eda [ruby/irb] Add tests for workspaces commands
(https://github.com/ruby/irb/pull/512)

874dbcad81
2023-02-04 22:31:17 +00:00
Takashi Kokubun
3d20740881 Remove unneeded repetitions 2023-02-04 13:46:46 -08:00
Nobuyoshi Nakada
0a02c51a06 [rubygems/rubygems] Ensure that TempIO is closed
0cbb7b5370
2023-02-04 19:38:55 +00:00
Nobuyoshi Nakada
e37bf46ed5 [rubygems/rubygems] Fix Tempfile leaks
f95d1a87ce
2023-02-04 19:38:55 +00:00
git
06195e7603 * remove trailing spaces. [ci skip] 2023-02-04 18:06:18 +00:00
Burdette Lamar
6db79aefec [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTP
(https://github.com/ruby/net-http/pull/116)

22c0d34002
2023-02-04 18:06:06 +00:00
zzak
da9ee7bcf3 [ruby/rdoc] Add newline before return
6d609cb64c

Co-authored-by: Olle Jonsson <olle.jonsson@gmail.com>
2023-02-03 23:41:06 +00:00
zzak
e04d20bc48 [ruby/rdoc] Add rdoc:coverage default task
157fbaf575
2023-02-03 23:41:06 +00:00
Jean Boussier
a8000d06cc Mark "method" objects as protected by write barrier
All its reference are set with RB_OBJ_WRITE, so they
can be marked as WB protected.
2023-02-03 23:31:23 +01:00
Jean Boussier
cc9d96b259 Avoid using OBJ_WB_UNPROTECT
Not that it makes a big difference here, but it's
just unecessary.
2023-02-03 23:31:08 +01:00
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: 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)

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.
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