Commit graph

64739 commits

Author SHA1 Message Date
git
1d1f07cea0 * 2021-02-02 [ci skip] 2021-02-02 00:12:17 +09:00
NARUSE, Yui
da1f1a4694 merge revision(s) e033c9d7db: [Backport #17549]
Include missing AvailabilityMacros.h

	---
	 random.c | 4 ++++
	 1 file changed, 4 insertions(+)
2021-02-01 23:59:23 +09:00
NARUSE, Yui
17986daf6e merge revision(s) b84b253a69: [Backport #17547]
Fix Ripper with heredoc.

	---
	 ext/ripper/lib/ripper/lexer.rb |  1 +
	 test/ripper/test_lexer.rb      | 10 ++++++++++
	 2 files changed, 11 insertions(+)
2021-02-01 23:07:02 +09:00
NARUSE, Yui
138f0ba6da merge revision(s) 0ed71b37fa: [Backport #17536]
Don't try to clear cache on garbage objects

	Method cache can be cleared during lazy sweeping.  An object that will
	be collected during lazy sweep *should not* have it's method cache
	cleared.  Soon-to-be-collected objects can be in an inconsistent state and
	this can lead to a crash.  This patch just leaves early if the object is
	going to be collected.

	Fixes [Bug #17536]

	Co-Authored-By: John Hawthorn <john@hawthorn.email>
	Co-Authored-By: Alan Wu <XrXr@users.noreply.github.com>
	---
	 vm_method.c | 1 +
	 1 file changed, 1 insertion(+)
2021-02-01 23:06:33 +09:00
NARUSE, Yui
74f90b46a9 merge revision(s) efcdf68e6443ab70fbff1703b9dabbfc5090df31,5e26619660f20272a53c7f839dde36cce034bb35: [Backport #17539]
Guard callinfo

	Callinfo was being written in to an array and the GC would not see the
	reference on the stack.  `new_insn_send` creates a new callinfo object,
	then it calls `new_insn_core`.  `new_insn_core` allocates a new INSN
	linked list item, which can end up calling `xmalloc` which will trigger
	a GC:

	  70cd351c7c/compile.c (L968-L969)

	Since the callinfo object isn't on the stack, the GC won't see it, and
	it can get collected.  This patch just refactors `new_insn_send` to keep
	the object on the stack

	Co-authored-by: John Hawthorn <john@hawthorn.email>
	---
	 compile.c            |  7 +++++--
	 test/ruby/test_gc.rb | 10 ++++++++++
	 2 files changed, 15 insertions(+), 2 deletions(-)

	Fix WB for callinfo

	The WB for callinfo needs to be executed *after* the reference is
	written.  Otherwise we get a WB miss.
	---
	 compile.c | 1 +
	 1 file changed, 1 insertion(+)
2021-02-01 21:42:11 +09:00
NARUSE, Yui
d1fb0a3953 merge revision(s) 952b2dcc88: [Backport #17602]
Fix for windres 2.36 [Bug #17602]

	Add --preprocessor and --preprocessor-arg for each preprocessor
	command arguments, as windres 2.36 requires preprocessor name and
	arguments to be separated to respect spaces in these paths.
	---
	 cygwin/GNUmakefile.in | 5 ++++-
	 1 file changed, 4 insertions(+), 1 deletion(-)
2021-02-01 20:27:16 +09:00
NARUSE, Yui
42f02a0bac merge revision(s) 6bcc4664bdaebbf9b28a762ae63f476a1ec6cfb2,bb40c5cbe977de9f36a2a739e94e9b2fd4496b6e,c060bdc2b4ab8eeef5374f4174f5de48ab936d74: [Backport #17541]
Return new NODE_LIT

	As NODE_ZLIST/NODE_LIST are not markable, cannot be reused as
	NODE_LIT.
	---
	 parse.y | 7 ++-----
	 1 file changed, 2 insertions(+), 5 deletions(-)

	Ensure symbol list node is either NODE_STR or NODE_DSTR

	---
	 parse.y | 11 ++++++++---
	 1 file changed, 8 insertions(+), 3 deletions(-)

	NODE markability should not change by nd_set_type

	---
	 node.c | 31 +++++++++++++++++++++++++------
	 node.h | 12 ++++++++++++
	 2 files changed, 37 insertions(+), 6 deletions(-)
2021-02-01 19:21:03 +09:00
NARUSE, Yui
1b0622d7a9 merge revision(s) 0036648a42: [Backport #17533]
Capture to reserved name variables if already defined [Bug #17533]

	---
	 parse.y                  |  5 +++--
	 test/ruby/test_regexp.rb | 11 +++++++++++
	 2 files changed, 14 insertions(+), 2 deletions(-)
2021-02-01 19:20:20 +09:00
NARUSE, Yui
9aa7b57ba4 merge revision(s) 6f6dfdcc68: [Backport #17523]
Make warning values consistent [Bug #17523]

	They should be affected, as well as `$VERBOSE`, by `-w`/`-W`
	options, not only in the main script but in scripts loaded by `-r`
	option too.
	---
	 ruby.c                        | 4 ++--
	 test/ruby/test_rubyoptions.rb | 9 +++++++++
	 2 files changed, 11 insertions(+), 2 deletions(-)
2021-02-01 19:19:27 +09:00
NARUSE, Yui
147453ad1e merge revision(s) 85b5d4c8bf: [Backport #17509]
Revert "[Bug #11213] let defined?(super) call respond_to_missing?"

	This reverts commit fac2498e02 for
	now, due to [Bug #17509], the breakage in the case `super` is
	called in `respond_to?`.
	---
	 internal/vm.h             |  2 +-
	 test/ruby/test_defined.rb | 33 ---------------------------------
	 vm_insnhelper.c           |  4 ++--
	 vm_method.c               | 12 +++++++-----
	 4 files changed, 10 insertions(+), 41 deletions(-)
2021-02-01 19:16:54 +09:00
NARUSE, Yui
5501e1038e merge revision(s) f4be7a510e:
Added tests for Time#getlocal with UTC offset

	---
	 test/ruby/test_time.rb | 8 ++++++++
	 1 file changed, 8 insertions(+)
2021-02-01 19:05:57 +09:00
git
db80be3deb * 2021-01-24 [ci skip] 2021-01-24 18:34:05 +09:00
Nobuyoshi Nakada
9aea438768 Add 3.0 top sepc guards
* Needs WEBrick
2021-01-24 18:33:20 +09:00
Masaki Matsushita
21340303c2 Fix compile error of sockssocket
The patch is provided by PhobosK (Phobos Kappa).

This should be backported to Ruby 3.0.

[Feature #17187]
2021-01-24 18:33:20 +09:00
NARUSE, Yui
1ce4e90dc7 Remove check branch from ruby_3_0 2021-01-24 18:33:20 +09:00
git
c721998a5c * 2021-01-21 [ci skip] 2021-01-21 14:36:18 +09:00
Hiroshi SHIBATA
151e469a62
Merge RubyGems 3.2.6 and Bundler 2.2.6 (#4103) 2021-01-21 14:35:56 +09:00
git
41d0c70812 * 2021-01-19 [ci skip] 2021-01-19 13:27:51 +09:00
aycabta
58509767d1
Backport lib/reline, ext/readline, and lib/irb for 3.0.1 (#4085)
* Get rid of inconsistent dll linkages against vcpkg readline

* [ruby/irb] Enhance colored inspect output

dffcdb5269

* [ruby/irb] Add color_printer.rb to gemspec

b4df0fd8b2

* [ruby/irb] Fix failing tests

7723ade899

* irb: add more syntax errors colorizing support (#3967)

* [ruby/irb] Do not colorize partially-correct inspect

This is to prevent a yellow-mixed output for ActiveSupport::TimeWithZone.

Follows up https://github.com/ruby/irb/pull/159 and https://github.com/ruby/ruby/pull/3967.

a5804c3560

* [ruby/irb] Remove unnecessary ignore_error in dispatch_seq

Just forgotten in a5804c3560

e42e548793

* Increase timeout for reline with --jit-wait

for failures like:
http://ci.rvm.jp/logfiles/brlog.trunk-mjit-wait.20201229-130509
http://ci.rvm.jp/logfiles/brlog.trunk-mjit-wait.20201229-165132
http://ci.rvm.jp/logfiles/brlog.trunk-mjit-wait.20201228-015519

* [ruby/irb] Stringify when a non-object is passed to PP#text

If a nested object is passed to #pp, it may be sometimes passed to the #text
method as an object without being stringified.

This is fixed on the Ruby main repository;
433a3be86a
but it was a bug of Ripper so still needs this workaround for using irb
as a gem on Ruby 3.0.0 or earlier.

Co-authored-by: k0kubun <takashikkbn@gmail.com>

8d13df22ee

* [ruby/irb] Newline in oneliner def doesn't reset indent

This closes ruby/irb#132.

43456dcf5e

* [ruby/irb] Escape invalid byte sequence in Exception

This fixes ruby/irb#141.

0815317d42

* [ruby/irb] Handle indentations related to keyword "do" correctly

This fixes ruby/irb#158.

964643400b

* [ruby/irb] Heredoc may contain multiple newlines in a single token

Use the start token as the indentation criteria so that it works properly in
heredoc.

ref. https://github.com/ruby/reline/pull/242

9704808dfd

* [ruby/irb] Use Ripper::Lexer#scan to take broken tokens

ref. https://github.com/ruby/reline/pull/242

54f90cb6c9

* [ruby/irb] Use error tokens if there are no correct tokens in the same place

For example, the broken code "%www" will result in only one error token.

9fa39a7cf3

* [ruby/irb] Ensure to restore $VERBOSE

cef474a76a

* 600x larger timeout for Reline

I didn't notice it's msec. 2.5s is too short.
http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3311385

* [ruby/irb] fix typo in `IRB::Irb#convert_invalid_byte_sequence`

d09d3c3d68

* [ruby/irb] do not escape a predicate method for doc namespace

* Fixes #88

d431a30af4

* [ruby/irb] refactoring an error handling in `IRB::Inspector`

* moved rescue clause to `#inspect_value` to catch all failures in inspectors
* test with all (currently five kind of) inspect modes
  - tweaked the input due to only `Marshal` can inspect(dump) a `BasicObject`

9d112fab8e

* [ruby/irb] Use Exception#full_message to show backtrace in the correct order

[Bug #17466]

1c76845cca

* [ruby/irb] Fix BACK_TRACE_LIMIT logic

30dc5d43fe

* irb: Drop lines from backtrace for tests in Ruby repository

* [ruby/reline] Update cursor correctly when just cursor moving

This fixes ruby/reline#236 and ruby/reline#239.

3e3c89d00b

* [ruby/reline] Correct var names in Reline were different from vi-*-mode-string

8255fc93b9

* [ruby/reline] Remove debug print

d7fbaedc6a

* [ruby/reline] Suppress crashing when auto_indent_proc returns broken indent info

Co-authored-by: Juanito Fatas <me@juanitofatas.com>

7c24276275

* [ruby/reline] Suppress crashing when dynamic_prompt_proc returns a broken prompt list

Co-authored-by: Juanito Fatas <me@juanitofatas.com>

558f7be168

* [ruby/reline] Suppress auto indent for adding newlines in pasting

Co-authored-by: Juanito Fatas <me@juanitofatas.com>

074bb017a7

* [ruby/reline] Add acknowledgments and license for rb-readline

19df59b916

* [ruby/irb] Fix comment, irb gem supports 2.5.0 or older

36118015ba

* should use `assert_include` here.

Random ordering test can introduce antoher candidate so it should be
`assert_include`.

* [ruby/irb] Add missing require

This is useful if you want to use IRB::ColorPrinter as a library like:

```
begin
  require 'irb/color_printer'
  IRB::ColorPrinter.pp(obj)
rescue LoadError
  pp(obj)
end
```

f8461691c7

* [ruby/irb] Make IRB::ColorPrinter.pp compatible with PP.pp

The incompatible interface is not helpful, again if you want to use it
as a standalone library, falling it back to PP.

Original PP.pp also ends with `out << "\n"`.

4c74c7d84c

* Suppress constant redefinition warnings

* Fix the failing test with XDG_CONFIG_HOME

* [ruby/irb] Version 1.3.1

c230d08911

* [ruby/reline] Handle ed_search_{prev,next}_history in multiline correctly

The current line was being handled incorrectly when displaying the hit
history, so it has been fixed to be correct.

a3df4343b3

* [ruby/reline] Move the cursor correctly when deleting at eol

This fixes ruby/reline#246.

07a73ba601

* [ruby/reline] Version 0.2.1

a3b3c6ee60

* [ruby/reline] Initialize a variable just in case

29b10f6e98

* [ruby/reline] Tests with yamatanooroti don't need chdir

Because of chdir, log files ware created in temporary directries on Windows.

200b469a68

* [ruby/reline] Windows needs more times to wait rendering

53ff2b09c7

* [ruby/reline] Support for change in Windows-specific behavior at eol

The behavior of automatically moving the cursor to the next line when
displaying a char at the eol on Windows suddenly disappeared.

cad4de6ee8

* [ruby/reline] Reline::Windows.erase_after_cursor erases attributes too

68b961dfc7

* [ruby/irb] [ruby/irb] [ruby/reline] Version 0.2.2

dfb710946f

1a1cdf9628

fe99faf8bd

* [ruby/irb] handle `__ENCODING__` as a keyword as well

a6a33d908f

* [ruby/irb] handle repeated exception separately

fcf6b34bc5

* [ruby/irb] skip a failling test on TruffleRuby

* due to the difference of backtrace pointed out by @aycabta

5e00a0ae61

* [ruby/irb] Version 1.3.2

a7699026cc

Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
Co-authored-by: Nobuhiro IMAI <nov@yo.rim.or.jp>
Co-authored-by: Koichi Sasada <ko1@atdot.net>
Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
2021-01-19 13:01:31 +09:00
Hiroshi SHIBATA
29777cb32a Merge RubyGems-3.2.5 2021-01-14 16:44:42 +09:00
Hiroshi SHIBATA
93dcf0828d Merge Bundler-2.2.5 2021-01-14 16:44:42 +09:00
Hiroshi SHIBATA
c721e36cec Merge RubyGems-3.2.4 2021-01-14 16:44:42 +09:00
Hiroshi SHIBATA
d4f5827a6d Merge Bundler-2.2.4 2021-01-14 16:44:42 +09:00
git
1824df4054 * 2021-01-14 [ci skip] 2021-01-14 11:22:07 +09:00
Takashi Kokubun
303533d23c Avoid re-entering opt_invokebuiltin_delegate_leave
on interruption.

The cancellation code was originally written for leave insn, but re-entering
opt_invokebuiltin_delegate_leave insn on a cancellation is not safe, because
a builtin function is executed twice.
2021-01-13 17:07:56 +09:00
Tee KOBAYASHI
98ca667b98 Fixed a typo [Bug #17522] 2021-01-13 17:07:38 +09:00
Nobuyoshi Nakada
5b2a0fc682 Fixed dangling imemo_tmpbuf
The count of rb_alloc_tmp_buffer_with_count is the allocation size
counted in VALUE size but not in the requested element size.

Co-authored-by: Yusuke Endoh <mame@ruby-lang.org>
Co-authored-by: Koichi Sasada <ko1@atdot.net>
2021-01-13 17:07:17 +09:00
Koichi Sasada
1614dd9fd4 expose some C-APIs for ractor
expose some C-APIs to try to make ractor utilities on external gems.

* add
  * rb_ractor_local_storage_value_lookup() to check availability
* expose
  * rb_ractor_make_shareable()
  * rb_ractor_make_shareable_copy()
  * rb_proc_isolate() (not public)
  * rb_proc_isolate_bang() (not public)
  * rb_proc_ractor_make_shareable() (not public)
2021-01-13 17:07:02 +09:00
Nobuyoshi Nakada
b2beb8586e Make any hash values fixable [Bug #17488]
As hnum is an unsigned st_index_t, the result of RSHIFT may not be
in the fixable range.

Co-authored-by: NeoCat <neocat@neocat.jp>
2021-01-13 17:06:48 +09:00
Koichi Sasada
b93e16dc0f enable constant cache on ractors
constant cache `IC` is accessed by non-atomic manner and there are
thread-safety issues, so Ruby 3.0 disables to use const cache on
non-main ractors.

This patch enables it by introducing `imemo_constcache` and allocates
it by every re-fill of const cache like `imemo_callcache`.
[Bug #17510]

Now `IC` only has one entry `IC::entry` and it points to
`iseq_inline_constant_cache_entry`, managed by T_IMEMO object.

`IC` is atomic data structure so `rb_mjit_before_vm_ic_update()` and
`rb_mjit_after_vm_ic_update()` is not needed.
2021-01-13 17:06:16 +09:00
TAKANO Mitsuhiro
95aff21468 Disable DTrace in FreeBSD (#3999)
The latest ruby cannot compile with FreeBSD Dtrace enabled.
2020-12-25 12:33:01 +09:00
Kazuhiro NISHIYAMA
312171907c Sort URLs by issue numbers and remove duplicated [ci skip] 2020-12-25 12:33:01 +09:00
Koichi Sasada
0a31310b99 define RGENGC_DEBUG_ENABLED() as 0
on RUBY_DEVEL==0 and !HAVE_VA_ARGS_MACRO.

gc_report() is always enabled on such configuration
(maybe it is a bug) so disable RGENGC_DEBUG_ENABLED().
2020-12-25 12:33:01 +09:00
Hiroshi SHIBATA
5c6f5b16c6 Update stdlib section for Ruby 3.0 2020-12-25 10:42:18 +09:00
Koichi Sasada
a628a108fe USE_RUBY_DEBUG_LOG is not defined !devel build 2020-12-25 09:57:36 +09:00
NARUSE, Yui
3fadf2665a v3.0.0p0 2020-12-25 08:45:09 +09:00
Marcus Stollsteimer
93a1ef6709 Fix typos 2020-12-24 23:20:04 +01:00
Marcus Stollsteimer
c3f91f9d88 [DOC] Fix typos 2020-12-24 23:09:51 +01:00
Marc-André Lafortune
db2ebbd71b
Optimize calls to Kernel#hash (#3987)
This avoids recursive checks when the `hash` method of an object
isn't specialized.
2020-12-25 02:08:12 +09:00
Yusuke Endoh
8981a63f12
Update TypeProf to 0.11.0 (#3996) 2020-12-25 01:59:07 +09:00
Kenta Murata
9b091084a1
[memory_view] Add documentation [ci skip] 2020-12-25 01:44:54 +09:00
aycabta
523b520b44 [ruby/reline] 0.2.0
064664c8f9
2020-12-25 01:29:18 +09:00
aycabta
32616229e3 [ruby/irb] Version 1.3.0
ec83280e66
2020-12-25 01:29:18 +09:00
Nobuyoshi Nakada
d143b75f8e
Adjusted indents [ci skip] 2020-12-25 00:56:17 +09:00
git
0356c3269a * 2020-12-25 [ci skip] 2020-12-25 00:14:50 +09:00
Yusuke Endoh
c64a067d05 configure.ac: Make it possible to build on Android Termux
The recent Termux's clang predefines `__ANDROID_API__` as a fixed number
24. However, when it is lower to the current device version, some
functions that "configure" detemines available are not declared
correctly in the header files.

This change forces to overwrite the predefined `__ANDROID_API__` macro
with the current device version.

ref: https://github.com/termux/termux-packages/issues/6176
2020-12-25 00:06:16 +09:00
Nobuyoshi Nakada
81562f943e
Updated access to Process::Status attributes
pst_pid() no longer returns Qnil even if the receiver is not
initialized.
2020-12-24 23:35:18 +09:00
aycabta
9a7647d9eb [ruby/reline] Doesn't contain terminate spaces by cw
This closes ruby/reline#233.

4c3f2e2eae
2020-12-24 23:26:22 +09:00
aycabta
78421319d0 [ruby/reline] Use #bytesize for vi_replace_char
This closes ruby/reline#228.

8205fa0b00
2020-12-24 23:26:22 +09:00
aycabta
0db9842b2c [ruby/reline] Delete the last char of a line by dw
This closes ruby/reline#229.

3f0ae689c4
2020-12-24 23:26:22 +09:00