| Age | Commit message (Collapse) | Author |
|
[Feature #18254]
This is useful to avoid repeteadly copying strings when parsing binary formats
|
|
Doesn't include receiver or singleton classes.
Implements [Feature #14394]
Co-authored-by: fatkodima <fatkodima123@gmail.com>
Co-authored-by: Benoit Daloze <eregontp@gmail.com>
Notes:
Merged: https://github.com/ruby/ruby/pull/4974
Merged-By: jeremyevans <code@jeremyevans.net>
|
|
TracePoint leaks memory because it allocates a `rb_tp_t` struct
without ever freeing it (it is created with `RUBY_TYPED_NEVER_FREE`).
Notes:
Merged: https://github.com/ruby/ruby/pull/5008
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5028
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5027
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5027
|
|
|
|
|
|
Otherwise, singleton methods of Module are not inherited unless
Refinement.singleton_class is called.
|
|
This reverts commit 7864efa105921eb3900c843126f2e0db02b9c6ae.
|
|
This reverts commit a1c4cab11d613d7df037a81a770ee44a23a2e9be.
|
|
|
|
```ruby
r, w = IO.pipe
r.close
IO.for_fd(w.fileno).close
```
This code closes a file descriptor `w.fileno`, but `w` doesn't know
the closing. Another code can open same file descriptor with opening
file (`f`). After that, the `w` will GCed and `w.fileno` is closed
again, and `f.fileno` is closed too, so IO operations for `f` (`f.close`)
will cause EBADF.
To fix this issue, do this test in another process.
|
|
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)
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5005
|
|
It is relatively well known that mac does not update its command line
tools, and make is no exception. They ship GNU make 3.x, which didn't
yet implemented GNUMAKEFLAGS.
Resort to MAKEFLAGS there.
Notes:
Merged: https://github.com/ruby/ruby/pull/5005
|
|
A bit readable to me.
See also https://github.com/ruby/ruby/pull/4880
Notes:
Merged: https://github.com/ruby/ruby/pull/5005
|
|
key algorithms
https://github.com/rubygems/rubygems/commit/967876f15d
Co-Authored-By: Frederik Dudzik <frederik.dudzik@shopify.com>
|
|
|
|
|
|
Code owners are automatically tagged as reviewers on pull requests
|
|
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
|
|
The allocation functions no longer assume that one RVALUE needs to be
allocated.
Notes:
Merged: https://github.com/ruby/ruby/pull/4933
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4933
|
|
ast.c: Use kept script_lines data instead of re-open the source file
Notes:
Merged-By: mame <mame@ruby-lang.org>
|
|
|
|
As noticed by @nobu https://github.com/rubygems/rubygems/pull/4989#discussion_r735674633
From wikipedia: https://en.wikipedia.org/wiki/SHA-1#SHA-1_pseudocode
> append ml, the original message length in bits, as a 64-bit big-endian integer.
`Q` is native endian, so little-endian on most modern hardware.
The original code from RubyDigest reverses the bytes:
https://github.com/Solistra/ruby-digest/blob/d15f906caf09171f897efc74645c9e31373d7fd1/lib/ruby_digest.rb#L521
But that makes the code non-portable, the correct way is to directly ask
for a big-endian representation.
https://github.com/rubygems/rubygems/commit/ba2be01ea4
|
|
In an effort to minimize build issues on non x64 platforms, we can
decide at build time to not build the bulk of YJIT. This should fix
obscure build errors like this one on riscv64:
yjit_asm.c:137:(.text+0x3fa): relocation truncated to fit: R_RISCV_PCREL_HI20 against `alloc_exec_mem'
We also don't need to bulid YJIT on `--disable-jit-support` builds.
One wrinkle to this is that the YJIT Ruby module will not be defined
when YJIT is stripped from the build. I think that's a fair change as
it's only meant to be used for YJIT development.
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
`duphash` showed up in the top-20 most frequent exit ops for @jhawthorn's benchmark that renders github.com/about
The implementation was almost exactly the same as `duparray`
Co-authored-by: John Hawthorn <john@hawthorn.email>
Co-authored-by: John Hawthorn <john@hawthorn.email>
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
|
|
Otherwise, the hint is printed whenever fork is called.
http://rubyci.s3.amazonaws.com/debian9/ruby-master/log/20211025T093004Z.log.html.gz
```
[20244/21156] TestThread#test_fork_while_lockedyou may want to add tests for following insns, when you have a chance: checkmatch
you may want to add tests for following insns, when you have a chance: checkmatch
you may want to add tests for following insns, when you have a chance: checkmatch
= 0.19 s
```
|
|
OpenSSL includes what we need.
https://github.com/rubygems/rubygems/commit/955f3b72ca
|
|
We require things inline or autoload them for efficiency and to avoid as
much as possible conflicting with user's choice of gems.
But I removed the require and observed no deadlocks when activating
gems.
https://github.com/rubygems/rubygems/commit/7d6333e842
|
|
Some crucial information to ease maintainers work, like the advice of
upgrading rubygems and bundler, was one step away from the issue
template, making it easier for some users to miss.
Now all relevant information is written directly in the bug report
template.
|
|
can't be deleted
Instead of showing the bug report template with an error at a random
place.
https://github.com/rubygems/rubygems/commit/882ad3ab57
|
|
Instead of showing the bug report place with an error at a randome
place.
https://github.com/rubygems/rubygems/commit/241854ce73
|
|
https://github.com/rubygems/rubygems/commit/ae374c1f31
|
|
searching it
https://github.com/rubygems/rubygems/commit/d0df25bb0f
|
|
Previously, it was maintained in sync with the standard cache. That was
less efficient, and it caused some error messages to point to non
existent files.
https://github.com/rubygems/rubygems/commit/931f8cb8a9
|
|
https://github.com/rubygems/rubygems/commit/83b2b845b3
|
|
We can skip most stuff in `Gem::RemoteFetcher#download`, and use
`Gem::RemoteFetcher#update_cache_path` directly.
This has the benefit of allowing us to remove some workarounds to
support several rubygems versions, but also allows us to pass the target
folder where the gem should be downloaded directly and skip the logic
inside `Gem::RemoteFetcher#download` to infer the cache path. This will
be useful later to fix some issues with the `global_gem_cache` feature
flag.
https://github.com/rubygems/rubygems/commit/8fe74a77e4
|
|
https://github.com/rubygems/rubygems/commit/7e1316e454
|
|
https://github.com/rubygems/rubygems/commit/3c93b9fd21
|
|
These methods rescue a constant defined by `rubygems/remote_fetcher`,
so they should technically require it.
The require is provided by `gem_remote_fetcher` anyways but I was
running a unit spec that stubs that method, so I was getting an
undefined constant error hiding another error.
https://github.com/rubygems/rubygems/commit/8bedae4034
|
|
https://github.com/rubygems/rubygems/commit/13b933f49a
|
|
https://github.com/rubygems/rubygems/commit/8319305d58
|
|
Extract final cache path to a variable and pass that to `download_gem`.
It actually fits better the parameters documentation since it's the
final directory where the downloaded gem will be placed.
https://github.com/rubygems/rubygems/commit/1429db6a04
|
|
* process.c: Add Process._fork
This API is supposed for application monitoring libraries to hook fork
event.
[Feature #17795]
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
Notes:
Merged-By: mame <mame@ruby-lang.org>
|