aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* process.c: temporary string for buffernobu2017-05-101-14/+12
| | | | | | | | * process.c (obj2uid, obj2gid): use temporary string as the buffer instead of `rb_alloc_tmp_buffer`, which is `NODE_ALLOCA` since r51492. [ruby-core:81084] [Bug #13554] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Show garbages if requiring gem_runner is failednaruse2017-05-101-1/+10
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58657 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2017-05-11svn2017-05-101-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/uri/generic.rb: fix typosstomar2017-05-101-1/+1
| | | | | | | * lib/uri/generic.rb: [DOC] fix typos in URI::Generic#== docs. Patch by Alyssa Ross (alyssais). [Fix GH-1604] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Use environment values to find ruby and flags instead of an argumenteregon2017-05-102-3/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58654 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Use ruby_cmd instead of the RUBY_EXE constant in specseregon2017-05-102-19/+17
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c: check of size in ruby_sized_xreallocnobu2017-05-101-1/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Use the Mutex to know whether we entered the signal handler in Process#kill ↵eregon2017-05-101-7/+4
| | | | | | specs git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Process.getpgrp and Process.setsid must be available for Process#kill group ↵eregon2017-05-101-3/+3
| | | | | | specs git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Use #system directly with multiple arguments in Process#kill specseregon2017-05-101-3/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* confirm current process equals to gemhome's pidnaruse2017-05-101-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_exception.rb: test_machine_stackoverflow_by_tracenobu2017-05-102-24/+24
| | | | | | | * test/ruby/test_exception.rb (test_machine_stackoverflow_by_trace): move from test_trace.rb and rename, to be excluded by the default. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* adjust styles [ci skip]nobu2017-05-105-21/+35
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c (ruby_lgamma_r): reduce duplicate codenobu2017-05-101-5/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/thread: relax internal implementation check in error messagenormal2017-05-092-2/+2
| | | | | | | | | | | | | | Queue, SizedQueue, and ConditionVariable internal implementation should not be tied to using arrays. Implementation details can change and I am working on a change to remove the dependency on arrays (as others may attempt, too) by using ccan/list for the waiter list. * test/thread/test_cv.rb (test_dump): remove check for Array * test/thread/test_queue.rb (test_dump): ditto [ruby-core:81001] [Misc #13541] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: fix docs for %Z formatstomar2017-05-091-2/+2
| | | | | | | | | | * ext/date/date_core.c: [DOC] fix documentation for %Z format of {Date,DateTime}.strftime. Reported by Damon Timm. Based on a patch by nano. [ruby-core:79602] [Bug #13231] [Fix GH-1565] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dump stub specifications if nilnaruse2017-05-091-0/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58642 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: brace after literal argnobu2017-05-092-4/+16
| | | | | | | | | | * parse.y (symbol, dsym, parser_set_number_literal, parser_yylex): set state to END too not only ENDARG and after a literal, so that a left brace after it should be a primary block bound to the literal, which causes syntax error. [ruby-core:81037] [Bug #13547] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: do after cmdarg in parennobu2017-05-092-1/+5
| | | | | | | | | * parse.y (parser_yylex): set state to ENDARG after a string literal, so that `do` after a literal should be `do_block` and bound to the outer method, as well as a numeric/symbol literal. [ruby-core:72482] [Bug #11873] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2017-05-10svn2017-05-091-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_syntax.rb: test_brace_after_local_variablenobu2017-05-091-0/+9
| | | | | | | * test/ruby/test_syntax.rb (test_brace_after_local_variable): another test using braces. [Bug #11873] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: fix r58618nobu2017-05-091-1/+2
| | | | | | | * string.c (unicode_normalize_common): aggregation type cannot be initialized with dynamic values, in C89. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* replace hand-written argument check by call to rb_scan_args in ↵duerst2017-05-091-6/+3
| | | | | | | | | | | unicode_normalize_common In string.c, replace hand-written argument count check by call to rb_scan_args. This allows to use rb_funcallv once, rather than using rb_funcall twice. Thanks to Hanmac (Hans Mackowiak) for the idea, see https://bugs.ruby-lang.org/issues/11078#note-7. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* add explanations about status of module UnicodeNormalizeduerst2017-05-091-0/+15
| | | | | | | | | In lib/unicode_normalize/normalize.rb, add explanations and clarifications about the status of the files and the module. [ci skip] This is in response to discussions at https://github.com/ruby/spec/pull/433 and https://bugs.ruby-lang.org/issues/5481#note-58. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add one more guard to avoid mixing nil into latest_specsnaruse2017-05-091-0/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fixup r58614 for raspi3 and maybe other systems with odd compilenormal2017-05-093-5/+5
| | | | | | [ruby-core:81048] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* rb_execution_context_t: move stack, stack_size and cfp from rb_thread_tnormal2017-05-0921-224/+236
| | | | | | | | | | The goal is to reduce rb_context_t and rb_fiber_t size by removing the need to store the entire rb_thread_t in there. [ruby-core:81045] Work-in-progress: soon, we will move more fields here. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Ignore fail on non empty ext and gems [ci skip]nobu2017-05-091-1/+1
| | | | | | | | * Makefile.in ({ext,gems}/{distclean,realclean}): ignore fail on removal of non empty directories. these directories should not be empty when in-place build. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2017-05-09svn2017-05-081-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add mspec and rubyspec to LEGAL [ci skip]kazu2017-05-081-0/+26
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Translate missing rdoc comment for opt_send_without_block.hsbt2017-05-081-1/+1
| | | | | | fix [GH-1608], Patch by @k0kubun git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* separate constdefs.c and constdefs.hnobu2017-05-081-1/+3
| | | | | | | * ext/socket/depend: separate constdefs.c and constdefs.h so that only one process will run when parallel building. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* reduce rb_mutex_t size from 80 bytes to 72 bytes on 64-bitnormal2017-05-081-5/+9
| | | | | | | | | | | | | We can use existing RVALUE flags to avoid adding a 4-byte integer to store a boolean flag. This integer cost us 8 bytes due to default (lack of) struct packing on x86-64 * thread_sync.c (MUTEX_ALLOW_TRAP): define as FL_USER1 (struct rb_mutex_struct): remove allow_trap (rb_mutex_lock): adjust for flag check (rb_mutex_allow_trap): adjust for flag set/unset git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * properties.svn2017-05-080-0/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/bm_vm2_fiber_switch.rb: check for fiber performancenormal2017-05-081-0/+9
| | | | | | | | There are currently no benchmarks for Fiber performance, I should've committed this years ago when [Feature #10341] was implemented. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2017-05-08svn2017-05-081-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* reduce rb_mutex_t size from 160 to 80 bytes on 64-bitnormal2017-05-082-100/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of relying on a native condition variable and mutex for every Ruby Mutex object, use a doubly linked-list to implement a waiter queue in the Mutex. The immediate benefit of this is reducing the size of every Mutex object, as some projects have many objects requiring synchronization. In the future, this technique using a linked-list and on-stack list node (struct mutex_waiter) should allow us to easily transition to M:N threading model, as we can avoid the native thread dependency to implement Mutex. We already do something similar for autoload in variable.c, and this was inspired by the Linux kernel wait queue (as ccan/list is inspired by the Linux kernel linked-list). Finaly, there are big performance improvements for Mutex benchmarks, especially in contended cases: measure target: real name |trunk |built ----------------|------:|------: loop_whileloop2 | 0.149| 0.148 vm2_mutex* | 0.893| 0.651 vm_thread_mutex1| 0.809| 0.624 vm_thread_mutex2| 2.608| 0.628 vm_thread_mutex3| 28.227| 0.881 Speedup ratio: compare with the result of `trunk' (greater is better) name |built ----------------|------: loop_whileloop2 | 1.002 vm2_mutex* | 1.372 vm_thread_mutex1| 1.297 vm_thread_mutex2| 4.149 vm_thread_mutex3| 32.044 Tested on AMD FX-8320 8-core at 3.5GHz * thread_sync.c (struct mutex_waiter): new on-stack struct (struct rb_mutex_struct): remove native lock/cond, use ccan/list (rb_mutex_num_waiting): new function for debug_deadlock_check (mutex_free): remove native_*_destroy (mutex_alloc): initialize waitq, remove native_*_initialize (rb_mutex_trylock): remove native_mutex_{lock,unlock} (lock_func): remove (lock_interrupt): remove (rb_mutex_lock): rewrite waiting path to use native_sleep + ccan/list (rb_mutex_unlock_th): rewrite to wake up from native_sleep using rb_threadptr_interrupt (rb_mutex_abandon_all): empty waitq * thread.c (debug_deadlock_check): update for new struct (rb_check_deadlock): ditto [ruby-core:80913] [Feature #13517] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* relative path as VPATHnobu2017-05-071-2/+2
| | | | | | | * common.mk (ripper.c): use relative path as VPATH instead of absolute path of the current working directory. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58603 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: export rb_parser_fatal for rippernobu2017-05-071-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58602 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* stale targetsnobu2017-05-073-39/+4
| | | | | | * common.mk (update-mspec, update-rubyspec): empty stale targets. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58601 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* extract prereq.statusnobu2017-05-072-32/+55
| | | | | | | * tool/make-snapshot (package): extract static config values for prereq and override dynamic values at runtime. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58600 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update specs to follow newlines added by r58596eregon2017-05-073-3/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Rename spec/README to spec/README.mderegon2017-05-071-0/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * properties.svn2017-05-070-0/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58597 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * remove trailing spaces, append newline at EOF.svn2017-05-0730-31/+37
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add in-tree mspec and ruby/speceregon2017-05-074645-4/+230678
| | | | | | | | | | | * For easier modifications of ruby/spec by MRI developers. * .gitignore: track changes under spec. * spec/mspec, spec/rubyspec: add in-tree mspec and ruby/spec. These files can therefore be updated like any other file in MRI. Instructions are provided in spec/README. [Feature #13156] [ruby-core:79246] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58595 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* make update-rubyspec is no longer needederegon2017-05-072-8/+4
| | | | | | * Kept a no-op for compatibility. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update README about ruby/speceregon2017-05-071-31/+79
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * spec/default.mspec: only require rbconfig if is it not already.eregon2017-05-071-1/+1
| | | | | | Useful when running spec/mspec/bin/mspec directly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_core.h (rb_thread_t): use 32-bit running_time_usnormal2017-05-072-3/+3
| | | | | | | | | | | | | | | | | | | | The current range based current values of: TIME_QUANTUM_USEC=100000 RUBY_THREAD_PRIORITY_MAX=3 RUBY_THREAD_PRIORITY_MIN=-3 Gives a range of 12500..800000, plenty enough for a 32-bit integer. Clamping this also reduces potential implementation bugs between 32-bit and 64-bit platforms. I may consider a further reduction to uint16_t in the future for M:N threading, but some users may want slightly larger time quantums. * vm_core.h (rb_thread_t): use 32-bit running_time_us git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e