Commit graph

12164 commits

Author SHA1 Message Date
Takashi Kokubun
cd1cd8030c RJIT: Support splat args 2023-04-02 10:55:03 -07:00
Takashi Kokubun
6f2535deda RJIT: Prefix a constant with C namespace 2023-04-02 10:40:37 -07:00
Takashi Kokubun
7778c292c4 RJIT: Support keyword arguments 2023-04-02 10:26:22 -07:00
Stan Lo
cd94bcdc46 [ruby/irb] Don't check RUBY_ENGINE when deciding whether to accept kargs
Ruby implementations like JRuby and TruffleRuby already indicate their
compatibility target with RUBY_VERSION. We don't need to exclude
them from accepting keyword arguments as long as they target 2.7+.

bf20faa4e6

Co-authored-by: Kevin Menard <kevin@nirvdrum.com>
2023-04-02 15:34:28 +00:00
Stan Lo
f25791884c [ruby/irb] Remove dead code (https://github.com/ruby/irb/pull/554)
* Remove unused ATTR_TTY and ATTR_PLAIN constants

They were added in d7d26b51bf

But the references were removed in 1c76845cca

Co-authored-by: Alexandre Terrasa <alexandre.terrasa@shopify.com>

* Remove unused MethodExtender module

It was added in 6cc5d718d7
but it's not used anywhere.

Co-authored-by: Alexandre Terrasa <alexandre.terrasa@shopify.com>

* Remove unused IRB.irb_at_exit

It's not used after aaf4eb4e98

Co-authored-by: Alexandre Terrasa <alexandre.terrasa@shopify.com>

* Remove unused InputCompletor.ignored_modules

It was added in 88311ce3c8
but the reference was removed in 78c74d2425

* Remove unused TracerLoadError constant

This constant was added in cb50fa3738
but never referenced.

---------

7de0234325

Co-authored-by: Alexandre Terrasa <alexandre.terrasa@shopify.com>
2023-04-02 14:11:12 +00:00
Takashi Kokubun
1b475fcd10 Remove an unneeded function copy 2023-04-01 23:09:05 -07:00
Takashi Kokubun
a077b7e36b RJIT: Support rest args 2023-04-01 23:00:36 -07:00
Takashi Kokubun
87dc06ed24 RJIT: Comment a location for each block 2023-04-01 22:39:16 -07:00
Takashi Kokubun
bf2617b8a6 RJIT: Fix has_rest exit conditions 2023-04-01 21:47:28 -07:00
Takashi Kokubun
ee52255f93 RJIT: Return CantCompile early for arg0 splat 2023-04-01 21:42:34 -07:00
Takashi Kokubun
2ce5cfa2be RJIT: Save PC on String#concat 2023-04-01 21:34:19 -07:00
Takashi Kokubun
e45ed2da50 RJIT: Rewind stack_size on CantCompile and side exits
so that we can take an exit whenever we want.

As a starter, this commit also pops blockarg earlier than some
CantCompile exits.
2023-04-01 21:30:42 -07:00
Takashi Kokubun
90cdc5b8ba RJIT: Let the caller of jit_push_frame handle stack_pop
because we want to do this way earlier for other types of calls.
2023-04-01 21:13:15 -07:00
Takashi Kokubun
28db75af66 RJIT: Check stackoverflow earlier for ISEQ 2023-04-01 21:03:10 -07:00
Takashi Kokubun
249fe18e8f RJIT: Remove unused counters 2023-04-01 17:24:45 -07:00
Takashi Kokubun
f42cf3fd1e RJIT: Migrate invokeblock to jit_call_iseq 2023-04-01 17:17:41 -07:00
Takashi Kokubun
cfea319772 RJIT: Migrate bmethod to jit_call_iseq 2023-04-01 17:03:45 -07:00
Takashi Kokubun
0973b93e49 RJIT: Start moving away from VM-like ISEQ handling 2023-04-01 16:56:05 -07:00
Hiroshi SHIBATA
bc0a7a641b [ruby/net-http] typofix
4d31bde125
2023-03-31 03:47:56 +00:00
NAKAMURA Usaku
eedcd696a5 [ruby/net-http] Fix previous commit
1b276e2654
2023-03-31 03:22:41 +00:00
NAKAMURA Usaku
d8b8294c28 [ruby/net-http] Limit header length
c245f7f9c8
2023-03-31 03:22:40 +00:00
Nobuyoshi Nakada
cd65e4adca [ruby/rdoc] Use File.binread
987c609df9
2023-03-31 01:14:34 +00:00
Nobuyoshi Nakada
cbfd029985 [ruby/time] Make RFC2822 regexp linear
https://hackerone.com/reports/1485501

51034bda4c
2023-03-30 10:44:39 +00:00
Nobuyoshi Nakada
aa3885501f [ruby/time] Fix quadratic backtracking on invalid time
https://hackerone.com/reports/1485501

2444456fc1
2023-03-30 10:44:38 +00:00
Stan Lo
b168141c78 [ruby/reline] Drop Dialog#scrollbar_pos as we can store it in a
local variable
(https://github.com/ruby/reline/pull/529)

d0139975fd

Co-authored-by: tomoya ishida <tomoyapenguin@gmail.com>
2023-03-29 13:51:27 +00:00
Stan Lo
02ecdf85c5 [ruby/reline] Drop Unicode.take_range's optional arg as it's never
used
(https://github.com/ruby/reline/pull/528)

428fed4a6a
2023-03-29 10:20:29 +00:00
Takashi Kokubun
9a1f6975c5 RJIT: Propagate a set of args as a CallingInfo 2023-03-29 00:44:31 -07:00
tomoya ishida
e26908dc4b [ruby/reline] Improve OSC sequence regexp. OSC sequence can end with
ST(ESC\) and it should not to include \a and \e inside.
(https://github.com/ruby/reline/pull/527)

a88052adec
2023-03-29 06:54:08 +00:00
Stan Lo
1e9a218ade [ruby/reline] Expand the scanned array to later case statement more
straightforward
(https://github.com/ruby/reline/pull/526)

* Improve test coverage on Unicode.take_range

* Add test for Unicode.calculate_width

* Expand the scanned array to later case statement more straightforward
2023-03-28 12:49:49 +00:00
Hiroshi SHIBATA
d766d5346b [rubygems/rubygems] Partly reverted
https://github.com/rubygems/rubygems/pull/6541

21e07a04a1
2023-03-28 07:26:46 +00:00
Hiroshi SHIBATA
80be2e6c9a
Use URI-0.12.1 2023-03-28 15:27:58 +09:00
Josef Šimánek
1cbb501127
Onboard Rubocop Naming/MemoizedInstanceVariableName rule to RubyGems. 2023-03-28 15:27:35 +09:00
Hiroshi SHIBATA
cd4b4ac737 [rubygems/rubygems] Use double-quotes instead of single-quotes in warnings
c7f1cb9941
2023-03-28 15:25:45 +09:00
Josef Šimánek
9cfd8330ca [rubygems/rubygems] Onboard Rubocop Naming/MemoizedInstanceVariableName rule to Bundler.
d768be0c65
2023-03-28 15:25:44 +09:00
David Rodríguez
4d4743f7e3 [rubygems/rubygems] Fix installing plugins in frozen mode
Plugins don't use a lockfile, so ignore frozen related settings.

f17a3bb81f
2023-03-28 15:25:42 +09:00
David Rodríguez
674c960513 [rubygems/rubygems] Fix incorrect removal of "ruby" platform from lockfile
When dependencies have changed, we'll be re-resolving, and we can't
really know whether the resolution will be valid or invalid for the Ruby
platform, so skip the removal in that case.

The fix worked, but made some other specs fail, and surfaced that the
`@dependencies_changed` attribute was actually being incorrect set when
explicitly unlocking. Fixed that with an early return.

20d8f5e5d9
2023-03-28 15:25:42 +09:00
David Rodríguez
ed868f9a71 [rubygems/rubygems] Fix unnecessary downgrade of top level dependency when unlocking
Bundler is very conservative by default, trying to preserve versions
from the lockfile as possible, and never downgrading them. However, when
it runs into a resolution error, it still tries to find a valid
resolution.

This fallback behavior was too "brute-force" though, completely
unrestricting any gem found in the resolution conflict, and that could
lead to direct dependencies being downgraded in some edge cases.

Instead, unlock things a bit more carefully:

* First try unlocking fully pinned indirect dependencies, but leave a
  lower bound requirement in place to prevent downgrades.
* Then try unlocking any fully pinned dependency, also leaving a lower
  bound requirement in place.
* Finally completely unrestrict dependencies if nothing else worked.

7f55ed8302
2023-03-28 15:25:41 +09:00
David Rodríguez
eaddd386ec [rubygems/rubygems] Also set min locked requirements when not unlocking
3561ac23d6
2023-03-28 15:25:40 +09:00
Takashi Kokubun
7600e6bc19 RJIT: Optimize definedivar using shapes 2023-03-27 21:56:39 -07:00
Hiroshi SHIBATA
120d8d0ae2 [ruby/uri] Bump version to 0.12.1
5c4f7d04bf
2023-03-28 02:12:22 +00:00
Nobuyoshi Nakada
23f4904f4e [ruby/uri] Fix quadratic backtracking on invalid URI
https://hackerone.com/reports/1444501

2f9585de17
2023-03-28 02:12:22 +00:00
Michael Siegfried
67f37b010a Consider prereleases regardless of whether locked
Prereleases are NOT considered even when the dependency specification
includes a prerelease segment, if the dependency is not locked. To me
that doesn't make sense, because I could create a Gemfile with say gem
"rails", ">= 7.0.0.beta1" and I'd expect prereleases considered there
even if there's no lock file yet.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
2023-03-28 01:18:50 +00:00
ima1zumi
ec14b381c1 [ruby/reline] Bump version to 0.3.3
(https://github.com/ruby/reline/pull/525)

8ce176271f
2023-03-27 15:14:56 +00:00
tomoya ishida
8f569d41cb [ruby/reline] Fix cursor position overrun
(https://github.com/ruby/reline/pull/515)

* Fix cursor position overrun

* Remove unnecessary local variable

Co-authored-by: Stan Lo <stan001212@gmail.com>

---------

d4ad9b96c8

Co-authored-by: Stan Lo <stan001212@gmail.com>
2023-03-27 13:57:16 +00:00
Hiroshi SHIBATA
36254c5ddf [rubygems/rubygems] Use append_cflags instead of directly append for CFLAGS
61ec0c8389
2023-03-27 09:47:20 +00:00
Takashi Kokubun
3352e76441 RJIT: Implement leaf builtin call 2023-03-26 19:25:17 -07:00
Takashi Kokubun
ff44e32f92 RJIT: Store caller sp after stack overflow check
and share some code between ISEQ and C calls.
2023-03-26 18:32:01 -07:00
Takashi Kokubun
dc270fc632 RJIT: Implement attr_writer 2023-03-26 18:02:25 -07:00
Takashi Kokubun
ddb77dd11e RJIT: Put a guard for splat w/ var-arg cfunc 2023-03-25 22:14:07 -07:00
Takashi Kokubun
a624a5d709 RJIT: Scope down send_iseq_complex_has_block exit 2023-03-25 21:57:04 -07:00