Age | Commit message (Collapse) | Author | |
---|---|---|---|
2024-02-20 | [Feature #20257] Rearchitect Ripper | yui-knk | |
Introduce another semantic value stack for Ripper so that Ripper can manage both Node and Ruby Object separately. This rearchitectutre of Ripper solves these issues. Therefore adding test cases for them. * [Bug 10436] https://bugs.ruby-lang.org/issues/10436 * [Bug 18988] https://bugs.ruby-lang.org/issues/18988 * [Bug 20055] https://bugs.ruby-lang.org/issues/20055 Checked the differences of `Ripper.sexp` for files under `/test/ruby` are only on test_pattern_matching.rb. The differences comes from the differences between `new_hash_pattern_tail` functions between parser and Ripper. Ripper `new_hash_pattern_tail` didn’t call `assignable` then `kw_rest_arg` wasn’t marked as local variable. This is also fixed by this commit. ``` --- a/./tmp/before/test_pattern_matching.rb +++ b/./tmp/after/test_pattern_matching.rb @@ -3607,7 +3607,7 @@ [:in, [:hshptn, nil, [], [:var_field, [:@ident, “a”, [984, 13]]]], [[:binary, - [:vcall, [:@ident, “a”, [985, 10]]], + [:var_ref, [:@ident, “a”, [985, 10]]], :==, [:hash, nil]]], nil]]], @@ -3662,7 +3662,7 @@ [:in, [:hshptn, nil, [], [:var_field, [:@ident, “a”, [993, 13]]]], [[:binary, - [:vcall, [:@ident, “a”, [994, 10]]], + [:var_ref, [:@ident, “a”, [994, 10]]], :==, [:hash, [:assoclist_from_args, @@ -3813,7 +3813,7 @@ [:command, [:@ident, “raise”, [1022, 10]], [:args_add_block, - [[:vcall, [:@ident, “b”, [1022, 16]]]], + [[:var_ref, [:@ident, “b”, [1022, 16]]]], false]]], [:else, [[:var_ref, [:@kw, “true”, [1024, 10]]]]]]]], nil, @@ -3876,7 +3876,7 @@ [:@int, “0”, [1033, 15]]], :“&&“, [:binary, - [:vcall, [:@ident, “b”, [1033, 20]]], + [:var_ref, [:@ident, “b”, [1033, 20]]], :==, [:hash, nil]]]], nil]]], @@ -3946,7 +3946,7 @@ [:@int, “0”, [1042, 15]]], :“&&“, [:binary, - [:vcall, [:@ident, “b”, [1042, 20]]], + [:var_ref, [:@ident, “b”, [1042, 20]]], :==, [:hash, [:assoclist_from_args, @@ -5206,7 +5206,7 @@ [[:assoc_new, [:@label, “c:“, [1352, 22]], [:@int, “0”, [1352, 25]]]]]], - [:vcall, [:@ident, “r”, [1352, 29]]]], + [:var_ref, [:@ident, “r”, [1352, 29]]]], false]]], [:binary, [:call, @@ -5299,7 +5299,7 @@ [:assoc_new, [:@label, “c:“, [1367, 34]], [:@int, “0”, [1367, 37]]]]]], - [:vcall, [:@ident, “r”, [1367, 41]]]], + [:var_ref, [:@ident, “r”, [1367, 41]]]], false]]], [:binary, [:call, @@ -5931,7 +5931,7 @@ [:in, [:hshptn, nil, [], [:var_field, [:@ident, “r”, [1533, 11]]]], [[:binary, - [:vcall, [:@ident, “r”, [1534, 8]]], + [:var_ref, [:@ident, “r”, [1534, 8]]], :==, [:hash, [:assoclist_from_args, ``` | |||
2024-02-15 | Do not include a backtick in error messages and backtraces | Yusuke Endoh | |
[Feature #16495] | |||
2024-02-08 | [ruby/strscan] Bump version | Sutou Kouhei | |
https://github.com/ruby/strscan/commit/ba338b882c | |||
2024-02-08 | [ruby/strscan] Bump version | Sutou Kouhei | |
https://github.com/ruby/strscan/commit/842845af1f | |||
2024-02-08 | [ruby/fiddle] Set changelog_uri gem metadata | Masato Nakamura | |
(https://github.com/ruby/fiddle/pull/138) See https://guides.rubygems.org/specification-reference/#metadata for changelog_uri metadata. https://github.com/ruby/fiddle/commit/0bd8e96adc | |||
2024-02-04 | Alias init functions | Nobuyoshi Nakada | |
The extension library has each initialization function named "Init_" + basename. If multiple extensions have the same base name (such as cgi/escape and erb/escape), the same function will be registered for both names. To fix this conflict, rename the initialization functions under sub directories using using parent names, when statically linking. | |||
2024-02-04 | Allow glob patterns in ext/Setup | Nobuyoshi Nakada | |
2024-02-04 | Glob with base option | Nobuyoshi Nakada | |
When ripping the base directory off the result names. | |||
2024-02-01 | Revert "Set AI_ADDRCONFIG when making getaddrinfo(3) calls for outgoing conns" | KJ Tsanaktsidis | |
This reverts commit 673ed41c81cf5a6951bcb2c3dec82d7bd6ea7440. | |||
2024-01-31 | [flori/json] Make OpenStruct support as optional | Hiroshi SHIBATA | |
https://github.com/flori/json/commit/202ffe2335 | |||
2024-01-30 | [DOC] Fix Ripper DSL input example | yui-knk | |
'!' suffix is needed for event dispatch. | |||
2024-01-28 | [ruby/win32ole] [DOC] Remove spaces inside parentheses | Nobuyoshi Nakada | |
https://github.com/ruby/win32ole/commit/57e4a38465 | |||
2024-01-28 | [ruby/win32ole] Move toplevel constant for olegen under `WIN32OLE` | Nobuyoshi Nakada | |
https://github.com/ruby/win32ole/commit/78ff137c0f | |||
2024-01-28 | [ruby/win32ole] [DOC] Move sample to toplevel | Nobuyoshi Nakada | |
https://github.com/ruby/win32ole/commit/70ea60c4d2 | |||
2024-01-28 | [ruby/win32ole] Use `end_with?` and fix indent | Nobuyoshi Nakada | |
https://github.com/ruby/win32ole/commit/7648ee7e56 | |||
2024-01-28 | [ruby/win32ole] Move `WIN32OLE` prefixed error classes under `WIN32OLE` | Nobuyoshi Nakada | |
https://github.com/ruby/win32ole/commit/1c95816168 | |||
2024-01-28 | [ruby/win32ole] Use the scoped names in `inspect` and error messages | Nobuyoshi Nakada | |
https://github.com/ruby/win32ole/commit/2f51493bd1 | |||
2024-01-28 | [ruby/win32ole] [DOC] Update class names using the scoped names | Nobuyoshi Nakada | |
https://github.com/ruby/win32ole/commit/2c5d193da7 | |||
2024-01-28 | [ruby/win32ole] Rename `WIN32OLE::Typelib` as `WIN32OLE::TypeLib` | Nobuyoshi Nakada | |
https://github.com/ruby/win32ole/commit/5feede2cc5 | |||
2024-01-28 | [ruby/win32ole] Rename `WIN32OLE::VARIANT` as `WIN32OLE::VariantType` | Nobuyoshi Nakada | |
Prevent name clash with `WIN32OLE::Variant`, of generated document files on case-insensitive filesystems, such as Windows. https://github.com/ruby/win32ole/commit/049e5f0a6e | |||
2024-01-28 | [ruby/digest] [DOC] Expand `Digest::SHA2` definitions for RDoc | Nobuyoshi Nakada | |
Since RDoc searches `var = rb_define_class_under(...)` statements literally, they cannot be built by macros. https://github.com/ruby/digest/commit/d39b684f91 | |||
2024-01-28 | [ruby/digest] Prefer `rb_const_get` over `rb_path2class` for direct constants | Nobuyoshi Nakada | |
https://github.com/ruby/digest/commit/e5d30394b3 | |||
2024-01-28 | [ruby/digest] [DOC] Add .document | Nobuyoshi Nakada | |
https://github.com/ruby/digest/commit/6db96aa99a | |||
2024-01-24 | Initialize errno variables and fix maybe-uninitialized warnings | Nobuyoshi Nakada | |
2024-01-23 | Make lastline and nextline to be rb_parser_string | yui-knk | |
This commit changes `struct parser_params` lastline and nextline from `VALUE` (String object) to `rb_parser_string_t *` so that dependency on Ruby Object is reduced. `parser_string_buffer_t string_buffer` is added to `struct parser_params` to manage `rb_parser_string_t` pointers of each line. All allocated line strings are freed in `rb_ruby_parser_free`. | |||
2024-01-22 | Extract syslog | Hiroshi SHIBATA | |
2024-01-22 | Extract nkf | Hiroshi SHIBATA | |
2024-01-22 | Make sure the correct error is raised for EAI_SYSTEM resolver fail | KJ Tsanaktsidis | |
In case of EAI_SYSTEM, getaddrinfo is supposed to set more detail in errno; however, because we call getaddrinfo on a thread now, and errno is threadlocal, that information is being lost. Instead, we just raise whatever errno happens to be on the calling thread (which can be something very confusing, like `ECHILD`). Fix it by explicitly propagating errno back to the calling thread through the getaddrinfo_arg structure. [Bug #20198] | |||
2024-01-22 | [ruby/nkf] Bump up version to 0.2.0 | Hiroshi SHIBATA | |
https://github.com/ruby/nkf/commit/65506fecfd | |||
2024-01-22 | [ruby/nkf] Drop GPL and add licenses to gemspec | Charles Oliver Nutter | |
https://github.com/ruby/nkf/commit/19df7138f7 | |||
2024-01-22 | [ruby/nkf] Add JRuby extension to the gem | Charles Oliver Nutter | |
This pulls in the nkf extension implementation from JRuby. The build and load logic has been updated along the same lines as ruby/digest and the gem appears to build correctly for the -java platform. Fixes https://github.com/ruby/nkf/pull/13 https://github.com/ruby/nkf/commit/18f57f36ed | |||
2024-01-19 | Remove null checks for xfree | Peter Zhu | |
xfree can handle null values, so we don't need to check it. | |||
2024-01-19 | [ruby/strscan] Bump version | Sutou Kouhei | |
https://github.com/ruby/strscan/commit/d6f97ec102 | |||
2024-01-19 | Mark asan fake stacks during machine stack marking | KJ Tsanaktsidis | |
ASAN leaves a pointer to the fake frame on the stack; we can use the __asan_addr_is_in_fake_stack API to work out the extent of the fake stack and thus mark any VALUEs contained therein. [Bug #20001] | |||
2024-01-18 | [ruby/psych] Add :stringify_names option to convert symbol keys to string ↵ | Robert Schulze | |
for dumping https://github.com/ruby/psych/commit/3d051d89aa | |||
2024-01-18 | [ruby/stringio] Fix ascii_only? flag in strio_write | tomoya ishida | |
(https://github.com/ruby/stringio/pull/77) Followup of #79 `rb_str_resize()` was changed by https://github.com/ruby/ruby/commit/b0b9f7201acab05c2a3ad92c3043a1f01df3e17f . ```c rb_str_resize(string, shorter) // clear ENC_CODERANGE in some case rb_str_resize(string, longer) // does not clear ENC_CODERANGE anymore ``` ```c // rb_str_resize in string.c if (slen > len && ENC_CODERANGE(str) != ENC_CODERANGE_7BIT) { ENC_CODERANGE_CLEAR(str); } ``` I think this change is based on an assumption that appending null bytes will not change flag `ascii_only?`. `strio_extend()` will make the string longer if needed, and update the flags correctly for appending null bytes. Before `memmove()`, we need to `rb_str_modify()` because updated flags are not updated for `memmove()`. https://github.com/ruby/stringio/commit/b31a538576 | |||
2024-01-18 | [ruby/io-console] Bump up version to 0.7.2 | Hiroshi SHIBATA | |
https://github.com/ruby/io-console/commit/1f2877a185 | |||
2024-01-18 | Extract bigdecimal as bundled gems | Hiroshi SHIBATA | |
2024-01-17 | [ruby/openssl] Add support for IO#timeout. | Samuel Williams | |
(https://github.com/ruby/openssl/pull/714) * Add support for IO#timeout. https://github.com/ruby/openssl/commit/3bbf5178a9 | |||
2024-01-17 | [ruby/openssl] Only set min_version on OpenSSL < 1.1.0 | Ewoud Kohl van Wijngaarden | |
Both Red Hat and Debian-like systems configure the minimum TLS version to be 1.2 by default, but allow users to change this via configs. On Red Hat and derivatives this happens via crypto-policies[1], which in writes settings in /etc/crypto-policies/back-ends/opensslcnf.config. Most notably, it sets TLS.MinProtocol there. For Debian there's MinProtocol in /etc/ssl/openssl.cnf. Both default to TLSv1.2, which is considered a secure default. In constrast, the SSLContext has a hard coded OpenSSL::SSL::TLS1_VERSION for min_version. TLS 1.0 and 1.1 are considered insecure. By always setting this in the default parameters, the system wide default can't be respected, even if a developer wants to. This takes the approach that's also done for ciphers: it's only set for OpenSSL < 1.1.0. [1]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/security_hardening/using-the-system-wide-cryptographic-policies_security-hardening https://github.com/ruby/openssl/commit/ae215a47ae | |||
2024-01-17 | [ruby/psych] Provide a 'Changelog' link on rubygems.org/gems/psych | Mark Young | |
By providing a 'changelog_uri' in the metadata of the gemspec a 'Changelog' link will be shown on https://rubygems.org/gems/psych which makes it quick and easy for someone to check on the changes introduced with a new version. Details of this functionality can be found on https://guides.rubygems.org/specification-reference/ https://github.com/ruby/psych/commit/28ef10edcf | |||
2024-01-17 | [ruby/psych] issue #443: quote Y and N when dumping | Colin Kelley | |
https://github.com/ruby/psych/commit/93c8fb443a | |||
2024-01-16 | [ruby/stringio] Update the coderange after overwrite | Nobuyoshi Nakada | |
Fix https://bugs.ruby-lang.org/issues/20185 https://github.com/ruby/stringio/commit/8230552a46 | |||
2024-01-14 | [ruby/strscan] StringScanner#captures: Return nil not "" for | NAITOH Jun | |
unmached capture (https://github.com/ruby/strscan/pull/72) fix https://github.com/ruby/strscan/issues/70 If there is no substring matching the group (s[3]), the behavior is different. If there is no substring matching the group, the corresponding element (s[3]) should be nil. ``` s = StringScanner.new('foobarbaz') #=> #<StringScanner 0/9 @ "fooba..."> s.scan /(foo)(bar)(BAZ)?/ #=> "foobar" s[0] #=> "foobar" s[1] #=> "foo" s[2] #=> "bar" s[3] #=> nil s.captures #=> ["foo", "bar", ""] s.captures.compact #=> ["foo", "bar", ""] ``` ``` s = StringScanner.new('foobarbaz') #=> #<StringScanner 0/9 @ "fooba..."> s.scan /(foo)(bar)(BAZ)?/ #=> "foobar" s[0] #=> "foobar" s[1] #=> "foo" s[2] #=> "bar" s[3] #=> nil s.captures #=> ["foo", "bar", nil] s.captures.compact #=> ["foo", "bar"] ``` https://docs.ruby-lang.org/ja/latest/method/MatchData/i/captures.html ``` /(foo)(bar)(BAZ)?/ =~ "foobarbaz" #=> 0 $~.to_a #=> ["foobar", "foo", "bar", nil] $~.captures #=> ["foo", "bar", nil] $~.captures.compact #=> ["foo", "bar"] ``` * StringScanner#captures is not yet documented. https://docs.ruby-lang.org/ja/latest/class/StringScanner.html https://github.com/ruby/strscan/commit/1fbfdd3c6f | |||
2024-01-13 | [ruby/openssl] Add support for `gets(chomp: true)`. | Samuel Williams | |
https://github.com/ruby/openssl/commit/8aa3849cff | |||
2024-01-13 | [ruby/openssl] Add more methods to `SocketForwarder`. | Samuel Williams | |
https://github.com/ruby/openssl/commit/39eaa9f677 | |||
2024-01-12 | Statically allocate parser config | yui-knk | |
2024-01-12 | Revert "Mark asan fake stacks during machine stack marking" | KJ Tsanaktsidis | |
This reverts commit d10bc3a2b8300cffc383e10c3730871e851be24c. | |||
2024-01-12 | Mark asan fake stacks during machine stack marking | KJ Tsanaktsidis | |
ASAN leaves a pointer to the fake frame on the stack; we can use the __asan_addr_is_in_fake_stack API to work out the extent of the fake stack and thus mark any VALUEs contained therein. [Bug #20001] | |||
2024-01-11 | Remove setaffinity of pthread for getaddrinfo | Yusuke Endoh | |
It looks like `sched_getcpu(3)` returns a strange number on some (virtual?) environments. I decided to remove the setaffinity mechanism because the performance does not appear to degrade on a quick benchmark even if removed. [Bug #20172] |