| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Errno::EROFS may occur when the source tree is placed in a
read-only filesystem.
|
|
|
|
|
|
| |
Hangs up only in ruby/ruby on Travis-CI.
https://github.com/ruby/io-console/commit/de39aa6dd6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Methods and their definitions can be allocated/deallocated on-the-fly.
One pathological situation is when a method is deallocated then another
one is allocated immediately after that. Address of those old/new method
entries/definitions can be the same then, depending on underlying
malloc/free implementation.
So pointer comparison is insufficient. We have to check the contents.
To do so we introduce def->method_serial, which is an integer unique to
that specific method definition.
PS: Note that method_serial being uintptr_t rather than rb_serial_t is
intentional. This is because rb_serial_t can be bigger than a pointer
on a 32bit system (rb_serial_t is at least 64bit). In order to preserve
old packing of struct rb_call_cache, rb_serial_t is inappropriate.
|
|
|
|
|
|
|
|
|
|
| |
* Default VMIN and VTIME to minimum input.
* Disable parity check bits explicitly.
* Disable all bits for flow control on input.
Co-Authored-By: NARUSE, Yui <naruse@airemix.jp>
https://github.com/ruby/io-console/commit/5ce201a686
|
|
|
|
|
|
|
|
|
|
|
| |
Previously every time a method was defined on a module, we would
recursively walk all subclasses to see if the module was included in a
class which the VM optimizes for (such as Integer#+).
For most method definitions we can tell immediately that this won't be
the case based on the method's name. To do this we just keep a hash with
method IDs of optimized methods and if our new method isn't in that list
we don't need to check subclasses at all.
|
|
|
|
|
| |
It's a Ruby bug if this ever happens check it as an assertion instead of
paying the cost of the check every time.
|
|
|
|
|
|
| |
We know that this is a heap-allocated object (a CLASS, MODULE, or
ICLASS) so we don't need to check if it is an immediate value. This
should be very slightly faster.
|
|
|
|
|
|
|
|
| |
Avoids genereating a "throwaway" sentinel class serial. There wasn't any
read harm in doing so (we're at no risk of exhaustion and there'd be no
measurable performance impact), but if feels cleaner that all class
serials actually end up assigned and used (especially now that we won't
overwrite them in a single method definition).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
rb_clear_method_cache_by_class calls rb_class_clear_method_cache
recursively on subclasses, where it will bump the class serial and clear
some other data (callable_m_tbl, and some mjit data).
Previously this could end up taking a long time to clear all the classes
if the module was included a few levels deep and especially if there
were multiple paths to it in the dependency tree (ie. a class includes
two modules which both include the same other module) as we end up
revisiting class/iclass/module objects multiple times.
This commit avoids revisiting the same object, by short circuiting when
revisit the same object. We can check this efficiently by comparing the
class serial of each object we visit with the next class serial at the
start. We know that any objects with a higher class serial have already
been visited.
|
| |
|
|
|
|
| |
This reverts commit 65731a1330ed02691e3c343d2feeb8d0a72af3fd.
|
|
|
|
| |
https://github.com/ruby/io-console/commit/8ed5a2bcc3
|
|
|
|
| |
https://github.com/ruby/io-console/commit/b8411689a5
|
|
|
|
| |
https://github.com/ruby/io-console/commit/9e3ec5b936
|
| |
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/c6b4df5bfc
|
| |
|
|
|
|
|
| |
This assertion is not needed because we found the bug.
ba11a74745.
|
| |
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/8de4d0272e
|
|
|
|
| |
For better readability.
|
| |
|
| |
|
|
|
|
| |
https://github.com/ruby/logger/commit/fb3eff153f
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
TCSAFLUSH discards the buffer read before the mode change, which makes
IRB ignore the buffer input immediately after invoked. TCSANOW
preserves the buffer.
https://github.com/ruby/io-console/commit/b362920182
|
|
|
|
|
|
| |
In raw mode with interrupt enabled.
https://github.com/ruby/io-console/commit/e9e8e3ff17
|
|
|
|
| |
https://github.com/ruby/io-console/commit/4f01db102d
|
|
|
|
| |
https://github.com/ruby/io-console/commit/a49462ed97
|
| |
|
|
|
|
|
|
|
| |
There is already the possibility to set Reline.completion_append_character.
However, it is not used by the line editor.
https://github.com/ruby/reline/commit/ab798931b9
|
|
|
|
|
|
| |
Including dsusp, lnext, and so on.
https://github.com/ruby/reline/commit/a44abe586b
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Set up-to-date flag always when calling tzset().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`find_time_t` did not work correctly for year older than the Epoch
because it used C's integer division (which rounds negative to zero).
For example, `TIme.new(1933)` returned a wrong time whose year is 1922
in Asia/Kuala_Lumpur because there is no 00:00:00 1st Jan. 1933 in the
time zone.
```
$ TZ=Asia/Kuala_Lumpur ruby -e 'p Time.new(1933)'
1932-12-31 00:00:00 +0700
```
This change fixes the issue by using `DIV` macro instead of `/`.
Now `Time.new(1933)` returns a time in 1933.
```
$ TZ=Asia/Kuala_Lumpur ruby -e 'p Time.new(1933)'
1933-01-01 00:20:00 +0720
```
[Bug #16159]
|
| |
|
| |
|
| |
|
|
|
|
|
| |
We do not need to issue pipe|eventfd read(2) syscall
unless select, ppoll|poll declares the FD needs reading.
|
| |
|
| |
|
|
|
|
|
|
| |
Fixes [Bug #13144]
Co-Authored-By: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 5105240b1e851410020b3b3f1a2bead7ffdd4291.
In RFC 2616:
```
deflate
The "zlib" format defined in RFC 1950 [31] in combination with
the "deflate" compression mechanism described in RFC 1951 [29].
```
So "Content-Encoding: deflate" means zlib format, not raw deflate.
[Bug #11268]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Net::HTTP had used `Zlib::Inflate.new(32 + Zlib::MAX_WBITS)` for all
content encoding (deflate, zlib, and gzip).
But the argument `32 + Zlib::MAX_WBITS` means zlib and gzip decoding
with automatic header detection, so (raw) deflate compression had not
been supported.
This change makes it support raw deflate correctly by passing an
argument `-Zlib::MAX_WBITS` (which means raw deflate) to
`Zlib::Inflate.new`. All deflate-mode tests are fixed too.
[Bug #11268]
|
| |
|
| |
|