summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-10-30* expand tabs.svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30introduce TransientHeap. [Bug #14858]ko1
* transient_heap.c, transient_heap.h: implement TransientHeap (theap). theap is designed for Ruby's object system. theap is like Eden heap on generational GC terminology. theap allocation is very fast because it only needs to bump up pointer and deallocation is also fast because we don't do anything. However we need to evacuate (Copy GC terminology) if theap memory is long-lived. Evacuation logic is needed for each type. See [Bug #14858] for details. * array.c: Now, theap for T_ARRAY is supported. ary_heap_alloc() tries to allocate memory area from theap. If this trial sccesses, this array has theap ptr and RARRAY_TRANSIENT_FLAG is turned on. We don't need to free theap ptr. * ruby.h: RARRAY_CONST_PTR() returns malloc'ed memory area. It menas that if ary is allocated at theap, force evacuation to malloc'ed memory. It makes programs slow, but very compatible with current code because theap memory can be evacuated (theap memory will be recycled). If you want to get transient heap ptr, use RARRAY_CONST_PTR_TRANSIENT() instead of RARRAY_CONST_PTR(). If you can't understand when evacuation will occur, use RARRAY_CONST_PTR(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30mjit.c (free_list): clear .lengthnormal
For robustness against future changes. There should be no impact at the moment,here, but we may call mjit_finish more than once in a process lifetime in the future (implementing "stop" instead of just "pause") git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30* 2018-10-31svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30wercker.yml: try testing wercker againk0kubun
I don't think we fixed that, but if so, I would like to see more test failures. Previous failures didn't keep enough C-backtrace information about the failure and it's hard to debug for now. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30_mjit_compile_send.erb: do not inline tailcall ISeqk0kubun
because it's not supported by this file. Also, shared `def_iseq_ptr` instead of copying the main definition of it. vm_core.h: moved `def_iseq_ptr` to this place. added `inline` to avoid compiler warnings since it's not used in some files including vm_core.h. vm_insnhelper.c: moved `def_iseq_ptr` to vm_core.h. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30* expand tabs.svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30use RARRAY_AREF() instead of RARRAY_CONST_PTR().ko1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30process.c: implement rb_f_system without toggling ruby_nocldwaitnormal
Following how mjit_worker.c currently works, rb_f_system now ensures the VM-wide waitpid lists is locked before creating a new process via fork/vfork. This ensures other rb_waitpid callers cannot steal work and there are no possible race conditions from toggling ruby_nocldwait without the use of atomics. This sets us up for implementing MJIT process management logic using normal Ruby APIs prepares us for VM-wide asynchronous/event-base waitpid which can allow MJIT to work without worker threads. Take 2: set waitpid_state.pid on platforms w/o fork. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30revert r65434normal
http://mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-trunk/log/20181030T003541Z.fail.html.gz I have no chance of getting anything to work on proprietary platforms :< git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-29* expand tabs.svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65435 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-29process.c: implement rb_f_system without toggling ruby_nocldwaitnormal
Following how mjit_worker.c currently works, rb_f_system now ensures the VM-wide waitpid lists is locked before creating a new process via fork/vfork. This ensures other rb_waitpid callers cannot steal work and there are no possible race conditions from toggling ruby_nocldwait without the use of atomics. This sets us up for implementing MJIT process management logic using normal Ruby APIs prepares us for VM-wide asynchronous/event-base waitpid which can allow MJIT to work without worker threads. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-29use `rb_hash_new_compare_by_id()`.ko1
* vm_eval.c (local_var_list_init): use `rb_hash_new_compare_by_id()` directly instead of manipulating st_table. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-29* 2018-10-30svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-29* expand tabs.svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-29use RARRAY_AREF() instead of RARRAY_CONST_PTR().ko1
* class.c (rb_keyword_error_new): use RARRAY_AREF() because RARRAY_CONST_PTR() can introduce additional overhead in a futre. Same fixes for other files. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-29compile.c: fix up r65411kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-29time.c: [DOC] fix method names to refer class methods [ci skip]nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-29Mark up code inside link text as <code>nobu
Merged https://github.com/ruby/rdoc/pull/660 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-29less verbose code by sharing attribute definitionsshyouhei
The idea behind this commit is that handles_sp and leaf are two concepts that are not mutually independent. By making one explicitly depend another, we can reduces the number of lines of codes written, thus making things concise. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-29bare_instructions.rb: sort attributes [ci skip]shyouhei
This enhances stability of the generated source code (namely insns_info.inc) across attribute insertion / deletion. It does not change the compiled binary at all; just a bit of readability. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28Revert "Add test for cause on pty"naruse
This reverts commit r65422. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28* 2018-10-29svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28Add test for cause on ptynaruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28time.c: added Time::TM#+ and Time::TM#-nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28time.c: ignore 7th argnobu
* time.c (tm_initialize): allow 7th argument as well as Time#initialize, but just ignore. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28time.c: [DOC] add description and fix markups [ci skip]nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28appveyor.yml: fix wrong path to test directoryk0kubun
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28appveyor.yml: run test_open-uri separatelyk0kubun
on msys2 because it sometimes crashes worker like https://ci.appveyor.com/project/ruby/ruby/builds/19853558/job/8v1ehnv40bggiode git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28require fixtures/classes only when platform is windows.suke
* spec/ruby/library/win32ole/fixtures/classes.rb: remove rescue block because this file is required when platform is Windows. * spec/ruby/library/win32ole/win32ole/_getproperty_spec.rb: fixtures/classes is required when platform is Windows * spec/ruby/library/win32ole/win32ole/_invoke_spec.rb: ditto. * spec/ruby/library/win32ole/win32ole/codepage_spec.rb: ditto. * spec/ruby/library/win32ole/win32ole/connect_spec.rb: ditto. * spec/ruby/library/win32ole/win32ole/const_load_spec.rb: ditto. * spec/ruby/library/win32ole/win32ole/constants_spec.rb: ditto. * spec/ruby/library/win32ole/win32ole/create_guid_spec.rb: ditto. * spec/ruby/library/win32ole/win32ole/invoke_spec.rb: ditto. * spec/ruby/library/win32ole/win32ole/locale_spec.rb: ditto. * spec/ruby/library/win32ole/win32ole/new_spec.rb: ditto. * spec/ruby/library/win32ole/win32ole/ole_func_methods_spec.rb: ditto. * spec/ruby/library/win32ole/win32ole/ole_get_methods_spec.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28Refactoring. remove Internet Explorer.suke
* spec/ruby/library/win32ole/win32ole/ole_methods_spec.rb: refactoring. remove Internet Explorer. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28use MSXML.DOMDocument instead of InternetExplorer.Applicationsuke
* spec/ruby/library/win32ole/fixtures/event.xml use MSXML.DOMDocument instead of InternetExplorer.Application. InternetExplorer.Application is not available on some environments. Thanks to MSP-Greg (Greg L). * spec/ruby/library/win32ole/win32ole_event/on_event_spec.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28time.c: [DOC] fix rdoc-ref [ci skip]nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28use MSXML.DOMDocument instead of InternetExplorer.Application.suke
* spec/ruby/library/win32ole/win32ole_event/new_spec.rb: use MSXML.DOMDocument. InternetExplorer.Application is not available on some environments. Thanks to MSP-Greg (Greg L). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28use a rb_ function instead of st_ directly.ko1
* compile.c (ibf_dump_object_hash): use `rb_hash_foreach()` instead of using `st_foreach()`. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28use Scripting.Dictionary instead of InternetExplorer.Application.suke
* spec/ruby/library/win32ole/win32ole/shared/setproperty.rb: use Scripting.Dictionary. InternetExplorer.Application is not available on some environments. Thanks to MSP-Greg (Greg L). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28use Scripting.Dictionary instead of InternetExplorer.Application.suke
* spec/ruby/library/win32ole/win32ole/ole_put_methods_spec.rb: use Scripting.Dictionary. InternetExplorer.Application is not available on some enviroments. Thanks to MSP-Greg (Greg L). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28use Scripting.Dictionary instead of InternetExplorer.Application.suke
* spec/ruby/library/win32ole/win32ole/ole_methods_spec.rb: use Scripting Dictionary. InternetExplorer.Application is not available on some environments. Thanks to MSP-Greg (Greg L). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28use Scripting.Dictionary instead of InternetExplorer.Applicationsuke
* spec/ruby/library/win32ole/win32ole/ole_obj_help_spec.rb: use Scripting.Dictionary. InternetExplorer.Application is not available on some environments. Thanks to MSP-Greg (Greg L). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28time.c: [DOC] about timezone arguemnt [ci skip]nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28use Scripting.Dictionary instead of InternetExplorer.Applicationsuke
* spec/ruby/library/win32ole/win32ole/ole_method_spec.rb: recuire in platform_is block. * spec/ruby/library/win32ole/win32ole/ole_func_methods_spec.rb: ditto. * spec/ruby/library/win32ole/win32ole/shared/ole_method.rb: use Scripting.Dictionary. InternetExplorer.Application is not available on some environments. Thanks to MSP-Greg (Greg L). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28NEWS: codify keywords and callback methods [ci skip]nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28rdoc/parser/c.rb: ignore dynamically added methodsnobu
* lib/rdoc/parser/c.rb (RDoc::Parser::C#deduplicate_call_seq): skip dynamically added methods at runtime, because the class name is unknown and the defined methods are not accessible from that class. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28revert r65401k0kubun
Because it does break Linux CI like: https://gist.github.com/ko1/2c561f9185492f339cf7a763ea219e79 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28remove rescue block when win32ole is requiredsuke
* spec/ruby/library/win32ole/fixtures/classes.rb: remove rescue block because this file is required on Windows only. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28use Scripting.Dictionary instead of InternetExplorer.Applicationsuke
* spec/ruby/library/win32ole/win32ole/ole_func_methods_spec.rb: use Scripting.Dictionary. InternetExplorer.Application is not available on some environment. Thanks to MSP-Greg (Greg L). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-27use Scripting.Dictionary instead of InternetExplorer.Application.suke
* spec/ruby/library/win32ole/invoke_spec.rb: use Scripting.Dictionary instead of InternetExplorer.Application. InternetExplorer.Application is not available on some environment. Thanks to MSP-Greg (Greg L). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-27use Scripting.Dictionary instead of InternetExplorer.Application forsuke
_getproperty spec. * spec/ruby/library/win32ole/_getproperty_spec.rb: use Scripting.Dictionary. InternetExplorer.Application is not available on some environment. (Thanks to MSP-Greg (Greg L)) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-27fix testnaruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-27fix error message and backtrace ordernaruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e