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

9107 Коммитов

Автор SHA1 Сообщение Дата
Nobuyoshi Nakada 0f417d640d
Initialize errno variables and fix maybe-uninitialized warnings 2024-01-24 19:33:25 +09:00
yui-knk ee7f63ebba Make lastline and nextline to be rb_parser_string
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-23 08:58:16 +09:00
Hiroshi SHIBATA 029b6d5b76 Extract syslog 2024-01-22 15:59:40 +09:00
Hiroshi SHIBATA df70faa9c9 Extract nkf 2024-01-22 14:17:52 +09:00
KJ Tsanaktsidis 6c0e58a54e Make sure the correct error is raised for EAI_SYSTEM resolver fail
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 14:34:31 +11:00
Hiroshi SHIBATA 5b109ff14d [ruby/nkf] Bump up version to 0.2.0
https://github.com/ruby/nkf/commit/65506fecfd
2024-01-22 03:30:12 +00:00
Charles Oliver Nutter 34c5e78760 [ruby/nkf] Drop GPL and add licenses to gemspec
https://github.com/ruby/nkf/commit/19df7138f7
2024-01-22 00:12:49 +00:00
Charles Oliver Nutter c6b548accb [ruby/nkf] Add JRuby extension to the gem
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-22 00:12:45 +00:00
Peter Zhu d0b774cfb8 Remove null checks for xfree
xfree can handle null values, so we don't need to check it.
2024-01-19 10:25:02 -05:00
Sutou Kouhei ac636f5709
[ruby/strscan] Bump version
https://github.com/ruby/strscan/commit/d6f97ec102
2024-01-19 10:49:12 +09:00
KJ Tsanaktsidis 61da90c1b8 Mark asan fake stacks during machine stack marking
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-19 09:55:12 +11:00
Robert Schulze d3b07b9845 [ruby/psych] Add :stringify_names option to convert symbol keys to string for dumping
https://github.com/ruby/psych/commit/3d051d89aa
2024-01-18 17:32:34 +00:00
tomoya ishida fd1bafc11f [ruby/stringio] Fix ascii_only? flag in strio_write
(https://github.com/ruby/stringio/pull/77)

Followup of #79

`rb_str_resize()` was changed by b0b9f7201a  .

```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 03:42:21 +00:00
Hiroshi SHIBATA af60cdf674 [ruby/io-console] Bump up version to 0.7.2
https://github.com/ruby/io-console/commit/1f2877a185
2024-01-18 01:36:52 +00:00
Hiroshi SHIBATA 2b0766113b Extract bigdecimal as bundled gems 2024-01-18 07:44:13 +09:00
Samuel Williams 4f634d3c85 [ruby/openssl] Add support for IO#timeout.
(https://github.com/ruby/openssl/pull/714)

* Add support for IO#timeout.

https://github.com/ruby/openssl/commit/3bbf5178a9
2024-01-17 17:09:03 +00:00
Ewoud Kohl van Wijngaarden 6213ab1a51 [ruby/openssl] Only set min_version on OpenSSL < 1.1.0
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 16:41:47 +00:00
Mark Young 1addb3955c [ruby/psych] Provide a 'Changelog' link on rubygems.org/gems/psych
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 00:48:52 +00:00
Colin Kelley 8ae24e6b08 [ruby/psych] issue #443: quote Y and N when dumping
https://github.com/ruby/psych/commit/93c8fb443a
2024-01-17 00:45:06 +00:00
Nobuyoshi Nakada 6283ae8d36 [ruby/stringio] Update the coderange after overwrite
Fix https://bugs.ruby-lang.org/issues/20185

https://github.com/ruby/stringio/commit/8230552a46
2024-01-16 15:06:22 +00:00
NAITOH Jun 338eb0065b [ruby/strscan] StringScanner#captures: Return nil not "" for
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-14 22:27:24 +09:00
Samuel Williams f7178045bb [ruby/openssl] Add support for `gets(chomp: true)`.
https://github.com/ruby/openssl/commit/8aa3849cff
2024-01-13 00:28:26 +00:00
Samuel Williams 08d4e5ebef [ruby/openssl] Add more methods to `SocketForwarder`.
https://github.com/ruby/openssl/commit/39eaa9f677
2024-01-13 00:28:26 +00:00
yui-knk 52d9e55903 Statically allocate parser config 2024-01-12 21:17:41 +09:00
KJ Tsanaktsidis 688a6ff510 Revert "Mark asan fake stacks during machine stack marking"
This reverts commit d10bc3a2b8.
2024-01-12 17:58:54 +11:00
KJ Tsanaktsidis d10bc3a2b8 Mark asan fake stacks during machine stack marking
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-12 17:29:48 +11:00
Yusuke Endoh 1bd98c820d Remove setaffinity of pthread for getaddrinfo
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]
2024-01-11 12:38:16 +09:00
KJ Tsanaktsidis 31371b2e24 Fix CRLF -> LF conversion on read for rb_io_fdopen & rb_file_open
When opening a file with `File.open`, and then setting the encoding with
`IO#set_encoding`, it still correctly performs CRLF -> LF conversion on
Windows when reading files with a CRLF line ending in them (in text
mode).

However, the file is opened instead with either the `rb_io_fdopen` or
`rb_file_open` APIs from C, the CRLF conversion is _NOT_ set up
correctly; it works if the encoding is not specified, but if
`IO#set_encoding` is called, the conversion stops happening. This seems
to be because the encflags never get ECONV_DEFAULT_NEWLINE_DECORATOR
set in these codepaths.

Concretely, this means that the conversion doesn't happen in the
following circumstances:
  * When loading ruby files with require (that calls rb_io_fdopen)
  * When parsing ruuby files with RubyVM::AbstractSyntaxTree (that calls
    rb_file_open).
This then causes the ErrorHighlight tests to fail on windows if git has
checked them out with CRLF line endings - the error messages it's
testing wind up with literal \r\n sequences in them because the iseq
text from the parser contains un-newline-converted strings.

This commit fixes the problem by copy-pasting the relevant snippet which
sets this up in `rb_io_extract_modeenc` (for the File.open path) into
the relevant codepaths for `rb_io_fdopen` and `rb_file_open`.

[Bug #20101]
2024-01-10 21:02:23 +11:00
S-H-GAMELINKS 1b8d01136c Introduce Numeric Node's 2024-01-07 09:24:34 +09:00
Adam Hess 6aacbd690c Free pthread_attr after setting up the thread
[bug #20149]
2024-01-05 08:56:44 +09:00
Takashi Kokubun d20c609465 [ruby/erb] Skip building a native extension for JRuby
https://github.com/ruby/erb/commit/f0f68baf6b
2024-01-04 22:33:16 +00:00
Nobuyoshi Nakada 73fb9c35ef [ruby/io-console] `IO_CONSOLE_VERSION` is no longer a macro
https://github.com/ruby/io-console/commit/14b35217dc
2024-01-03 02:12:30 +00:00
ima1zumi 8916b81bf4 [ruby/io-console] Define IO::ConsoleMode::VERSION from console.c
https://github.com/ruby/io-console/commit/6302a2082c
2024-01-02 22:17:05 +00:00
Nobuyoshi Nakada b4adc1bbab [ruby/win32ole] [DOC] Fix indent
https://github.com/ruby/win32ole/commit/76acc979bf
2023-12-31 11:52:19 +00:00
Nobuyoshi Nakada 375d1c993d [ruby/win32ole] [DOC] Remove useless comment that is mixed into RDoc
https://github.com/ruby/win32ole/commit/afceb6814f
2023-12-31 09:33:39 +00:00
Nobuyoshi Nakada 55a81863cd [ruby/win32ole] [DOC] Add .document files
https://github.com/ruby/win32ole/commit/eba2934177
2023-12-31 01:58:22 +00:00
Nobuyoshi Nakada 7016ab873e
Verify that events2table.c was generated successfully 2023-12-28 18:07:49 +09:00
KJ Tsanaktsidis 051a874325 Fix memory overread in registry.rb
The terminator is not actually getting filled in; we're simply passing
(two) bytes of empty memory as the NUL terminator. This can lead to
garbage characters getting written to registry values.

Fix this by explicitly putting a WCHAR_NUL character into the string to
be sent to the registry API, like we do in the MULTI_SZ case.

[Bug #20096]
2023-12-28 18:03:58 +11:00
Ivan Kuchin 1f1edeef3f [ruby/pathname] require fileutils in both methods using it
rmtree is already requiring fileutils, but mkpath apparently relies on
autoload of FileUtils. Switch to require for both methods

https://github.com/ruby/pathname/commit/07ad1fb41a
2023-12-28 00:07:56 +00:00
Nobuyoshi Nakada c027dcfde2 [ruby/etc] [DOC] Add minimal documents for constants
https://github.com/ruby/etc/commit/97a4f798d4
2023-12-27 10:09:24 +00:00
Nobuyoshi Nakada 862cfcaf75 [ruby/etc] [DOC] Improve Etc documents
https://github.com/ruby/etc/commit/fae932ff61
2023-12-27 05:30:20 +00:00
John Hawthorn ea5776e7e4 [flori/json] Use rb_sym2str instead of SYM2ID
This avoids pinning an id to the symbol used if a dynamic symbol is
passed in as a hash key.

rb_sym2str is available in Ruby 2.2+ and json depends on >= 2.3.

https://github.com/flori/json/commit/5cbafb8dbe
2023-12-25 21:12:49 +09:00
Mark Young 65ec74a8dd [ruby/io-console] Provide a 'Changelog' link on rubygems.org/gems/io-console
By providing a 'changelog_uri' in the metadata of the gemspec
a 'Changelog' link will be shown on https://rubygems.org/gems/io-console
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/io-console/commit/6bacdbf0e1
2023-12-25 21:12:49 +09:00
Nobuyoshi Nakada a01c1e821c [ruby/io-console] bump up to 0.7.2.dev.1
https://github.com/ruby/io-console/commit/08e41a3e4d
2023-12-25 21:12:49 +09:00
Nobuyoshi Nakada e7f91fd74c [ruby/io-console] [DOC] Add missing documents
https://github.com/ruby/io-console/commit/44dce34569
2023-12-25 21:12:49 +09:00
Nobuyoshi Nakada 4173c4bcfb [ruby/io-console] Extract CSI sequence
https://github.com/ruby/io-console/commit/63dbeeecf4
2023-12-25 21:12:49 +09:00
Alexander Momchilov bb1625858f [ruby/psych] Remove now-unreachable rescue block
https://github.com/ruby/psych/commit/6905a2123c
2023-12-25 21:12:49 +09:00
Alexander Momchilov 95e7af0c59 [ruby/psych] Remove unused array
https://github.com/ruby/psych/commit/b9e7b4a4a4
2023-12-25 21:12:49 +09:00
Sutou Kouhei b4cb7ead30 [ruby/fiddle] Bump version
https://github.com/ruby/fiddle/commit/fd4bb4ea8a
2023-12-25 21:12:49 +09:00
Mark Young cb6a556927 [ruby/date] Provide a 'Changelog' link on rubygems.org/gems/date
By providing a 'changelog_uri' in the metadata of the gemspec
a 'Changelog' link will be shown on https://rubygems.org/gems/date
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/date/commit/2dea4c011d
2023-12-25 21:12:49 +09:00