Age | Commit message (Collapse) | Author |
|
I'm not sure that this is section is complete (may be missing
requirements), or accurate (minimum automake or bison versions
may not be correct). However, I think it's useful, and we can
adjust it in the future to add requirements or adjust
requirement versions.
Fixes [Bug #14409]
Notes:
Merged: https://github.com/ruby/ruby/pull/4582
|
|
... which is formally called EXPERIMENTAL_ISEQ_NODE_ID.
See also ff69ef27b06eed1ba750e7d9cab8322f351ed245.
https://bugs.ruby-lang.org/issues/17930
Notes:
Merged: https://github.com/ruby/ruby/pull/4558
|
|
RubyVM::AST.of(Thread::Backtrace::Location) returns a node that
corresponds to the location. Typically, the node is a method call, but
not always.
This change also includes iseq's dump/load support of node_ids for each
instructions.
Notes:
Merged: https://github.com/ruby/ruby/pull/4558
|
|
Previously Backtrace::Location had two possible states:
LOCATION_TYPE_ISEQ and LOCATION_TYPE_ISEQ_CALCED. The former had the
location information as PC, and the latter had it as lineno.
Once lineno was caluculated, the state was changed to
LOCATION_TYPE_ISEQ_CALCED and the caluculated result was kept.
This change removes LOCATION_TYPE_ISEQ_CALCED, so lineno is calculated
whenever it is needed. It will be slow a little, but lineno is typically
needed only when its backtrace is shown, so I believe that it does not
matter.
This is a preparation to add column information to Backtrace::Location
because PC is needed to caluculate node_id for AST::Node even after
lineno is calculated. This change is approved by ko1.
Notes:
Merged: https://github.com/ruby/ruby/pull/4558
|
|
|
|
by merging `rb_ast_body_t#line_count` and `#script_lines`.
Fortunately `line_count == RARRAY_LEN(script_lines)` was always
satisfied. When script_lines is saved, it has an array of lines, and
when not saved, it has a Fixnum that represents the old line_count.
Notes:
Merged: https://github.com/ruby/ruby/pull/4581
|
|
This option makes the parser keep the original source as an array of
the original code lines. This feature exploits the mechanism of
`SCRIPT_LINES__` but records only the specified code that is passed to
RubyVM::AST.of or .parse, instead of recording all parsed program texts.
Notes:
Merged: https://github.com/ruby/ruby/pull/4581
|
|
heap_set_increment essentially only calls heap_allocatable_pages_set.
They only differ in behaviour when `additional_pages == 0`. However,
this is only possible because heap_extend_pages may return 0. This
commit also changes heap_extend_pages to always return at least 1.
Notes:
Merged: https://github.com/ruby/ruby/pull/4580
|
|
In ruby/ruby test actions, number of "leaked tempfile" messages
are shown on Windows.
As Windows disallows removing open files, `Tempfile#unlink` fails
silently before `#close`.
Close then unlink by `#close!` instead.
https://github.com/rubygems/rubygems/commit/fe0b88ac30
|
|
* --braces-after-func-def-line
* --dont-cuddle-else
* --procnames-start-lines
* --space-after-for
* --space-after-if
* --space-after-while
|
|
|
|
Tabs were expanded because the file did not have any tab indentation in unedited lines.
Please update your editor config, and use misc/expand_tabs.rb in the pre-commit hook.
|
|
Currently this has a fairly minor effect as strings are not used heavily
inside the builtins (outside of warnings, requires, and errors).
Hopefully this allows us to use strings in the future where appropriate.
Notes:
Merged: https://github.com/ruby/ruby/pull/4573
|
|
Mitigate the security risk:
https://devcraft.io/2021/01/07/universal-deserialisation-gadget-for-ruby-2-x-3-x.html
https://github.com/ruby/net-protocol/commit/a9970437e8
|
|
|
|
Fix up c2d9967f78d2e6f93f8d9876c2b3ab25aa6b86e7.
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4576
|
|
|
|
|
|
|
|
|
|
https://github.com/ruby/ostruct/commit/8534f69e4e
|
|
This change fixes the bug described in https://bugs.ruby-lang.org/issues/17880.
Checking `ractor_shareable_p` will cause the method to call back into
Ruby. Anything calling this method can't be a leaf instruction,
otherwise it could crash. By adding `attr bool leaf = false` we no
longer crash because it marks the function as not a leaf.
Here's a simplified reproduction script:
```ruby
require "set"
class Id
attr_reader :db_id
def initialize(db_id)
@db_id = db_id
end
def ==(other)
other.class == self.class && other.db_id == db_id
end
alias_method :eql?, :==
def hash
10
end
def <=>(other)
db_id <=> other.db_id if other.is_a?(self.class)
end
end
class Namespace
IDS = Set[
Id.new(1).freeze,
Id.new(2).freeze,
Id.new(3).freeze,
Id.new(4).freeze,
].freeze
class << self
def test?(id)
IDS.include?(id)
end
end
end
p Namespace.test?(Id.new(1))
p Namespace.test?(Id.new(5))
```
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4572
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4572
|
|
|
|
|
|
|
|
https://github.com/ruby/ostruct/commit/bb253be3e9
|
|
|
|
Notes:
Merged-By: marcandre <github@marc-andre.ca>
|
|
requested by tankf33der at https://bugs.ruby-lang.org/issues/17949#change-92430
Notes:
Merged: https://github.com/ruby/ruby/pull/4567
|
|
These methods are not !-suffixed, and the messages were very
confusing.
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4571
|
|
This reverts commit f0f9e77b65990001bd2acb42e1c6b673f6324425.
Notes:
Merged: https://github.com/ruby/ruby/pull/4570
|
|
* Wake up join list within thread EC context.
* Consume items from join list so that they are not re-executed.
If `rb_fiber_scheduler_unblock` raises an exception, it can result in a
segfault if `rb_threadptr_join_list_wakeup` is not within a valid EC. This
change moves `rb_threadptr_join_list_wakeup` into the thread's top level EC
which initially caused an infinite loop because on exception will retry. We
explicitly remove items from the thread's join list to avoid this situation.
* Verify the required scheduler interface.
* Test several scheduler hooks methods with broken `unblock` implementation.
Notes:
Merged-By: ioquatix <samuel@codeotaku.com>
|
|
|
|
|
|
|
|
Co-authored-by: Bruno Sutic <code@brunosutic.com>
Notes:
Merged-By: ioquatix <samuel@codeotaku.com>
|
|
Fixes [Bug #17947]
|
|
|
|
```
p RubyVM::AbstractSyntaxTree.parse("::Foo += 1").children
#=> before: [[], nil, (OP_CDECL@1:0-1:10 (COLON3@1:0-1:10 :Foo) :+ (LIT@1:9-1:10 1))]
#=> after: [[], nil, (OP_CDECL@1:0-1:10 (COLON3@1:0-1:5 :Foo) :+ (LIT@1:9-1:10 1))]
```
|
|
|
|
As well as 2366c681166a1dab95de6b9ca8ffcaae18aadd39.
|
|
|
|
jemalloc (5.2.1 at least) cannot compile in C++ on macOS SDK, due
to conflicts on exception specification.
|
|
|
|
rb_block_call and rb_block_call_kw have similar code.
So, using rb_block_kw function in rb_block_call function for refactoring.
Notes:
Merged: https://github.com/ruby/ruby/pull/4566
Merged-By: nobu <nobu@ruby-lang.org>
|
|
|