Commit graph

9122 commits

Author SHA1 Message Date
KJ Tsanaktsidis
da33c5ac9f Revert "Set AI_ADDRCONFIG when making getaddrinfo(3) calls for outgoing conns"
This reverts commit 673ed41c81.
2024-02-01 11:09:54 +11:00
Hiroshi SHIBATA
7c8f9603b1 [flori/json] Make OpenStruct support as optional
202ffe2335
2024-01-31 14:56:00 +09:00
yui-knk
928f388415 [DOC] Fix Ripper DSL input example
'!' suffix is needed for event dispatch.
2024-01-30 22:49:22 +09:00
Nobuyoshi Nakada
5ac9c8f01b [ruby/win32ole] [DOC] Remove spaces inside parentheses
57e4a38465
2024-01-28 15:27:19 +00:00
Nobuyoshi Nakada
8074525b2b [ruby/win32ole] Move toplevel constant for olegen under WIN32OLE
78ff137c0f
2024-01-28 15:25:36 +00:00
Nobuyoshi Nakada
3ad54239b5 [ruby/win32ole] [DOC] Move sample to toplevel
70ea60c4d2
2024-01-28 15:25:36 +00:00
Nobuyoshi Nakada
703ad99bf8 [ruby/win32ole] Use end_with? and fix indent
7648ee7e56
2024-01-28 15:25:35 +00:00
Nobuyoshi Nakada
8af4ef30e5 [ruby/win32ole] Move WIN32OLE prefixed error classes under WIN32OLE
1c95816168
2024-01-28 15:25:35 +00:00
Nobuyoshi Nakada
1e2d088dd3 [ruby/win32ole] Use the scoped names in inspect and error messages
2f51493bd1
2024-01-28 15:25:34 +00:00
Nobuyoshi Nakada
baef72da36 [ruby/win32ole] [DOC] Update class names using the scoped names
2c5d193da7
2024-01-28 15:25:34 +00:00
Nobuyoshi Nakada
1bc48684cd [ruby/win32ole] Rename WIN32OLE::Typelib as WIN32OLE::TypeLib
5feede2cc5
2024-01-28 15:25:33 +00:00
Nobuyoshi Nakada
853bcf65c7 [ruby/win32ole] Rename WIN32OLE::VARIANT as WIN32OLE::VariantType
Prevent name clash with `WIN32OLE::Variant`, of generated document
files on case-insensitive filesystems, such as Windows.

049e5f0a6e
2024-01-28 15:25:33 +00:00
Nobuyoshi Nakada
d3e6bcd37f [ruby/digest] [DOC] Expand Digest::SHA2 definitions for RDoc
Since RDoc searches `var = rb_define_class_under(...)` statements
literally, they cannot be built by macros.

d39b684f91
2024-01-28 06:49:28 +00:00
Nobuyoshi Nakada
81702b4b87 [ruby/digest] Prefer rb_const_get over rb_path2class for direct constants
e5d30394b3
2024-01-28 06:49:28 +00:00
Nobuyoshi Nakada
f475dc1cd2 [ruby/digest] [DOC] Add .document
6db96aa99a
2024-01-28 06:49:26 +00:00
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
65506fecfd
2024-01-22 03:30:12 +00:00
Charles Oliver Nutter
34c5e78760 [ruby/nkf] Drop GPL and add licenses to gemspec
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

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
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
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()`.

b31a538576
2024-01-18 03:42:21 +00:00
Hiroshi SHIBATA
af60cdf674 [ruby/io-console] Bump up version to 0.7.2
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.

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

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/

28ef10edcf
2024-01-17 00:48:52 +00:00
Colin Kelley
8ae24e6b08 [ruby/psych] issue #443: quote Y and N when dumping
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

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

1fbfdd3c6f
2024-01-14 22:27:24 +09:00
Samuel Williams
f7178045bb [ruby/openssl] Add support for gets(chomp: true).
8aa3849cff
2024-01-13 00:28:26 +00:00
Samuel Williams
08d4e5ebef [ruby/openssl] Add more methods to SocketForwarder.
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
f0f68baf6b
2024-01-04 22:33:16 +00:00
Nobuyoshi Nakada
73fb9c35ef [ruby/io-console] IO_CONSOLE_VERSION is no longer a macro
14b35217dc
2024-01-03 02:12:30 +00:00
ima1zumi
8916b81bf4 [ruby/io-console] Define IO::ConsoleMode::VERSION from console.c
6302a2082c
2024-01-02 22:17:05 +00:00
Nobuyoshi Nakada
b4adc1bbab [ruby/win32ole] [DOC] Fix indent
76acc979bf
2023-12-31 11:52:19 +00:00
Nobuyoshi Nakada
375d1c993d [ruby/win32ole] [DOC] Remove useless comment that is mixed into RDoc
afceb6814f
2023-12-31 09:33:39 +00:00