summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
2024-01-18[ruby/stringio] Fix ascii_only? flag in strio_writetomoya 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.2Hiroshi SHIBATA
https://github.com/ruby/io-console/commit/1f2877a185
2024-01-18Extract bigdecimal as bundled gemsHiroshi 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.0Ewoud 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/psychMark 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 dumpingColin Kelley
https://github.com/ruby/psych/commit/93c8fb443a
2024-01-16[ruby/stringio] Update the coderange after overwriteNobuyoshi 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 "" forNAITOH 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-12Statically allocate parser configyui-knk
2024-01-12Revert "Mark asan fake stacks during machine stack marking"KJ Tsanaktsidis
This reverts commit d10bc3a2b8300cffc383e10c3730871e851be24c.
2024-01-12Mark asan fake stacks during machine stack markingKJ 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-11Remove setaffinity of pthread for getaddrinfoYusuke 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]
2024-01-10Fix CRLF -> LF conversion on read for rb_io_fdopen & rb_file_openKJ Tsanaktsidis
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-07Introduce Numeric Node'sS-H-GAMELINKS
2024-01-05Free pthread_attr after setting up the threadAdam Hess
[bug #20149]
2024-01-04[ruby/erb] Skip building a native extension for JRubyTakashi Kokubun
https://github.com/ruby/erb/commit/f0f68baf6b
2024-01-03[ruby/io-console] `IO_CONSOLE_VERSION` is no longer a macroNobuyoshi Nakada
https://github.com/ruby/io-console/commit/14b35217dc
2024-01-02[ruby/io-console] Define IO::ConsoleMode::VERSION from console.cima1zumi
https://github.com/ruby/io-console/commit/6302a2082c
2023-12-31[ruby/win32ole] [DOC] Fix indentNobuyoshi Nakada
https://github.com/ruby/win32ole/commit/76acc979bf
2023-12-31[ruby/win32ole] [DOC] Remove useless comment that is mixed into RDocNobuyoshi Nakada
https://github.com/ruby/win32ole/commit/afceb6814f
2023-12-31[ruby/win32ole] [DOC] Add .document filesNobuyoshi Nakada
https://github.com/ruby/win32ole/commit/eba2934177
2023-12-28Verify that events2table.c was generated successfullyNobuyoshi Nakada
2023-12-28Fix memory overread in registry.rbKJ Tsanaktsidis
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[ruby/pathname] require fileutils in both methods using itIvan Kuchin
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-27[ruby/etc] [DOC] Add minimal documents for constantsNobuyoshi Nakada
https://github.com/ruby/etc/commit/97a4f798d4
2023-12-27[ruby/etc] [DOC] Improve Etc documentsNobuyoshi Nakada
https://github.com/ruby/etc/commit/fae932ff61
2023-12-25[flori/json] Use rb_sym2str instead of SYM2IDJohn Hawthorn
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[ruby/io-console] Provide a 'Changelog' link on rubygems.org/gems/io-consoleMark Young
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[ruby/io-console] bump up to 0.7.2.dev.1Nobuyoshi Nakada
https://github.com/ruby/io-console/commit/08e41a3e4d
2023-12-25[ruby/io-console] [DOC] Add missing documentsNobuyoshi Nakada
https://github.com/ruby/io-console/commit/44dce34569
2023-12-25[ruby/io-console] Extract CSI sequenceNobuyoshi Nakada
https://github.com/ruby/io-console/commit/63dbeeecf4
2023-12-25[ruby/psych] Remove now-unreachable rescue blockAlexander Momchilov
https://github.com/ruby/psych/commit/6905a2123c
2023-12-25[ruby/psych] Remove unused arrayAlexander Momchilov
https://github.com/ruby/psych/commit/b9e7b4a4a4
2023-12-25[ruby/fiddle] Bump versionSutou Kouhei
https://github.com/ruby/fiddle/commit/fd4bb4ea8a
2023-12-25[ruby/date] Provide a 'Changelog' link on rubygems.org/gems/dateMark Young
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[ruby/etc] [DOC] Move rdoc files to .documnetNobuyoshi Nakada
https://github.com/ruby/etc/commit/44425427ab
2023-12-25[ruby/etc] [DOC] Missing constantNobuyoshi Nakada
https://github.com/ruby/etc/commit/a39e982129
2023-12-25Revert "Rollback to released version numbers of stringio and strscan"Hiroshi SHIBATA
This reverts commit 6a79e53823e328281b9e9eee53cd141af28f8548.
2023-12-19[ruby/psych] Bump up 5.1.2Hiroshi SHIBATA
https://github.com/ruby/psych/commit/a9ab74d132
2023-12-19[ruby/psych] Use `compare_by_identity` instead of `object_id`Alexander Momchilov
Object IDs became more expensive in Ruby 2.7. Using `Hash#compare_by_identity` let's us get the same effect, without needing to force all these objects to have object_ids assigned to them. https://github.com/ruby/psych/commit/df69e4a12e
2023-12-18Update `BasicSocket#recv` documentation on return valueJean Boussier
Ref: https://github.com/ruby/ruby/pull/6407 [Bug #19012] `0` is now interpreted as closed connection an not an empty packet, as these are very rare and pretty much useless.
2023-12-18[DOC] Show `PTY.getpty` as an alias of `PTY.spawn`Nobuyoshi Nakada
`:nodoc:` directive does not work at method definition in C, and must be at the implementation function. That is, there is no way to make one method visible and another method sharing the implementation invisible at the same time.
2023-12-18[DOC] Add Socket::ResolutionError documentationNobuyoshi Nakada
2023-12-18[DOC] Correct the location of Addrinfo documentNobuyoshi Nakada
The document must be placed immediately before the class definition. No other statements can be placed in between.
2023-12-18[DOC] Stop unintentional references to builtin or standard namesNobuyoshi Nakada
2023-12-17Revert "[DOC] Make undocumented socket constans nodoc"Nobuyoshi Nakada
This reverts commit cbda94edd80b0f664eda927f9ce9405b2074633a, because `:nodoc:` does not work for constants. In the case of `rb_define_const`, RDoc parses the preceeding comment as in `"/* definition: comment */"` form.
2023-12-17[DOC] Make undocumented socket constans nodocNobuyoshi Nakada