| Age | Commit message (Collapse) | Author |
|
v0.4.20 addresses CVE-2025-43857 (GHSA-j3g3-5qv5-52mj).
v0.4.21 fixes bugs in `Net::IMAP::SequenceSet`.
|
|
2fe8b9cd3d308d754f3d33a948dfb1dd782a10dc: [Backport #21327]
digest.so needs ruby/digest.h which is installed by build-ext
Copy to path with the base name
|
|
stat command is not provided on Windows
|
|
[Bug #21331] Prohibit hash modification during stlike loop
|
|
Remove unused retval assignments
|
|
46e4c8673747de96838d2c5dec37446d23d99d88:
Fix redefinition of `clock_gettime` and `clock_getres`
winpthreads-git 12.0.0.r720 provides `clock_gettime` and
`clock_getres` as inline functions.
Detect `clock_gettime` and `clock_getres` for winpthreads
|
|
Fix coverage measurement for negative line numbers
Fixes [Bug #21220]
Co-Authored-By: Mike Bourgeous <mike@mikebourgeous.com>
Co-Authored-By: Jean Boussier <jean.boussier@gmail.com>
|
|
The message from dlerror is not our concern.
|
|
|
|
Fix C23 (GCC 15) WIN32 compatibility for rb_define_* functions
Fixes [Bug #21286]
|
|
|
|
Previously, the script was caching any file already present in the
destination directory, regardless of its origin. This caused issues
when the directory contained files copied from external sources like
`autoreconf --install`.
For example:
1. `./autogen.sh --install` copies `config.guess` and `config.sub`
from the system to `./tool`.
2. `ruby tool/downloader.rb -d tool -e gnu config.guess config.sub`
treats those files as if they were downloaded and caches them.
3. Removing the files: `rm tool/config.guess tool/config.sub`.
4. Running the downloader again, it mistakenly restores the cached
files instead of downloading fresh versions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51bc992822f9108ad64de32d300e1cefd0e2da59, 42daa6c2a2b49b4e45f40736e25c7d182860f24a: [Backport #21141]
[Bug #21141] [DOC] Clarify what time is in UTC
[Bug #21141] [DOC] Refine description of `Time#utc?`
[Bug #21141] [DOC] Fix indentation
|
|
Fix `Integer.sqrt` to never exceed actual value
`Integer.sqrt` uses `sqrt(3)` from libm for small values.
This method must return a value less than or equal to the actual integer
square root, but libm's sqrt does not always guarantee that.
This change corrects that by decrementing the result if necessary.
Fixes [Bug #21217]
|
|
This is follow-up for 7c315e23983a35d29108d9ba8c914d6320254d43.
|
|
[ruby/prism] Fix `not` receiver
`not foo` should be `!foo`
`not()` should be `!nil`
Fixes [Bug #21027]
https://github.com/ruby/prism/commit/871ed4b462
|
|
|
|
https://rubyci.s3.amazonaws.com/s390x/ruby-master/log/20250403T060004Z.fail.html.gz
|
|
https://rubyci.s3.amazonaws.com/s390x/ruby-3.2/log/20250403T005659Z.fail.html.gz
|
|
|
|
via vcpkg
|
|
[Bug #20984] Fix test with locale encoding
|
|
https://github.com/rubygems/rubygems/commit/3e77caeddf
|
|
Fix handling of `error`/`errno` in `io_internal_wait`. (#12961)
[Bug #21195]
|
|
[Bug #21094] Update nested module names when setting temporary name
|
|
[Bug #21186] multibyte char literal should be a single letter word
|
|
[Bug #19841] Refine error on marshaling recursive USERDEF
|
|
One error message that we parse is now slightly different.
https://github.com/rubygems/rubygems/commit/758528791d
|
|
Ensure IO.copy_stream buffer is an independent string
Otherwise, changes to the buffer by the destination write method
could result in data changing for supposedly independent strings.
Fixes [Bug #21131]
|
|
Push a real iseq in rb_vm_push_frame_fname()
Previously, vm_make_env_each() (used during proc
creation and for the debug inspector C API) picked up the
non-GC-allocated iseq that rb_vm_push_frame_fname() creates,
which led to a SEGV when the GC tried to mark the non GC object.
Put a real iseq imemo instead. Speed should be about the same since
the old code also did a imemo allocation and a malloc allocation.
Real iseq allows ironing out the special-casing of dummy frames in
rb_execution_context_mark() and rb_execution_context_update(). A check
is added to RubyVM::ISeq#eval, though, to stop attempts to run dummy
iseqs.
[Bug #21180]
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
|
|
34098b669c0cbc024cd08e686891f1dfe0a10aaf: [Backport #21144]
[Bug #21144] Win32: Use Windows time zone ID if TZ is not set
If the TZ environment variable is not set, the time zone names
retrieved from the system are localized for UI display and may vary
across editions and language packs for the same time zone.
Use the time zone IDs that are invariant across environments instead.
[Bug #21144] Win32: Convert the time zone name to the current locale
The Windows time zone IDs provided by Microsoft as of 24H1 are ASCII
only all, but the API itself is not impossible to set non-ASCII key
name. Prefer the current locale encoding for now until we move to
UTF-8 including environment variables and command line arguments.
|
|
Fix a race condition with interned strings sweeping.
[Bug #21172]
This fixes a rare CI failure.
The timeline of the race condition is:
- A `"foo" oid=1` string is interned.
- `"foo" oid=1` is no longer referenced and will be swept in the future.
- Another `"foo" oid=2` string is interned.
- `register_fstring` finds `"foo" oid=1`, but since it is about to be swept,
removes it from `fstring_table` and insert `"foo" oid=2` instead.
- `"foo" oid=1` is swept, since it has the `RSTRING_FSTR` flag,
a `st_delete` is issued in `fstring_table` which removes `"foo" oid=2`.
I don't know how to reproduce this bug consistently in a single test
case.
|
|
[Bug #21159] module names should not be modifiable
|
|
[Bug #21092] Fallback variables after execonf has done
When reading from a dummy makefile, the global variables initialized
in `init_mkmf` may not be overridden.
|
|
|
|
Fix a typo in WeakKeyMap argument error
[Bug #21112]
|
|
d3abee739f4feb91bb9aaae33877d70c8c576db0: [Backport #21095]
Prefer `uname -n` over `hostname`. (#12647)
Add fallback for `hostname` if `uname` isn't available. (#12655)
|
|
rb_feature_p: skip `get_expanded_load_path` for absolute paths
Ref: https://github.com/fxn/zeitwerk/pull/308
```ruby
require 'benchmark'
$LOAD_PATH << 'relative-path'
autoload :FOO, '/tmp/foo.rb'
puts Benchmark.realtime {
500_000.times do
Object.autoload?(:FOO)
end
}
```
The above script takes 2.5 seconds on `master`, and only
50ms on this branch.
When we're looking for a feature with an absolute path, we don't
need to call the expensive `get_expanded_load_path`.
|
|
Use no-inline version `rb_current_ec` on Arm64
The TLS across .so issue seems related to Arm64, but not Darwin.
|
|
966458199d870b88b42898d4a063b487c1ef6b00, 966458199d870b88b42898d4a063b487c1ef6b00: [Backport #20951]
[DOC] Tweak "Timezone Objects"
- Make method descriptions plain pragraphs in each method.
- Make "Argument" and "Returns" note-lists.
[Bug #20951] [DOC] About UTC offset calculation after `utc_to_local`
[Bug #20951] [DOC] About UTC offset calculation after `utc_to_local`
|
|
[Bug #21170]
st_table reserves -1 as a special hash value to indicate that an entry
has been deleted. So that that's a valid value to be returned from the
hash function, do_hash replaces -1 with 0 so that it is not mistaken for
the sentinel.
Previously, when upgrading an AR table to an ST table,
rb_st_add_direct_with_hash was used which did not perform the same
conversion, this could lead to a hash in a broken state where one if its
entries which was supposed to exist being marked as a tombstone.
The hash could then become further corrupted when the ST table required
resizing as the falsely tombstoned entry would be skipped but it would
be counted in num entries, leading to an uninitialized entry at index
15.
In most cases this will be really rare, unless using a very poorly
implemented custom hash function.
This also adds two debug assertions, one that st_add_direct_with_hash
does not receive the reserved hash value, and a second in
rebuild_table_with, which ensures that after we rebuild/compact a table
it contains the expected number of elements.
Co-authored-by: Alan Wu <alanwu@ruby-lang.org>
|
|
|
|
|
|
And run on the latest ubuntu.
|