Age | Commit message (Collapse) | Author |
|
|
|
|
|
to suppress a warning
|
|
This recursive iteration test can cause SystemStackError so
check it correctly.
|
|
```
warning: Float 0xf.fp10000000000000... out of range
```
|
|
to suppress the leak checker.
|
|
|
|
iter_lev is used to detect the hash is iterating or not.
Usually, iter_lev should be very small number (1 or 2) so
`int` is overkill.
This patch introduce iter_lev in flags (7 bits, FL13 to FL19)
and if iter_lev exceeds this range, save it in hidden attribute.
We can get 1 word in RHash.
We can't modify frozen objects. Therefore I added new internal API
`rb_ivar_set_internal()` which allows us to set an attribute
even if the target object is frozen
if the name is hidden ivar (the name without `@` prefix).
|
|
This commit makes it so that if the binmode option is given with
any encoding arguments, the reader and writer IO objects are
not set to binary encoding.
Fixes [Bug #12989]
|
|
When passing `binmode: true` to `IO.pipe`, it should behave the same way
as calling `binmode` on each of the file handles. It should set the
file to binmode *and* set the encoding to binary on the file.
Before this commit, passing `binmode: true` to `IO.pipe` would make
`binmode?` return `true`, but the file's encoding would remain the same
as the default encoding. Passing `binmode: true` should make `binmode?`
return `true` *and* set the encoding to binary.
|
|
The result should only be tainted if the path given to the method
was tainted.
The code to always taint the result was added in
a4934a42cbb84b6679912226581c71b435671f55 (svn revision 4892) in
2003 by matz. However, the change wasn't mentioned in the
commit message, and it may have been committed by accident.
Skip part of a readline test that uses Reline. Reline in general
would pass the test, but Reline's test mode doesn't raise a
SecurityError if passing a tainted prompt and $SAFE >= 1. This
was hidden earlier because File#path was always returning a
tainted string.
Fixes [Bug #14485]
|
|
|
|
This reverts commit 1a759bfe5d554c22571d2e6e4e5998cf06a7b98f.
This fails on some operating systems.
|
|
The result should only be tainted if the path given to the method
was tainted.
The code to always taint the result was added in
a4934a42cbb84b6679912226581c71b435671f55 (svn revision 4892) in
2003 by matz. However, the change wasn't mentioned in the
commit message, and it may have been committed by accident.
Skip part of a readline test that uses Reline. Reline in general
would pass the test, but Reline's test mode doesn't raise a
SecurityError if passing a tainted prompt and $SAFE >= 1. This
was hidden earlier because File#path was always returning a
tainted string.
Fixes [Bug #14485]
|
|
Fixes [Bug #14062]
|
|
|
|
* string.c (rb_str_split_m): occupy match data not to be modified
during yielding the block. [Bug #16024]
|
|
* time.c (zone_timelocal): initialize DST flag by asking the
timezone object. [Bug #15988]
|
|
[Bug #12230]
|
|
exec_hooks_postcheck() clean executed hook_list if it is needed.
list_exec is freed if there are no events and this list is local
event (connected to specific iseq). However, iseq keeps to point
this local hook_list, freed list. To prevent this situation,
do not free hook_list here even if it has no events.
This issue is reported by @joker1007.
https://twitter.com/joker1007/status/1153649170797830144
|
|
Fixes [Bug #10901]
|
|
|
|
|
|
|
|
|
|
|
|
Method#inspect shows with source location.
[Feature #14145]
|
|
Add encoding conversion (transcoding) from UTF-8 to CESU-8
and back. CESU-8 is an encoding similar to UTF-8, but encodes
codepoints above U+FFFF as two surrogates, these surrogates
again being encoded as if they were UTF-8 codepoints. This
preserves the same binary sorting order as in UTF-16. It is
also somewhat similar (although not exactly identical) to an
encoding used internally by Java.
This completes issue #15995.
enc/trans/cesu_8.trans: Add encoding conversion from/to CESU-8
test/ruby/test_transcode.rb: Add tests for above
|
|
|
|
|
|
|
|
This reverts commit bae638ad5b782c44c80efe33834cb9039279af46.
[Feature #5400]
|
|
Moved from RubyVM. [Feature #15903]
|
|
|
|
|
|
|
|
```ruby
if false
puts 'false'
else if true
puts 'true'
end # -:5: warning: mismatched indentations at 'end' with 'if' at 3
end
```
[Feature #15990]
|
|
Fixes [Bug #15985]
|
|
It has unintentionally passed since 2.5.
|
|
It has caused CI failures.
* d0cd0866d82a58933e5dccd073c753c0c2ad4eb5
Disable GC during rb_objspace_reachable_object_p
* 89cef1c56b3a0f9c5e6ccc22a5044477a4fd16c1
Version guard for [Feature #15974]
* 796eeb6339952d92ae1b353d450c7883e589852d.
Fix up [Feature #15974]
* 928260c2a613bbdd4402c300e0bf86ae7562e52a.
Warn in verbose mode on defining a finalizer that captures the object
|
|
This partially reverts commit 712a66b0741605f5b2db670a292b9bb352f8a716.
The previous fix made CI strange like:
http://ci.rvm.jp/results/trunk-vm-asserts@silicon-docker/2124178
Let me just downgrade the behavior for now and deal with it later.
[Bug #15971]
|
|
* Fixed warning condition
* Fixed function signature
* Use ident hash
|
|
This reverts commit ea30dd702512ff9df34fe8c71c825f8f901bf5b1.
because it fails when VM_CHECK_MODE=1.
|
|
Similar to the check used for String#gsub. Can fix possible
segfault.
Fixes [Bug #15941]
|
|
rb_fstring behavior in this case is to freeze the receiver. I'm
not sure if that should be changed, so this takes the conservative
approach of duping the receiver in String#-@ before passing
to rb_fstring.
Fixes [Bug #15926]
|
|
Array#minmax was previous not implemented, so calling #minmax on
array was actually calling Enumerable#minmax. This is a simple
implementation of #minmax by just calling rb_ary_min and
rb_ary_max, which improves performance significantly.
Fixes [Bug #15929]
|
|
setlocal relies on cfp->ep, and frame-omitted method inlining introduced
in Ruby 2.7 kept it wrong.
This change might slow down frame-omitted method inlining for cfp->ep
manipulation, and it obviously complicates the implementaion more. By
introducing an optimization that changes Ruby's local variable to C
local variable, we could optimize it and simplify the cfp->ep
manipulation later.
[Bug #15971]
|
|
birthtime may not be supported on some filesystems, and
NotImplementedError can be raised. [Bug #15972]
|
|
|
|
|