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

82021 Коммитов

Автор SHA1 Сообщение Дата
Kevin Newton f38814564b [ruby/prism] Fix eval parsing depth
https://github.com/ruby/prism/commit/89bf7a4948
2023-12-15 15:19:50 +00:00
Kevin Newton fe9b42f024 [ruby/prism] Invalid pinned locals in pattern matching
https://github.com/ruby/prism/commit/3a67b37a56
2023-12-15 15:03:49 +00:00
Samuel Giddins 1cd4b59e8c [rubygems/rubygems] Save array allocation for every dependency in Gemfile
Only need to check for lack of git key when branch option is present

https://github.com/rubygems/rubygems/commit/ebfca1b389
2023-12-15 14:53:10 +00:00
Samuel Giddins ca7f7c0f51 [rubygems/rubygems] Refactor vendoring to allow validating vendoring is reproducible
Helps ensure that unsuspecting diffs to the vendored code arent accidentally introduced

https://github.com/rubygems/rubygems/commit/7c425d49dd
2023-12-15 14:48:25 +00:00
Burdette Lamar 10a0545b6e
[DOC] RDoc for Complex (#9243) 2023-12-15 09:39:12 -05:00
Nobuyoshi Nakada 7cbc08b388 Follow removed conflict files
After editing a conflict, continue without removed files.
2023-12-15 22:37:38 +09:00
Kevin Newton 854ff25f4f [ruby/prism] Add TODO comment
https://github.com/ruby/prism/commit/885d1d78cb
2023-12-15 13:26:40 +00:00
TSUYUSATO Kitsune 16830a4783 [ruby/prism] Add an error for `in` keyword in arguments
Fix https://github.com/ruby/prism/pull/2026

https://github.com/ruby/prism/commit/c4b41cd477
2023-12-15 13:25:54 +00:00
Satoshi Tagomori 04f7be6126 loading/testing in different processes for multiple runs 2023-12-15 21:36:27 +09:00
David Rodríguez 7c72755da8 [rubygems/rubygems] Fix `ruby setup.rb` leaving traces in source folder
It's the `Gem::Installer` below what installs executables, and the code
being deleted here is now actually creating a `gems/` folder in the root
of the source repo when running `ruby setup.rb`.

https://github.com/rubygems/rubygems/commit/0e69a8b0d6
2023-12-15 11:52:38 +00:00
Nobuyoshi Nakada 4d5bfa7c3b
Ignore the spcial case of target_cpu
On Windows, x86_64 is called as x64.
2023-12-15 15:39:14 +09:00
Nobuyoshi Nakada 2c2c6bc3fa
Fix `ARCH_FLAG` when cross-compiling on macOS 2023-12-15 15:19:16 +09:00
Nobuyoshi Nakada 1e5c4026d5
Fix `ARCH_FLAG` when `--with-arch` with single CPU 2023-12-15 14:10:02 +09:00
Hiroshi SHIBATA cc9aeec23e
Explained about test_for_warn_bundled_gems 2023-12-15 14:14:48 +08:00
Hiroshi SHIBATA c3ae4b6ae1
Revert "[Bug #20060] Properly return matched gem name in case of EXACT"
This reverts commit 75c40802cb.

  This change is now working correctly with warning cases.
2023-12-15 14:06:53 +08:00
git 202c608248 * append newline at EOF. [ci skip] 2023-12-15 06:05:41 +00:00
Hiroshi SHIBATA 8df46d54bf
Added test case of dash gem like net-smtp 2023-12-15 14:05:13 +08:00
Hiroshi SHIBATA 9a204fb82e
Added test case of bootsnap 2023-12-15 14:05:13 +08:00
Hiroshi SHIBATA 25a133ba17
Added test case of bundle exec 2023-12-15 14:05:13 +08:00
Hiroshi SHIBATA 66b82a4430
Added test case of bundled gems dependencies 2023-12-15 14:05:13 +08:00
Hiroshi SHIBATA 76c1ce4e37
Added basic test case of bundled gems warning 2023-12-15 14:05:13 +08:00
David Rodríguez 8e37cd8a8b Fix gem detection for names with dash 2023-12-15 14:04:36 +08:00
git 6408775b08 Update bundled gems list at b562efdf6d [ci skip] 2023-12-15 03:57:40 +00:00
Shugo Maeda b562efdf6d
Bump up bundled net-ftp gem version to 0.3.3 2023-12-15 12:57:03 +09:00
Koichi Sasada 406d4bb599 add a test
proposed at https://bugs.ruby-lang.org/issues/20050#note-5
2023-12-15 11:58:43 +09:00
Koichi Sasada 7ba2506232 check modifcation whil ar->st
* delete `ar_try_convert` but use `ar_force_convert_table`
  to make program simple.
* `ar_force_convert_table` checks hash modification while
  calling `#hash` method with the following strategy:

1. copy keys (and vals) of ar_table
2. calc hashes from keys
3. check copied keys and hash's keys. if not matched, repeat from 1

fix [Bug #20050]
2023-12-15 11:58:43 +09:00
Jeremy Evans 29e99c84ae Remove unused variables in test_call_op_asgn_keywords_mutable 2023-12-14 18:44:13 -08:00
Satoshi Tagomori b98bd10f25 stop warnings from running the test case requiring .so twice 2023-12-15 11:09:31 +09:00
Takashi Kokubun cfd91121ad Trigger auto-request-review only for master branch 2023-12-14 17:24:08 -08:00
Takashi Kokubun 68020516ba [DOC] Reverse-merge YJIT release notes to NEWS 2023-12-14 15:55:15 -08:00
Jemma Issroff 5587bd4b37 [PRISM] Implement safe navigation in CallNodes
This commit implements safe navigation for CallNodes,
CallAndWriteNodes and CallOperatorWriteNodes
2023-12-14 17:11:54 -05:00
Victor Shepelev 39c072d6f7
[DOC] Enhance docs for WeakMap and WeakKeyMap (#9160)
Enhance docs for WeakMap and WeakKeyMap

* WeakKeyMap: more class-level explanations, more details
  on #getkey, fix a slight bug in code of #delete example;
* WeekMap: a bit more detailed class- and method-level docs.
2023-12-14 23:33:33 +02:00
Victor Shepelev 570d7b2c3e
[DOC] Adjust some new features wording/examples. (#9183)
* Reword Range#overlap? docs last paragraph.

* Docs: add explanation about Queue#freeze

* Docs: Add :rescue event docs for TracePoint

* Docs: Enhance Module#set_temporary_name documentation

* Docs: Slightly expand Process::Status deprecations

* Fix MatchData#named_captures rendering glitch

* Improve Dir.fchdir examples

* Adjust Refinement#target docs
2023-12-14 23:01:48 +02:00
Kevin Newton d3deb1b823
[prism] Fix build with no asserts 2023-12-14 15:26:01 -05:00
git 08c2c4f922 Update default gems list at 8bbe835cd8 [ci skip] 2023-12-14 20:07:47 +00:00
Kevin Newton 8bbe835cd8
Bump prism to version 0.19.0 2023-12-14 15:06:09 -05:00
Ufuk Kayserilioglu d07fdc5ede [PRISM] Fix keyword hash handling in method calls
* Start using the renamed `PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS` flag
to check if all keys of the keyword hash node are symbols.
* For arguments passed as a hash, start marking them as `KW_SPLAT_MUT` only if the number of entries in the hash is greater than 1 (which is what the old compiler used to do).
2023-12-14 14:08:37 -05:00
Kevin Newton 295d97ab4d Pattern matching 2023-12-14 14:06:26 -05:00
Kevin Newton 019fff3a86 [ruby/prism] Fix parse result for nesting pattern matching
https://github.com/ruby/prism/commit/ee6fc9ee87
2023-12-14 18:54:46 +00:00
eileencodes 5a66832952 [Prism] Fix cvar or assignment instructions
The instructions for `PM_CLASS_VARIABLE_OR_WRITE_NODE` were incorrect as
they were missing a `putnil`, a `defined`, and a `branchunless`.

I verified this is fixed via the instructions and running the following:
`RUBY_ISEQ_DUMP_DEBUG=prism make test/csv/interface/test_read_write.rb`.

These new instructions can't go in the defined function because
`defined?(@@fop ||= 1)` should return "assignment" not "class variable".

Instructions before:

```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(30,11)>
0000 putnil                                                           (  30)[Li]
0001 defined                                class variable, :@@foo, true
0005 branchunless                           14
0007 getclassvariable                       :@@foo, <is:0>
0010 dup
0011 branchif                               20
0013 pop
0014 putobject                              1
0016 dup
0017 setclassvariable                       :@@foo, <is:0>
0020 leave

"********* PRISM *************"
== disasm: #<ISeq:<compiled>@<compiled>:29 (29,0)-(29,11)>
0000 getclassvariable                       :@@foo, <is:0>            (  29)[Li]
0003 dup
0004 branchif                               13
0006 pop
0007 putobject                              1
0009 dup
0010 setclassvariable                       :@@foo, <is:0>
0013 leave
```

Instructions after:

```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(30,11)>
0000 putnil                                                           (  30)[Li]
0001 defined                                class variable, :@@foo, true
0005 branchunless                           14
0007 getclassvariable                       :@@foo, <is:0>
0010 dup
0011 branchif                               20
0013 pop
0014 putobject                              1
0016 dup
0017 setclassvariable                       :@@foo, <is:0>
0020 leave

"********* PRISM *************"
== disasm: #<ISeq:<compiled>@<compiled>:29 (29,0)-(29,11)>
0000 putnil                                                           (  29)[Li]
0001 defined                                class variable, :@@foo, true
0005 branchunless                           14
0007 getclassvariable                       :@@foo, <is:0>
0010 dup
0011 branchif                               20
0013 pop
0014 putobject                              1
0016 dup
0017 setclassvariable                       :@@foo, <is:0>
0020 leave
```

Fixes ruby/prism#2064
2023-12-14 13:48:38 -05:00
Jemma Issroff 7ac93e99a3 [PRISM] Account for multiple anonymous locals
This commit adjusts the local table size to be consistent regardless
of the number of anonymous locals.
2023-12-14 13:45:41 -05:00
Ufuk Kayserilioglu 01f21d5729 [ruby/prism] Fix the implementation of the flag on keyword hash nodes
The previous implementation was incorrect since it was just checking for all keys in assoc nodes to be static literals but the actual check is that all keys in assoc nodes must be symbol nodes.

This commit fixes that implementation, and, also, aliases the flag to `PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS` so that ruby/ruby can start using the new flag name.

I intend to later change the real flag name to `PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS` and remove the alias.

https://github.com/ruby/prism/commit/f5099c79ce
2023-12-14 18:05:54 +00:00
Peter Zhu c5e3d6da9c Implement Write Barriers on IO::Buffer
Benchmark:

```
require "benchmark"

puts(Benchmark.measure do
  ary = 1_000_000.times.map { IO::Buffer.for("") }

  10.times { GC.start(full_mark: false) }
end)
```

Before:

```
14.330119   0.051497  14.381616 ( 14.445106)
```

After:

```
7.481152   0.040166   7.521318 (  7.535209)
```
2023-12-14 12:22:38 -05:00
Jemma Issroff 157e6c8a51 [PRISM] Check for static literal, excluding array, hash, range 2023-12-14 11:46:54 -05:00
Jemma Issroff e71f011713 [PRISM] Fix bugs in compiling optional keyword parameters
This PR fixes two bugs when compiling optional keyword parameters:
- It moves keyword parameter compilation to STEP 5 in the parameters
sequence, where the rest of compilation happens. This is important
because keyword parameter compilation relies on the value of
body->param.keyword->bits_start which gets set in an earlier step
- It compiles array and hash values for keyword parameters, which
it didn't previously
2023-12-14 11:46:54 -05:00
TSUYUSATO Kitsune 3658798dbb [ruby/prism] Make equality operators non-associative
Fix https://github.com/ruby/prism/pull/2073

https://github.com/ruby/prism/commit/0f747d9240
2023-12-14 16:39:05 +00:00
Jemma Issroff 8e1c148fd9 [PRISM] Use frozen flag on StringNode 2023-12-14 11:14:45 -05:00
Jeremy Evans a18819e65f Fix op asgn method calls passing mutable keyword splats
When passing the keyword splat to [], it cannot be mutable, because
mutating the keyword splat inside [] would result in changes to the
keyword splat passed to []=.
2023-12-14 08:13:43 -08:00
Burdette Lamar 247ce712fc
[DOC] RDoc for Complex (#9231) 2023-12-14 11:09:17 -05:00
David Rodríguez a79a1d3028 [rubygems/rubygems] Upgrade vendored libraries
To match the versions that will be included in final ruby release.

https://github.com/rubygems/rubygems/commit/84394919fb
2023-12-14 15:04:22 +00:00