summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Threads in a ractor will be killed with the ractorKoichi Sasada2020-11-114-11/+42
| | | | | If a terminating ractor has child threads, then kill all child threads.
* introduce USE_VM_CLOCK for windows.Koichi Sasada2020-11-115-22/+34
| | | | | | | | | | | | | | | | The timer function used on windows system set timer interrupt flag of current main ractor's executing ec and thread can detect the end of time slice. However, to set all ec->interrupt_flag for all running ractors, it is requires to synchronize with other ractors. However, timer thread can not acquire the ractor-wide lock because of some limitation. To solve this issue, this patch introduces USE_VM_CLOCK compile option to introduce rb_vm_t::clock. This clock will be incremented by the timer thread and each thread can check the incrementing by comparison with previous checked clock. At last, on windows platform this patch introduces some overhead, but I think there is no critical performance issue because of this modification.
* Use Fiddle::Importer directlyHiroshi SHIBATA2020-11-113-14/+5
|
* Removed win32/resolv.rb for 32bit envHiroshi SHIBATA2020-11-112-266/+0
|
* Removed win32apiHiroshi SHIBATA2020-11-113-75/+0
|
* * 2020-11-11 [ci skip]git2020-11-111-1/+1
|
* Fix some typos in NEWS.md.Fabio Sangiovanni2020-11-101-4/+4
|
* [ruby/racc] Bump version to 1.5.1Hiroshi SHIBATA2020-11-102-2/+2
| | | | https://github.com/ruby/racc/commit/2cb3055a73
* [ruby/racc] skip the failing test with JRubyHiroshi SHIBATA2020-11-101-0/+2
| | | | https://github.com/ruby/racc/commit/cf37713895
* [ruby/racc] Use the Ruby license. Fix #134Hiroshi SHIBATA2020-11-107-21/+14
| | | | https://github.com/ruby/racc/commit/7c881cd548
* Use fiddle (win32/importer) instead of Win32APINAKAMURA Usaku2020-11-101-310/+317
| | | | - ext/win32/lib/win32/sspi.rb: Use fiddle (win32/importer) instead of Win32API
* Complex and Rational is embedded classes nowHiroshi SHIBATA2020-11-102-2/+0
|
* Removed canonicalization for mathnNobuyoshi Nakada2020-11-108-83/+8
|
* Fix linksS-H-GAMELINKS2020-11-102-2/+2
|
* refactoring.Koichi Sasada2020-11-101-5/+5
| | | | | iv_index_tbl_newsize() usually returns iv_index_tbl->num_entries because ivup->iv_extended is usually false.
* lib/racc/statetransitiontable.rb: Make the racc output stableYusuke Endoh2020-11-1022-7524/+7508
| | | | | | | | | Racc calls `Array#sort!` to build a state transition table. As `Array#sort!` is not a stable sort, the output may differ depending upon the environment. This changeset makes the sort stable manually, and updates all expectation files.
* Add a benchmark for polymorphic ivar settingAaron Patterson2020-11-091-0/+17
| | | | | | | This benchmark demonstrates the performance of setting an instance variable when the type of object is constantly changing. This benchmark should give us an idea of the performance of ivar setting in a polymorphic environment
* Add debug counter for ivar inline cache misses that could hitAaron Patterson2020-11-092-0/+2
| | | | | | This commit adds a debug counter for the case where the inline cache *missed* but the ivar index table has an entry for that ivar. This is a case where a polymorphic cache could help
* Avoid slow path ivar settingAaron Patterson2020-11-091-0/+11
| | | | | If the ivar index table exists, we can avoid the slowest path for setting ivars.
* Fix excessive GC rootingAlan Wu2020-11-091-2/+0
| | | | | rb_vm_add_root_module() is enough to make sure the object become a GC root.
* rb_vm_add_root_module(): Remove unused parameterAlan Wu2020-11-093-9/+9
|
* * 2020-11-10 [ci skip]git2020-11-101-1/+1
|
* remove unused debug counterAaron Patterson2020-11-091-1/+0
|
* Update vm_insnhelper.cAaron Patterson2020-11-091-1/+1
| | | Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
* Remove iv table size checkAaron Patterson2020-11-091-14/+7
| | | | | | | iv tables cannot shrink. If the inline cache was ever set, then there must be an entry for the instance variable in the iv table. Just set the iv list on the object to be equal to the iv index table size, then set the iv.
* eagerly initialize ivar table when index is small enoughAaron Patterson2020-11-094-20/+50
| | | | | | | | | | | | | When the inline cache is written, the iv table will contain an entry for the instance variable. If we get an inline cache hit, then we know the iv table must contain a value for the index written to the inline cache. If the index in the inline cache is larger than the list on the object, but *smaller* than the iv index table on the class, then we can just eagerly allocate the iv list to be the same size as the iv index table. This avoids duplicate work of checking frozen as well as looking up the index for the particular instance variable name.
* `fe80` should be case insensitive tooKazuhiro NISHIYAMA2020-11-092-2/+5
|
* Removed needless require for 'enumerator'Hiroshi SHIBATA2020-11-091-1/+0
|
* * 2020-11-09 [ci skip]git2020-11-091-1/+1
|
* Fix TestFiberMutex#test_condition_variable assertionBenoit Daloze2020-11-081-5/+3
| | | | * Now that it works correctly.
* test/resolv/test_dns.rb: suppress "assigned but unused variable"Yusuke Endoh2020-11-081-1/+1
|
* Support s390 IPv6 link local addressesJeremy Evans2020-11-071-1/+1
|
* Urgent notification pipe has same lifetime as scheduler.Samuel Williams2020-11-081-11/+10
|
* Defer `kernel_sleep` to `block` to avoid exiting the event loop when ↵Samuel Williams2020-11-081-6/+1
| | | | duration is nil.
* Tidy up book keeping for `thread->keeping_mutexes`.Samuel Williams2020-11-081-18/+35
| | | | | | When a scheduler is present, it's entirely possible for `th->keeping_mutexes` to be updated while enumerating the waitq. Therefore it must be fetched only during the removal operation.
* Don't try to resume blocked fiber on dead thread.Samuel Williams2020-11-081-5/+5
|
* `Fiber.new(blocking: false)` is now the default.Samuel Williams2020-11-081-1/+1
|
* Add support for IPv6 link local addresses to resolvJeremy Evans2020-11-072-1/+45
| | | | | | | | | | Now that it should work correctly, test that every address returned by Socket.ip_address_list is resolvable. Socket works with IPv6 link local addresses, and ipaddr now does as well, so I think resolv should support them. Fixes [Bug #17112]
* * 2020-11-08 [ci skip]git2020-11-081-1/+1
|
* Remove sender/message_id pair after response received in resolvJeremy Evans2020-11-072-1/+114
| | | | | | | | | Once a response for a given DNS request has been received (which requires a matching message id), the [sender, message_id] pair should be removed from the list of valid senders. This makes it so duplicate responses from the same sender are ignored. Fixes [Bug #12838]
* Fix indentationKazuki Tsujimoto2020-11-071-187/+187
|
* Fix and remove spec testing undefined behaviorKazuki Tsujimoto2020-11-071-34/+8
|
* Update dependenciesSamuel Williams2020-11-071-0/+24
|
* Rename to `Fiber#set_scheduler`.Samuel Williams2020-11-0717-133/+157
|
* * 2020-11-07 [ci skip]git2020-11-071-1/+1
|
* Add docs for some C extension GC APIsAlan Wu2020-11-061-4/+28
|
* Added dependency for net-protocolHiroshi SHIBATA2020-11-065-0/+10
|
* a part of T_DATA object can Ractor#sendKoichi Sasada2020-11-061-0/+26
| | | | | | | | | T_DATA objects can refer unshareable objects and they should be copied recursively, however there is no way to replace with copied unshareable objects. However, if a T_DATA object refers only shareable objects, there is no need to replace. So this kind of T_DATA object (such as Time, Dir, File::Status and so on) can be sent by Ractor.send.
* Update TypeProf to 0.4.2Yusuke Endoh2020-11-061-1/+1
|
* gc_rest can change the total pages, so we need to do that firstAaron Patterson2020-11-051-2/+2
|