| Age | Commit message (Collapse) | Author |
|
|
|
|
|
optimization bug. [Bug #21655]
|
|
|
|
Since edf01d4e82d8e44ee30ec41fbcb7f802bc8b8c5d, fake string treats
NULL as an empty string.
|
|
* Unify length field for embedded and heap strings
The length field is of the same type and position in RString for both
embedded and heap allocated strings, so we can unify it.
* Remove RSTRING_EMBED_LEN
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
Remove !USE_RVARGC code
[Feature #19579]
The Variable Width Allocation feature was turned on by default in Ruby
3.2. Since then, we haven't received bug reports or backports to the
non-Variable Width Allocation code paths, so we assume that nobody is
using it. We also don't plan on maintaining the non-Variable Width
Allocation code, so we are going to remove it.
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
This function was added to a public header in [1] probably
unintentionally since it's not used anywhere, exposes implementation
details, and isn't related to the goals of that pull request.
[1]: 56cc3e99b6b9ec004255280337f6b8353f5e5b06
Notes:
Merged: https://github.com/ruby/ruby/pull/6023
Merged-By: XrXr
|
|
And re-embed any strings that can now fit inside the slot they've been
moved to
Notes:
Merged: https://github.com/ruby/ruby/pull/5986
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5435
|
|
A short (2 bytes) will cause unaligned struct accesses when strings are
used as a buffer to directly store binary data.
Notes:
Merged: https://github.com/ruby/ruby/pull/5432
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5415
|
|
Just split the comment for struct's one and array's one.
|
|
(gdb) ptype/o struct RString
/* offset | size */ type = struct RString {
/* 0 | 16 */ struct RBasic {
/* 0 | 8 */ VALUE flags;
/* 8 | 8 */ const VALUE klass;
/* total size (bytes): 16 */
} basic;
/* 16 | 24 */ union {
/* 24 */ struct {
/* 16 | 8 */ long len;
/* 24 | 8 */ char *ptr;
/* 32 | 8 */ union {
/* 8 */ long capa;
/* 8 */ VALUE shared;
/* total size (bytes): 8 */
} aux;
/* total size (bytes): 24 */
} heap;
/* 24 */ struct {
/* 16 | 24 */ char ary[24];
/* total size (bytes): 24 */
} embed;
/* XXX 8-byte padding */
/* total size (bytes): 24 */
} as;
/* total size (bytes): 40 */
}
(gdb)
|
|
This commit adds support for embedded strings with variable capacity and
uses Variable Width Allocation to allocate strings.
Notes:
Merged: https://github.com/ruby/ruby/pull/4933
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4933
|
|
Linking printf family functions makes mjit objects to link
unnecessary code.
Notes:
Merged: https://github.com/ruby/ruby/pull/4820
|
|
Must not be a bad idea to improve documents. [ci skip]
Notes:
Merged: https://github.com/ruby/ruby/pull/4815
|
|
Truly editorial fix for comments. This works better with Emacs'
set-justification-full function. [ci skip]
Notes:
Merged: https://github.com/ruby/ruby/pull/4815
|
|
Assertions in header files slows down an interpreter, so they should be
turned off by default (simple `make`). To enable them, define a macro
`RUBY_DEBUG=1` (e.g. `make cppflags=-DRUBY_DEBUG` or use `#define` at
the very beggining of the file. Note that even if `NDEBUG=1` is defined,
`RUBY_DEBUG=1` enables all assertions.
[Feature #16837]
related: https://github.com/ruby/ruby/pull/3120
`assert()` lines in MRI *.c is not disabled even if `RUBY_DEBUG=0` and
it can be disabled with `NDEBUG=1`. So please consider to use
`RUBY_ASSERT()` if you want to disable them when `RUBY_DEBUG=0`.
Notes:
Merged: https://github.com/ruby/ruby/pull/3124
|
|
To fix build failures.
Notes:
Merged: https://github.com/ruby/ruby/pull/3079
|
|
Devs do not love "impl".
Notes:
Merged: https://github.com/ruby/ruby/pull/3079
|