| Age | Commit message (Collapse) | Author |
|
[Bug #19399] Parsing invalid heredoc inside block parameter
Although this is of course invalid as Ruby code, allow to just parse
and tokenize.
---
ext/ripper/lib/ripper/lexer.rb | 2 +-
test/ripper/test_lexer.rb | 12 ++++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
|
|
[ruby/stringio] [Bug #19389] Fix chomping with longer separator
https://github.com/ruby/stringio/commit/eb322a9716
---
ext/stringio/stringio.c | 5 +++--
test/stringio/test_stringio.rb | 2 ++
2 files changed, 5 insertions(+), 2 deletions(-)
|
|
Revert "[ruby/openssl] pkey/ec: constify"
This reverts commit d2cd903c85f38f42c6aefc6d97a1558f74d8d9db.
|
|
https://github.com/ruby/openssl/commit/6fb3499a7b
|
|
|
|
|
|
https://github.com/ruby/racc/commit/1dfbef8e99
|
|
https://github.com/ruby/openssl/commit/c2f7d775c6
|
|
https://github.com/ruby/openssl/commit/48b79333e0
|
|
https://github.com/ruby/openssl/commit/04acccd692
|
|
The behavior of EVP_PKEY_public_check changed between OpenSSL 1.1.1
and 3.0 so that it no longer validates the private key. Instead, private
keys can be validated through EVP_PKEY_private_check and
EVP_PKEY_pairwise_check.
[ky: simplified condition to use either EVP_PKEY_check() or
EVP_PKEY_public_check().]
https://github.com/ruby/openssl/commit/e38a63ab3d
|
|
This fixes a linkage error about `ossl_ssl_type` on platforms which do
not have socket, like WASI.
Even before this patch, some items are disabled under `OPENSSL_NO_SOCK` since
https://github.com/ruby/ruby/commit/ee22fad45d394818690c4a7586d7bb576ba67c56
However, due to some new use of OpenSSL::SSL::Socket over the past few years,
the build under `OPENSSL_NO_SOCK` had been broken.
This patch guards whole `OpenSSL::SSL` items by `OPENSSL_NO_SOCK`.
[ky: adjusted to apply on top of my previous commit that removed the
OpenSSL::ExtConfig, and added a guard to lib/openssl/ssl.rb.]
https://github.com/ruby/openssl/commit/b0cfac6a96
|
|
This module was introduced in 2015 for internal use within this library.
Neither of the two constants in it is used anymore. I don't think we
will be adding a new constant in the foreseeable future, either.
OPENSSL_NO_SOCK is unused since commit https://github.com/ruby/openssl/commit/998d66712a78 (r55191).
HAVE_TLSEXT_HOST_NAME is unused since commit https://github.com/ruby/openssl/commit/4eb4b3297a92.
https://github.com/ruby/openssl/commit/eed3894bda
|
|
As noted in commit https://github.com/ruby/openssl/commit/a2ed156cc9f1 ("test/test_ssl: do not run NPN tests
for LibreSSL >= 2.6.1", 2017-08-13), NPN is known not to work properly
on LibreSSL.
Disable NPN support on LibreSSL, whether OPENSSL_NO_NEXTPROTONEG is
defined or not.
NPN is less relevant today anyway. Let's also silence test suite when
it's not available.
https://github.com/ruby/openssl/commit/289f6e0e1f
|
|
The macro is now defined by default in LibreSSL 3.4+. Let's document it
for future readers.
https://github.com/ruby/openssl/commit/935698e9f9
|
|
https://github.com/ruby/openssl/commit/91657a7924
|
|
https://github.com/ruby/openssl/commit/c0023822fe
|
|
https://github.com/ruby/openssl/commit/b67aaf925d
|
|
eEC_POINT
https://github.com/ruby/openssl/commit/b2e9f5e132
|
|
returning true
https://github.com/ruby/openssl/commit/e1e8f3cebe
|
|
https://github.com/ruby/date/commit/ea3644a7c4
|
|
https://github.com/ruby/date/commit/71c35b4054
|
|
https://github.com/ruby/date/commit/3f666fa882
|
|
https://github.com/ruby/date/commit/3bfed83ce7
|
|
https://github.com/ruby/date/commit/945e26e243
|
|
https://github.com/ruby/date/commit/7fe2bd5f94
|
|
https://github.com/ruby/date/commit/a45f8f03c9
|
|
https://github.com/ruby/date/commit/7afd9d4615
|
|
https://github.com/ruby/io-console/commit/441528e3eb
|
|
https://github.com/ruby/io-wait/commit/940ba319d3
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6939
|
|
When an object becomes "too complex" (in other words it has too many
variations in the shape tree), we transition it to use a "too complex"
shape and use a hash for storing instance variables.
Without this patch, there were rare cases where shape tree growth could
"explode" and cause performance degradation on what would otherwise have
been cached fast paths.
This patch puts a limit on shape tree growth, and gracefully degrades in
the rare case where there could be a factorial growth in the shape tree.
For example:
```ruby
class NG; end
HUGE_NUMBER.times do
NG.new.instance_variable_set(:"@unique_ivar_#{_1}", 1)
end
```
We consider objects to be "too complex" when the object's class has more
than SHAPE_MAX_VARIATIONS (currently 8) leaf nodes in the shape tree and
the object introduces a new variation (a new leaf node) associated with
that class.
For example, new variations on instances of the following class would be
considered "too complex" because those instances create more than 8
leaves in the shape tree:
```ruby
class Foo; end
9.times { Foo.new.instance_variable_set(":@uniq_#{_1}", 1) }
```
However, the following class is *not* too complex because it only has
one leaf in the shape tree:
```ruby
class Foo
def initialize
@a = @b = @c = @d = @e = @f = @g = @h = @i = nil
end
end
9.times { Foo.new }
``
This case is rare, so we don't expect this change to impact performance
of most applications, but it needs to be handled.
Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/6931
|
|
Count how many "variations" each class creates. A "variation" is a a
unique ordering of instance variables on a particular class. This can
also be thought of as a branch in the shape tree.
For example, the following Foo class will have 2 variations:
```ruby
class Foo ; end
Foo.new.instance_variable_set(:@a, 1) # case 1: creates one variation
Foo.new.instance_variable_set(:@b, 1) # case 2: creates another variation
foo = Foo.new
foo.instance_variable_set(:@a, 1) # does not create a new variation
foo.instance_variable_set(:@b, 1) # does not create a new variation (a continuation of the variation in case 1)
```
We will use this number to limit the amount of shapes that a class can
create and fallback to using a hash iv lookup.
Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/6931
|
|
* Remove `require 'io/wait'` as it's part of core now.
* Update ruby specs using version gates.
* Add note about why it's conditional.
Notes:
Merged-By: ioquatix <samuel@codeotaku.com>
|
|
|
|
They don't actually have a class.
Notes:
Merged: https://github.com/ruby/ruby/pull/6925
|
|
Fixed https://github.com/ruby/date/issues/83
https://github.com/ruby/date/commit/9731a3e732
|
|
https://github.com/ruby/syslog/commit/a92b55b638
|
|
https://github.com/ruby/readline-ext/commit/7af996f24b
|
|
See d2166c09b08fc1 and #6036 for more context.
Notes:
Merged-By: ioquatix <samuel@codeotaku.com>
|
|
https://github.com/ruby/date/commit/6bb6d3a810
|
|
RDoc does not consider preprocessor conditionals, but equally uses
both documents of `#if` and `#else` sides.
https://github.com/ruby/openssl/commit/ea0a112a0c
|
|
https://github.com/ruby/ruby/commit/6d8f396f37350b7aa9c85a097929f54a0939448b
https://github.com/ruby/ruby/commit/c8b3bd45cc3cae93ae701333202416838ee6a00c
|
|
documentation
(https://github.com/ruby/openssl/pull/559)
Adds back missing constant description on the documentation.
|
|
LibreSSL 3.6 added support for HKDF in EVP. Enable this in ossl_kdf.c.
https://github.com/ruby/openssl/commit/9bdd39a7e2
|
|
For some reasons, plaintext may be empty string.
ref https://www.rfc-editor.org/rfc/rfc9001.html#section-5.8
https://github.com/ruby/openssl/commit/953592a29e
|
|
LibreSSL 3.4 added EVP_DigestSign() and EVP_DigestVerify(). Use them
when available to prepare for the addition of Ed25519 support in
LibreSSL 3.7.
https://github.com/ruby/openssl/commit/475b2bf766
|
|
|
|
|
|
|