| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit introduces Ractor mechanism to run Ruby program in
parallel. See doc/ractor.md for more details about Ractor.
See ticket [Feature #17100] to see the implementation details
and discussions.
[Feature #17100]
This commit does not complete the implementation. You can find
many bugs on using Ractor. Also the specification will be changed
so that this feature is experimental. You will see a warning when
you make the first Ractor with `Ractor.new`.
I hope this feature can help programmers from thread-safety issues.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Follow up for 5e16857315bf55307c5fc887ca6f03bfa0630a93. Calling a method
in the middle of const_set adds a way that it would fail. It also makes
it inconsistent with declaring a constant using `::`, which doesn't call
`to_s`.
|
|
|
|
|
|
|
|
|
| |
AC_PROG_CXX checks for several C++ compilers INCLUDING g++. When none
of them were found it sets the CXX variable to be g++. This doesn't
make any sense. Absense of g++ has already been made sure.
Because we don't want insanity (that's the whole reason we test the
environment using autoconf), we need to swipe such insane variable out.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, when an object is first initialized, ROBJECT_EMBED isn't
set. This means that for brand new objects, ROBJECT_NUMIV(obj) is 0 and
ROBJECT_IV_INDEX_TBL(obj) is NULL.
Previously, this combination meant that the inline cache would never be
initialized when setting an ivar on an object for the first time since
iv_index_tbl was NULL, and if it were it would never be used because
ROBJECT_NUMIV was 0. Both cases always fell through to the generic
rb_ivar_set which would then set the ROBJECT_EMBED flag and initialize
the ivar array.
This commit changes rb_class_allocate_instance to set the ROBJECT_EMBED
flag on the object initially and to initialize all members of the
embedded array to Qundef. This allows the inline cache to be set
correctly on first use and to be used on future uses.
This moves rb_class_allocate_instance to gc.c, so that it has access to
newobj_of. This seems appropriate given that there are other allocating
methods in this file (ex. rb_data_object_wrap, rb_imemo_new).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR https://github.com/ruby/ruby/pull/3418 added a category to
`rb_warn_deprecated_to_remove` but not to `rb_warn_deprecated`. This
adds the same code to `rb_warn_deprecated` so that those warnings also
get a category.
This change also adds tests for `rb_warn_deprecated` and updates the
tests for `rb_warn_deprecated_to_remove` to have clearer names.
I've fixed the call to `rb_method_entry` as we need to be using the
instance method, not singleton.
Feature: https://bugs.ruby-lang.org/issues/17122
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Methods:
any?
all?
one?
none?
sum
shuffle!
shuffle
sample
|
|
|
|
| |
Fixes [Bug #17139]
|
| |
|
|
|
|
|
|
|
|
|
| |
This method is explicitly documented to not access the filesystem,
and the only way to get the correct behavior for a case where the
filesystem's case sensitivity differs from the operating system
default would be to access the filesystem.
Fixes [Bug #15417]
|
| |
|
| |
|
|
|
|
| |
Fixes [Bug #14895]
|
|
|
|
| |
This error is about wb unprotected objects, not old objects.
|
|
|
|
| |
This makes the binary 272 bytes smaller on -O3 GCC 10.2.0.
|
|
|
|
|
|
| |
end" (tests)
Reverted in e080a4cdee
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change adds a `category` kwarg to make it easier to monkey patch
`Warning.warn`. Warnings already have a category, but that warning isn't
exposed. This implements a way to get the category so that warnings with
a specific category, like deprecated, can be treated differently than
other warnings in an application.
The change here does an arity check on the method to support backwards
compatibility for applications that may already have a warning monkey
patch.
For our usecase we want to `raise` for deprecation warnings in order to
get the behavior for the next Ruby version. For example, now that we
fixed all our warnings and deployed Ruby 2.7 to production, we want to
be able to have deprecation warnings behave like they would in 3.0: raise
an error. For other warnings, like uninialized constants, that behavior
won't be removed from Ruby in the next version, so we don't need to
raise errors.
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
|
| |
|
|
|
|
|
|
| |
non-integer end"
This reverts commit 8900a25581822759daca528d46a75e0b743fc22e.
|
|
|
|
| |
This reverts commit 05bf811c2839628aaef3d565daedb28be80d47ef.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Methods considered:
count
flatten!
flatten
cycle
permutation
combination
repeated_permutation
repeated_combination
product
take
take_while
drop
drop_while
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The previous attempt to fix this in
b87df1bf243074edb2e6cc8a24bc00df81cebf3c reversed the argument
order instead of just fixing the quote escaping.
From Takahiro Kambe.
Fixes [Bug #15178]
|
|
|
|
| |
`rm_rf` does not support globbing, so not all files get deleted.
|
| |
|
|
|
|
|
|
| |
Ruby strings don't always have a null terminator, so we can't use
it as a regular C string. By reading only the first len bytes of
the Ruby string, we won't read past the end of the Ruby string.
|
|
|
|
| |
RUBY_DEBUG=ci envval shows more information on rb_bug().
|
|
|
|
| |
winflexbison3 v2.5.23.20200829 seems to install nothing.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
86737c509cd49cfe4509a65d300d390da0f07be6
3e1aea461320094e634ab32ca0b13dd43b69d8b0
|
|
|
|
| |
Requested by Naruse.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Methods considered:
&
intersection
|
union
max
min
minmax
uniq!
uniq
compact!
compact
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Methods:
+
concat
*
assoc
rassoc
==
eql?
hash
include?
<=>
-
difference
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Methods considered:
delete_at
slice!
reject!
reject
delete_if
zip
transpose
replace
clear
fill
|
|
|
|
| |
[Feature #15547] [Fix GH-2071]
|
|
|
|
| |
https://github.com/ruby/strscan/commit/df90d541fa
|
|
|
|
|
|
| |
`$KCODE` has been deprecated and not effective since years ago.
https://github.com/ruby/strscan/commit/7c4dbd4cb3
|
| |
|
|
|
|
| |
https://bugs.ruby-lang.org/issues/16746#note-26
|
| |
|
|
|
|
|
|
| |
Has been deprecated since 2069c9e031fc968d6d3d0fe30a9316851e4d91d8.
[Feature #17125][ruby-core:99636]
|
|
|
|
| |
https://bugs.ruby-lang.org/issues/6670#change-75907
|