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

87811 Коммитов

Автор SHA1 Сообщение Дата
Kevin Newton be331c0eeb [ruby/prism] Fix up more error messages to more closely match parse.y
https://github.com/ruby/prism/commit/988ac82187
2024-09-25 19:19:18 +00:00
Burdette Lamar 8bf55328da
[DOC] Tweaks for Array#find_index (#11686) 2024-09-25 14:42:40 -04:00
Kevin Newton b97ff7dfda [ruby/prism] Fix up lex difference when ~ heredoc with 0 dedent and line continuation
https://github.com/ruby/prism/commit/84a9251915
2024-09-25 18:35:05 +00:00
Kevin Newton 12cf9f2ae5 [ruby/prism] Fix up void value expression checking for rescue
https://github.com/ruby/prism/commit/509ff88e92
2024-09-25 18:34:51 +00:00
Kevin Newton 768ceceb12 [ruby/prism] Disallow label in parentheses
https://github.com/ruby/prism/commit/b624e09cc6
2024-09-25 17:33:51 +00:00
Kevin Newton 6a168fbf41 Potentially fix ASAN checks for GC-ing operand 2024-09-25 12:23:29 -04:00
Takashi Kokubun 505206b8ac
YJIT: Cache Context decoding (#11680) 2024-09-25 12:18:13 -04:00
Kevin Newton a6ea4ddb4e [ruby/prism] Remove use of __assume to simplify
https://github.com/ruby/prism/commit/4daf58f7a0
2024-09-25 16:17:08 +00:00
Kevin Newton bf6109c8cc [ruby/prism] Fix up windows use of __assume
https://github.com/ruby/prism/commit/9fd0c0901e
2024-09-25 16:08:13 +00:00
Kevin Newton 57688cd625 [ruby/prism] Support a max depth to protect against malicious payloads
https://github.com/ruby/prism/commit/a474017bbe
2024-09-25 15:47:08 +00:00
Peter Zhu b77772496a Don't check poisoned for immediates 2024-09-25 11:14:14 -04:00
Peter Zhu c32fd1b5ed Add debugging code to vm_objtostring in ASAN
To debug this issue on CI:
http://ci.rvm.jp/logfiles/brlog.trunk_asan.20240922-002945
2024-09-25 11:00:04 -04:00
Kevin Newton ecbc4a67c9
Fix up new types for block arguments and splats in prism compiler 2024-09-25 09:52:47 -04:00
Benoit Daloze cafd666adf [ruby/prism] Type every node field and mark on-error-only types explicitly
* For Loader.java, do not deserialize the AST if there are errors, so then Java nodes only have non-error types for fields.

https://github.com/ruby/prism/commit/ae78e3c605
2024-09-25 13:46:31 +00:00
Peter Zhu 407f8b8716 Fix memory leak in Ripper for indented heredocs
The allocated parser string is never freed, which causes a memory leak.

The following code leaks memory:

    Ripper.sexp_raw(DATA.read)

    __END__
    <<~EOF
      a
        #{1}
      a
    EOF
2024-09-25 08:56:14 -04:00
Hiroshi SHIBATA 3830bca5ed
TestProcess#test_daemon_noclose is only working with macOS 15.1 beta, we should skip with macOS 15.0 2024-09-25 17:36:03 +09:00
dependabot[bot] 76543a34ab Bump github/codeql-action from 3.26.8 to 3.26.9
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.8 to 3.26.9.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](294a9d9291...461ef6c76d)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-25 11:45:33 +09:00
Nobuyoshi Nakada 0283b5ddb4 Check syntax warnings in built-in scripts 2024-09-25 11:18:41 +09:00
Josh Cooper 0d16c36d0a [win32/registry] Fallback to UTF-8 for unknown codepages
There are some codepages like cp708 for which no ruby encoding exists:

    $ ruby -e "Encoding.find('cp708')"
    Traceback (most recent call last):
    	1: from -e:1:in `<main>'
    -e:1:in `find': unknown encoding name - cp708 (ArgumentError)

win32/registry uses ENCODING to transcode error messages and expand environment
variables from UTF-16LE, so using UTF-8 seems like the best choice and is better
than a hard failure.

This should resolve [Bug #13831]
2024-09-25 10:43:31 +09:00
Nobuyoshi Nakada c94ea1cccb
Fix size modifier for `size_t` 2024-09-25 10:40:14 +09:00
ydah 509b577e01 Implement BLOCK_PASS NODE keyword locations 2024-09-25 09:15:43 +09:00
ydah 31a88d1554 Implement RETURN NODE keyword locations 2024-09-25 09:06:42 +09:00
masatoshi_moritsuka 6b46060fc2 doc: Remove description of experimental warnings related pattern matching from documentation
Ruby 3.2.0 has been released and all experimental warnings about pattern matching have been removed.
Experimental warnings about pattern matching are no longer output, so I remove description about it from documentation as well.

cf. https://bugs.ruby-lang.org/issues/18585
cf. db6b23c76c
cf. https://twitter.com/k_tsj/status/1606956336037900289?s=20&t=-_PSYLhYPtYsB9FZhtXl5A
2024-09-25 07:06:42 +09:00
Kevin Newton a80a9cf9ef Further split up pm_compile_node to work on -O0 builds 2024-09-24 17:08:17 -04:00
Burdette Lamar d5241414c5
[DOC] More on Array#fill (#11610) 2024-09-24 16:35:43 -04:00
Jean Boussier d31378dc91 [ruby/psych] Use `String#match?` over `String#=~` when applicable
Save on allocating useless `MatchData` instances.

https://github.com/ruby/psych/commit/b2d9f16e58
2024-09-24 19:25:40 +00:00
Peter Zhu e956ce32c8 Use rb_bug instead of UNREACHABLE for assertions
UNREACHABLE uses __builtin_unreachable which is not intended to be used
as an assertion.
2024-09-24 14:54:55 -04:00
Peter Zhu c51d8ff458 Fix undefined behavior in String#append_as_bytes
The UNREACHABLE macro calls __builtin_unreachable, which according to
the [GCC docs](https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005funreachable):

> If control flow reaches the point of the __builtin_unreachable, the
> program is undefined.

But it can reach this point with the following script:

    "123".append_as_bytes("123")

This can crash on some platforms with a `Trace/BPT trap: 5`.
2024-09-24 14:54:55 -04:00
Peter Zhu 4f0fe97995 Free scope node in prism 2024-09-24 10:23:45 -04:00
Peter Zhu 4113dcc4ae Fix memory leak in constant ID list in prism 2024-09-24 10:23:45 -04:00
David Rodríguez b48add3c65 [rubygems/rubygems] Fix `bundler/inline` overwriting lockfiles
This was introduced by https://github.com/rubygems/rubygems/commit/0b7be7bb7705, because
the original patch was not adapted to some recent refactorings.

https://github.com/rubygems/rubygems/commit/0bca60d6e5

Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
2024-09-24 14:17:23 +00:00
tomoya ishida 07842491c5 [ruby/irb] Use proper locale in history encoding test
(https://github.com/ruby/irb/pull/1008)

https://github.com/ruby/irb/commit/f6b06a9a40
2024-09-24 14:07:47 +00:00
Luke Gruber 2a0ee408af [ruby/error_highlight] Fix error with prism when method given no arguments
such as:

  p = Proc.new

This now matches the RubyVM::AbstractSyntaxTree behavior, which is
not to highlight anything.

https://github.com/ruby/error_highlight/commit/d5c592a1ba
2024-09-24 13:28:01 +00:00
Kevin Newton 414a848cc6 [ruby/prism] Accept version shorthand like 3.4
https://github.com/ruby/prism/commit/098f1c4607
2024-09-24 13:21:36 +00:00
Peter Zhu e02a6097e6 Set node_id to -1 in add_adjust_info
add_adjust_info will increment the insns_info_index, so we need to set
the node_id to -1 to prevent a "Conditional jump or move depends on
uninitialised value" in Valgrind.
2024-09-24 08:59:15 -04:00
Kevin Newton 8edd6e606f
Update deps for prism/options.c 2024-09-24 08:37:19 -04:00
Benoit Daloze ed4a55fc4d [ruby/prism] Accept all 3.3.x and 3.4.x Ruby versions for Prism.parse
https://github.com/ruby/prism/commit/a4fcd5339a
2024-09-24 12:24:19 +00:00
Benoit Daloze b8baf3f3ee [ruby/prism] check_string() should always return a valid C string
* Otherwise it is invalid e.g. to call strlen() to the result,
  or to assume the argument was a string.
* All callers are already checking for nil before.

https://github.com/ruby/prism/commit/8197be883e
2024-09-24 12:24:19 +00:00
David Rodríguez 5228d349d9
[rubygems/rubygems] Restore `gem_dir` as an instance variable accessor
I suspect someone could be setting this instance variable, and the
previous changes made that no longer effective.

Also I implemented a previous TOOD in `full_gem_path` the other way
around:

> # TODO: This is a heavily used method by gems, so we'll need
> # to aleast just alias it to #gem_dir rather than remove it.

I made `gem_dir` an alias of `full_gem_path` rather than the opposite.

This alternative change keeps both methods symmetric without deprecating
either of them for now.

https://github.com/rubygems/rubygems/commit/28983973a3
2024-09-24 15:33:31 +09:00
David Rodríguez 5f47f0f759
[rubygems/rubygems] Remove TODO I can't make much sense of
https://github.com/rubygems/rubygems/commit/6d627e0671
2024-09-24 15:33:31 +09:00
Adam Hess 4b1e852d3e
[ruby/error_highlight] Prism added node_id and Node#breadth_first_search in the 1.0 release. These methods are required for Prism to be able to find the method from the backtrace.
https://github.com/ruby/prism/blob/main/CHANGELOG.md#100---2024-08-28

In practice you will likely only end up in this situation if you previously had pre-1.0 prism installed and upgrade Ruby to a version with Prism as the default parser.

https://github.com/ruby/error_highlight/commit/cb574daf62
2024-09-24 15:33:31 +09:00
NAITOH Jun 373f679e48 fix rb_memsearch() document
## Why?
The explanation of x and y is reversed.

ddbd644001/re.c (L251-L256)
```
long
rb_memsearch(const void *x0, long m, const void *y0, long n, rb_encoding *enc)
{
    const unsigned char *x = x0, *y = y0;

    if (m > n) return -1;
```
2024-09-24 15:12:48 +09:00
MSP-Greg 4956324af3 mingw.yml - fixup to use ucrt, logging 2024-09-24 15:05:14 +09:00
dependabot[bot] fac5aa05ae Bump github/codeql-action from 3.26.7 to 3.26.8
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.7 to 3.26.8.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](8214744c54...294a9d9291)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-24 14:18:08 +09:00
Lars Kanis acf28e835f Windows: Use Unicode aware WinAPI function for ENV[]=
This only makes a difference when setting an empty value to a Unicode key.
2024-09-24 14:06:51 +09:00
Lars Kanis 7627a95e41 Windows: Remove ENV code targeting Windows before Vista
Windows Vista removed the limit to 32768 bytes environment block.
Also MINGW supports _wputenv_s() for years.
2024-09-24 14:06:51 +09:00
Lars Kanis 0641845a4b Windows: Remove compatibility to ancient MSVCRT API
Using _wputenv_s simplifies the code and we can avoid code duplication by using rb_w32_home_dir() to initialize ENV['HOME'].
2024-09-24 14:06:51 +09:00
Hiroshi SHIBATA 79e79afee4
Show volume details at Windows platform of GHA 2024-09-24 13:32:52 +09:00
Takashi Kokubun 48b3386f6a Fix a typo 2024-09-23 16:40:20 -07:00
Takashi Kokubun 798a115a15 Fix a -Wsign-compare warning
../time.c:5247:50: warning: operand of ‘?:’ changes signedness from ‘int’ to ‘long unsigned int’ due to unsignedness of other operand [-Wsign-compare]
 5247 |         int w = (year >= -9999 && year <= 9999 ? year_width : (int)(year < 0) + DECIMAL_SIZE_OF(year));
      |                                                  ^~~~~~~~~~
2024-09-23 16:39:31 -07:00