Age | Commit message (Collapse) | Author |
|
to ruby/git.ruby-lang.org
|
|
- Substitute `GH-xxxx` which does not contain `#` too.
- Split each substitutions.
|
|
|
|
This reverts commit 751ffb276f658518c6fe06461a9d3d1c136c7d5d, which
caused build failures on other platforms.
|
|
|
|
Search VCS directory after other options are in effective, i.e.,
`--srcdir=nonexitent --suppress_not_found` options, as well as the
reverse order case, should print the current date only and exit
successfully.
|
|
The reference generated by using RDoc without the proper `--page-dir`
option (or `.rdoc_options`) file may contain `/doc/`. Since these
URIs are redirected by the server now, replace such URIs with the
corresponding rdoc-refs too.
|
|
|
|
|
|
`git status -z` result is NUL-separated, and can contain newline
characters.
|
|
This reverts commit 9a6803c90b817f70389cae10d60b50ad752da48f.
|
|
This reverts commit 68bc9e2e97d12f80df0d113e284864e225f771c2.
|
|
Which controls the timezone offset for `RUBY_RELEASE_DATE`.
Notes:
Merged: https://github.com/ruby/ruby/pull/6473
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6473
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6473
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6473
|
|
Object Shapes is used for accessing instance variables and representing the
"frozenness" of objects. Object instances have a "shape" and the shape
represents some attributes of the object (currently which instance variables are
set and the "frozenness"). Shapes form a tree data structure, and when a new
instance variable is set on an object, that object "transitions" to a new shape
in the shape tree. Each shape has an ID that is used for caching. The shape
structure is independent of class, so objects of different types can have the
same shape.
For example:
```ruby
class Foo
def initialize
# Starts with shape id 0
@a = 1 # transitions to shape id 1
@b = 1 # transitions to shape id 2
end
end
class Bar
def initialize
# Starts with shape id 0
@a = 1 # transitions to shape id 1
@b = 1 # transitions to shape id 2
end
end
foo = Foo.new # `foo` has shape id 2
bar = Bar.new # `bar` has shape id 2
```
Both `foo` and `bar` instances have the same shape because they both set
instance variables of the same name in the same order.
This technique can help to improve inline cache hits as well as generate more
efficient machine code in JIT compilers.
This commit also adds some methods for debugging shapes on objects. See
`RubyVM::Shape` for more details.
For more context on Object Shapes, see [Feature: #18776]
Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org>
Co-Authored-By: Eileen M. Uchitelle <eileencodes@gmail.com>
Co-Authored-By: John Hawthorn <john@hawthorn.email>
|
|
It is no longer single lldb_cruby.py only.
|
|
Revert "* expand tabs. [ci skip]"
This reverts commit 830b5b5c351c5c6efa5ad461ae4ec5085e5f0275.
Revert "This commit implements the Object Shapes technique in CRuby."
This reverts commit 9ddfd2ca004d1952be79cf1b84c52c79a55978f4.
|
|
Object Shapes is used for accessing instance variables and representing the
"frozenness" of objects. Object instances have a "shape" and the shape
represents some attributes of the object (currently which instance variables are
set and the "frozenness"). Shapes form a tree data structure, and when a new
instance variable is set on an object, that object "transitions" to a new shape
in the shape tree. Each shape has an ID that is used for caching. The shape
structure is independent of class, so objects of different types can have the
same shape.
For example:
```ruby
class Foo
def initialize
# Starts with shape id 0
@a = 1 # transitions to shape id 1
@b = 1 # transitions to shape id 2
end
end
class Bar
def initialize
# Starts with shape id 0
@a = 1 # transitions to shape id 1
@b = 1 # transitions to shape id 2
end
end
foo = Foo.new # `foo` has shape id 2
bar = Bar.new # `bar` has shape id 2
```
Both `foo` and `bar` instances have the same shape because they both set
instance variables of the same name in the same order.
This technique can help to improve inline cache hits as well as generate more
efficient machine code in JIT compilers.
This commit also adds some methods for debugging shapes on objects. See
`RubyVM::Shape` for more details.
For more context on Object Shapes, see [Feature: #18776]
Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org>
Co-Authored-By: Eileen M. Uchitelle <eileencodes@gmail.com>
Co-Authored-By: John Hawthorn <john@hawthorn.email>
Notes:
Merged: https://github.com/ruby/ruby/pull/6386
|
|
This is necessary for object shapes.
|
|
across different environments
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
except for bit fields.
I made a risky assumption on leading bit fields and just gave up
non-leading bit fields for now. I'll change it to let C code access bit
fields later.
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
to easily use it with `tool/mjit/bindgen.rb BUILDDIR` instead of using
`make mjit-bindgen`.
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
This seems to be needed on Samuel's environment
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6417
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6417
|
|
The reason why this was commented out was because of gperf 3.0 vs 3.1
differences (see [Feature #13883]). Five years passed, I am pretty
confident that we can drop support of old versions here.
Ditto for uniname2ctype_p(), onig_jis_property(), and zonetab().
Notes:
Merged: https://github.com/ruby/ruby/pull/6358
|
|
|
|
so that it's clear why not args.last but args[1]
|
|
`foo(Primitive.cexpr!('Qnil'),)` causes SEGV without this change.
|
|
|
|
Move `Downloader::Unicode` specific options, and parse options after
the downloader specificier.
|
|
and leverage that to preserve the directory structure under tool/ruby_vm/views
|
|
This reverts commit 62ec621f8c7457374d1f08aec97138ac1b7bdf2a.
will revisit this once fixing non-MJIT targets
|
|
for nested target directories
|
|
|
|
With 33c6dd2cc89c27bbf406508ec39038a181fb99bc, it's no longer necessary.
This is what I got on openbsd-current:
```
-bash-5.1$ git -v
unknown option: -v
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
[--super-prefix=<path>] [--config-env=<name>=<envvar>]
<command> [<args>]
-bash-5.1$ git version
git version 2.35.1
```
|
|
when -q is given.
One of the RubyCI servers, freebsd12, had a broken git environment:
```
$ git show
fatal: detected dubious ownership in repository at '/usr/home/chkbuild/chkbuild/tmp/build/20220917T123002Z/ruby'
To add an exception for this directory, call:
git config --global --add safe.directory /usr/home/chkbuild/chkbuild/tmp/build/20220917T123002Z/ruby
```
tool/lib/vcs.rb doesn't work normally for that server.
Even for such cases, we'd like to generate a usable revision.h.
So this patch lets revision.h fallback to default VCS.release_date
when VCS::NotFoundError is raised.
|