aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* * vm_core.h: separate rb_iseq_body into rb_iseq_constant_body andko12015-07-225-29/+40
| | | | | | | | | | | | rb_iseq_variable_body (rb_iseq_t::variable_body). rb_iseq_variable_body can be modified after compilation. * compile.c: use rb_iseq_t::variable_body. * iseq.c: ditto. * thread.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/webrick/test_utils.rb (TestWEBrickUtils#test_nested_timeout_outer): seemsusa2015-07-221-2/+2
| | | | | | | to be too short for mswin CI. fixed occasional failure introduced at r51235. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/matrix/eigenvalue_decomposition.rb: refine code style.hsbt2015-07-222-1/+6
| | | | | | [fix GH-959][ci skip] Patch by @bogdanvlviv git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: fix execnobu2015-07-221-6/+6
| | | | | | | * common.mk: fix macro name, exec but not EXEC. pointed by @nagachika. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_range.rb: Add test case for Range#end withhsbt2015-07-222-0/+6
| | | | | | exclude_end true case. [fix GH-968] Pach by @yui-knk git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix doc for Numeric#coerce [ci skip]nobu2015-07-222-1/+6
| | | | | | | * numeric.c (num_coerce): [DOC] fix doc for Numeric#coerce, missing '+'. [Fix GH-974] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in: PIC lex.cnobu2015-07-224-56/+149
| | | | | | * Makefile.in (lex.c): make position independent table. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: call rb_intern2nobu2015-07-221-1/+1
| | | | | | | * parse.y (parse_ident): call rb_intern2 with the known length instead of strlen(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: add execnobu2015-07-221-6/+6
| | | | | | * common.mk: add exec to quoted commands. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51331 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: return the errornobu2015-07-221-0/+1
| | | | | | | * thread.c (rb_wait_for_single_fd): return the error when ppoll failed. fix r51319. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* follow r51064naruse2015-07-211-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51329 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* suppress warningsnaruse2015-07-211-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51328 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * make rb_iseq_t T_IMEMO object (type is imemo_iseq).ko12015-07-2125-1138/+1155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All contents of previous rb_iseq_t is in rb_iseq_t::body. Remove rb_iseq_t::self because rb_iseq_t is an object. RubyVM::InstructionSequence is wrapper object points T_IMEMO/iseq. So RubyVM::ISeq.of(something) method returns different wrapper objects but they point the same T_IMEMO/iseq object. This patch is big, but most of difference is replacement of iseq->xxx to iseq->body->xxx. (previous) rb_iseq_t::compile_data is also located to rb_iseq_t::compile_data. It was moved from rb_iseq_body::compile_data. Now rb_iseq_t has empty two pointers. I will split rb_iseq_body data into static data and dynamic data. * compile.c: rename some functions/macros. Now, we don't need to separate iseq and iseqval (only VALUE). * eval.c (ruby_exec_internal): `n' is rb_iseq_t (T_IMEMO/iseq). * ext/objspace/objspace.c (count_imemo_objects): count T_IMEMO/iseq. * gc.c: check T_IMEMO/iseq. * internal.h: add imemo_type::imemo_iseq. * iseq.c: define RubyVM::InstructionSequnce as T_OBJECT. Methods are implemented by functions named iseqw_.... * load.c (rb_load_internal0): rb_iseq_new_top() returns rb_iseq_t (T_IMEMO/iesq). * method.h (rb_add_method_iseq): accept rb_iseq_t (T_IMEMO/iseq). * vm_core.h (GetISeqPtr): removed because it is not T_DATA now. * vm_core.h (struct rb_iseq_body): remove padding for [Bug #10037][ruby-core:63721]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/objspace/objspace.c (total_i): no need to skip singleton classes.ko12015-07-212-3/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h: constify rb_call_info_t::kw_arg,ko12015-07-215-9/+20
| | | | | | | | | | | rb_control_frame_t::iseq and rb_control_frame_t::block_iseq. * iseq.c (iseq_free): catch up this fix. * vm.c: ditto. * vm_dump.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51325 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix ChangeLogko12015-07-211-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h: constify rb_call_info_t::blockiseq and rb_iseq_t::iseq.ko12015-07-215-10/+19
| | | | | | | | | | * vm.c, vm_insnhelper.c: catch up this fix. * iseq.c (iseq_data_to_ary): constify the first iseq parameter. * vm_insnhelper.c (vm_make_proc_with_iseq): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * method.h: constify rb_method_iseq_t::iseqptr.ko12015-07-214-5/+13
| | | | | | | | | * proc.c (rb_method_entry_min_max_arity): catch up this fix. * vm_insnhelper.c (def_iseq_ptr): constify. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-07-22svn2015-07-211-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (internal_object_p): Now a singleton classes appear byko12015-07-213-3/+23
| | | | | | | | | ObjectSpace.each_object. [Bug #11360] * test/ruby/test_objectspace.rb: add a test about it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51320 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: refactor a loopnobu2015-07-212-81/+85
| | | | | | | | * thread.c (do_select): replace switch and goto with a loop to suppress maybe-uninitialized warnings by gcc6. * thread.c (set_unblock_function, rb_wait_for_single_fd): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_range.rb: Add test for Range#hashhsbt2015-07-212-0/+7
| | | | | | [fix GH-969] Patch by @yui-knk git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.sub: UNREACHABLEnobu2015-07-211-0/+1
| | | | | | * win32/Makefile.sub (config.h): define UNREACHABLE by __assume. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* console.c: undefined vknobu2015-07-213-3/+493
| | | | | | | * ext/io/console/console.c (console_key_pressed_p): raise undefined virtual key code. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* cont.c: CreateFiberEx fallbacknobu2015-07-211-0/+4
| | | | | | | * cont.c (fiber_initialize_machine_stack_context): fallback definition of CreateFiberEx for VC6. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51315 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32.c: symlink constants fallbacknobu2015-07-211-0/+11
| | | | | | | * win32/win32.c (rb_w32_wreadlink): define symlink constants for VC6. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby/missing.h: M_PI fallback definitionnobu2015-07-213-4/+8
| | | | | | | * include/ruby/missing.h (M_PI, M_PI_2): fallback definitions for VC6. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby/win32.h: include windows.hnobu2015-07-213-0/+9
| | | | | | | | * include/ruby/win32.h: include windows.h before winsock2.h, because mswsock.h included by the former uses SOCKET defined after it in the latter. fix a build failure with VC6. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c: constify the first parameter (iseq).ko12015-07-214-4/+12
| | | | | | | | | | * iseq_add_mark_object() * iseq_add_mark_object_compile_time() * iseq.c, iseq.h (rb_iseq_add_mark_object): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/socket/test_nonblock.rb: increase buffer sizes to OpenBSD limitsnormal2015-07-212-2/+8
| | | | | | | | * test/socket/test_nonblock.rb: increase buffer sizes to OpenBSD limits. Thanks to Jeremy Evans <code@jeremyevans.net> [ruby-core:70058] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51310 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* load.c (ruby_dln_librefs): make staticnormal2015-07-212-1/+5
| | | | | | | This isn't used outside of load.c, so there appears to be no reason to expose it to other modules. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix typo in OptionParser#complete docs [ci skip]nobu2015-07-212-1/+5
| | | | | | * lib/optparse.rb (complete): [DOC] fix typo. [Fix GH-973] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_process.rb: split a testnobu2015-07-211-1/+11
| | | | | | | * test/ruby/test_process.rb (test_execopts_popen): split into 3 tests, no other redirections, stdio, and other fds. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-07-21svn2015-07-201-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c: IO.copy_stream uses poll on Linuxnormal2015-07-202-1/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | poll and ppoll have a superior API which doesn't require the kernel to scan a potentially large bitmap to find a high-numbered FD [ruby-core:35572]. So favor using poll in case IO.copy_stream encounters a non-blocking FD. We cannot reliably use poll on most OSes, because file types (e.g. FIFOs) which work with select may not work with poll. Fortunately, Linux uses a common notification mechanism between all select/poll/epoll variants, so all file types are equally supported between the notification mechanisms. Verified by watching strace on the following scripts: *** maygvl_copy_stream_wait_read *** require 'io/nonblock' r, w = IO.pipe r.nonblock = true IO.copy_stream(r, "/dev/null") *** nogvl_copy_stream_wait_write *** require 'io/nonblock' r, w = IO.pipe w.nonblock = true IO.copy_stream("/dev/zero", w) * io.c (nogvl_wait_for_single_fd): new function for Linux (maygvl_copy_stream_wait_read): Linux-specific version (nogvl_copy_stream_wait_write): use nogvl_wait_for_single_fd [ruby-core:70051] [Feature #11377] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y (parser_initialize): avoid redundant zero-ingnormal2015-07-202-34/+6
| | | | | | | | | | | | | TypedData_Make_Struct already initializes fields to zero by default, so there's no need to waste code re-zeroing them. Size reduction on 32-bit x86: text data bss dec hex filename 187231 2372 80 189683 2e4f3 parse.o.before 186939 2372 80 189391 2e3cf parse.o git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y (ripper_initialize): fixup r51302normal2015-07-201-1/+1
| | | | | | | Missed eofp bitfield change in ripper_initialize in r51302 :x ("parse.y (struct parser_params): pack to 4 cache lines on x86-64") git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y (struct parser_params): pack to 4 cache lines on x86-64normal2015-07-202-17/+22
| | | | | | | | | | | This reduces the struct from 256 (from 288) bytes on my x86-64 system, allowing the struct to fit cleanly into 4 cache lines (if a malloc implementation allows it). * parse.y (struct parser_params): pack: 88 => 256 bytes on 64-bit [ruby-core:70034] [Feature #11371] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: reuse tagnobu2015-07-201-17/+20
| | | | | | | * thread.c (rb_thread_terminate_all): reuse the tag pushed before a loop, instead of pushing/popping same tag repeatedly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51301 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby_vm_throw_flagsnobu2015-07-203-8/+15
| | | | | | * vm_core.h (ruby_vm_throw_flags): constants for throw. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-07-20svn2015-07-191-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: fix timeout limitnobu2015-07-191-5/+5
| | | | | | | * thread.c (ppoll): fix the limit, timeout argument of poll(2) is an int but not a time_t. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* pty.c: fix example typo [ci skip]nobu2015-07-192-1/+6
| | | | | | | * ext/pty/pty.c: [DOC] fix example typo, an old name at move from PTY.open. [Fix GH-972] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-07-19svn2015-07-191-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c: check tag valuenobu2015-07-192-1/+7
| | | | | | * eval.c (rb_jump_tag): paranoiac check of tag value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* load.c: use TAG_RETURNnobu2015-07-181-5/+4
| | | | | | * load.c (rb_require_internal): use TAG_RETURN not a magic number. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: gather common statementsnobu2015-07-182-5/+10
| | | | | | | * thread.c (vm_check_ints_blocking): gather common statements at the end, and prefer LIKELY for Visual C optimization. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* load.c: reduce EXEC_TAGsnobu2015-07-182-9/+33
| | | | | | | | * load.c (rb_load_internal0): do not raise any exceptions but return the result tag state. * load.c (rb_load_protect): reduce nested EXEC_TAGs. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c: reduce EXEC_TAGsnobu2015-07-182-18/+21
| | | | | | | * gc.c (run_finalizer): set and restore safe level here to reduce nested EXEC_TAGs. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c: extra conversion of exit statusnobu2015-07-182-17/+13
| | | | | | | | * eval.c (ruby_cleanup): error_handle() returns exit status to the system, not internal error state, do not convert the exit status again. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e