aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* fix parennobu2017-03-081-1/+1
| | | | | | * string.c (str_byte_substr): fix misplaced parenthesis at r56155. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: preserve class name encoding in Proc#to_snobu2017-03-082-17/+13
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* re-introduce __builtin_add_overflowshyouhei2017-03-083-25/+20
| | | | | | | | | | | | | r57789 (74cdd89) was gradually "improve"d by naruse through r57793 to r57806, resulted in reverting the efect of r57789 while retaining its complexity. I think the current situation is slightly worse than before (same output complicated source code). Here I introduce __builtin_add_overflow again, which (I think) is what naruse wanted to do in r57793. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57807 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Always use old RB_FIXABLE to allow double as argumentnaruse2017-03-071-5/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57806 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert r57803 "Avoid to cast the argument"naruse2017-03-071-1/+1
| | | | | | __builtin_add_overflow doesn't support double. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2017-03-08svn2017-03-071-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Avoid to cast the argumentnaruse2017-03-071-1/+1
| | | | | | For 32bit environment and __int128 use cases. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: [DOC] Fix a typo in String#dumpkazu2017-03-071-1/+1
| | | | | | | [Fix GH-1531][ci skip] Author: Alex Semyonov <alex@semyonov.us> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: remove tracenobu2017-03-072-1/+10
| | | | | | | | * parse.y (reg_named_capture_assign_iter): do not insert trace instructions before local variable assinments. putobject is expected at first. [ruby-core:79940] [Bug #13287] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: negation of LONG_MINnobu2017-03-072-2/+6
| | | | | | | * string.c (rb_str_update): do not use negation of LONG_MIN, which is negative too. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: fix integer overflownobu2017-03-071-1/+1
| | | | | | | | | * string.c (str_byte_substr): fix another integer overflow which can happen only when SHARABLE_MIDDLE_SUBSTRING is enabled. [ruby-core:79951] [Bug #13289] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Use RB_POSFIXABLE and RB_NEGFIXABLE to avoid cast introduced at r57793naruse2017-03-071-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: fix integer overflownobu2017-03-071-1/+1
| | | | | | | | * string.c (rb_str_subpos): fix integer overflow which can happen only when SHARABLE_MIDDLE_SUBSTRING is enabled. incorpolate https://github.com/mruby/mruby/commit/7db0786abdd243ba031e24683f git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* suppress warning: shadowing outer local variable - enaruse2017-03-071-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Supress warning: instance variable @repeat_count not initializednaruse2017-03-071-0/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix up r57788, Function is removed at readline-6.3.hsbt2017-03-071-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57794 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Use ADD instead of MULnaruse2017-03-072-22/+5
| | | | | | | | | | | | | | | | * On recent CPUs, 2-operand MUL's latency is 3 cycle but ADD is 1 cycle. * clang Optimizes `MUL rax,2` into `ADD rax,rax` but gcc7 doesn't. * LONG2FIX is compiled into `lea r14,[r15+r15*1+0x1]`; this is 1cycle and run in parallel if the branch prediction is correct. * Note that old (RB_POSFIXABLE(f) && RB_NEGFIXABLE(f)) is usually uses following instructions. * movabs rax,0x4000000000000000 * add rax,rdi * js It needs large immediate and Macro-Fusion is not applied. ADD and JO is much smaller though it is also Macro-Fusion unfriendly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix macro namenobu2017-03-071-2/+2
| | | | | | | | | | * tool/instruction.rb (VmBodyGenerator#make_header_prepare_stack): REG_CFP has been prefixed with VM_ at r56609. [Bug #12527] * tool/instruction.rb (VmBodyGenerator#make_footer_stack_val): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2017-03-07svn2017-03-061-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c: [DOC] open mode can be an integer; fix rdoc syntaxstomar2017-03-061-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* optimize FIXABLE macroshyouhei2017-03-068-42/+71
| | | | | | | | | | | | Looking at the source code, FIXABLE tends to be just before LOING2FIX to check applicability of that operation. Why not try computing first then check for overflow, which should be optimial. I also tried the same thing for unsigned types but resulted in slower execution. It seems RB_POSFIXABLE() is fast enough on modern CPUs. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Avoid to warning of clang with -Wincompatible-pointer-types.hsbt2017-03-061-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57788 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* readline.c: fix waiting fucntionnobu2017-03-061-1/+1
| | | | | | | * ext/readline/readline.c (getc_body): use rb_w32_wait_events_blocking in block region. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* LONG_LONG_MAX not always availableshyouhei2017-03-061-1/+1
| | | | | | | | | I was not aware of cases when LONG_LONG_MAX is undefined. Sorry. Signed-off-by: Urabe, Shyouhei <shyouhei@ruby-lang.org> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* opt_eq_func refactornobu2017-03-063-24/+24
| | | | | | | | | | * vm_insnhelper.c (opt_eq_func): method to dispatch is resolved by only the receiver's class, not including the argument class. even if basic operation is redefined, other class conditions never meet. optimize Float and non-Float case, delegate to rb_float_equal directly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* use HAVE_BUILTIN___BUILTIN_MUL_OVERFLOWshyouhei2017-03-063-4/+32
| | | | | | | | | | | | | | | | | | | We already check for __builtin_mul_overflow in configure but never actually referred it before. Why not call it if available, because that should render supposedly-optimial assembly outputs. Optionally if __builtin_mul_overflow_p is available, which is the case for recent GCC, use that to detect fixnum overflow. This is much faster than the previous. On my machine generated assembly of numeric.c:int_pow reduces from 480 to 448 bytes, according to nm(1). Also on my machine, following script boosts from 7.819 to 6.929 sec. time ./miniruby -e 'i=0; while i < 30_000_000 do i += 1; 7 ** 23; end' Signed-off-by: Urabe, Shyouhei <shyouhei@ruby-lang.org> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* compile.c: variable typenobu2017-03-051-1/+1
| | | | | | | | * compile.c (iseq_compile_each): fix variable type, use VALUE for Symbol. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?revision=57772&view=revision git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2017-03-06svn2017-03-051-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* docs for IO.{write,read}stomar2017-03-051-32/+35
| | | | | | | | | | | | * io.c: [DOC] improve docs for IO * IO.{write,read}: fix errors (:open_args is not an array of strings, it might include a perm or options hash argument; IO.write has no length argument, drop corresponding statement), improve formatting, call-seq, grammar. * IO#sync=: remove unnecessary "produces no output". * other improvements. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57781 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* docs for IO#printstomar2017-03-051-10/+12
| | | | | | | | * io.c: [DOC] split documentation for IO#print into smaller paragraphs, delete duplicate sentence, fix call-seq. Based on a patch by Dario Daic. [ruby-core:78291] [Bug #12975] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: more accuracynobu2017-03-051-1/+1
| | | | | | | * math.c (math_log10): calculate log10(2) for more accuracy. [ruby-core:79907] [Bug #13279] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: [DOC] fix doc formatting for String#==, #===stomar2017-03-041-3/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57778 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* rdoc for String classstomar2017-03-041-0/+2
| | | | | | | * lib/unicode_normalize.rb: [DOC] prevent a comment from showing up in the class documentation for String. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2017-03-05svn2017-03-041-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57776 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* nodoc OptParsestomar2017-03-041-1/+2
| | | | | | | | * lib/optparse.rb: [DOC] nodoc OptParse, introduced with r46126, to avoid leaking of its documentation (OptionParser's docs) into the class documentation of Object. [ruby-core:79909] [Bug #13281] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* compile.c: operand size checknobu2017-03-041-2/+4
| | | | | | | * compile.c (ibf_load_code): raise an exception on invalid operand size. should not use assert() to validate incoming data. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* compile.c: memory leaknobu2017-03-041-8/+17
| | | | | | | * compile.c (iseq_set_sequence): fix potential memory leaks on an invalid instruction sequence. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57773 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* compile.c: fix invalid label messagenobu2017-03-041-2/+2
| | | | | | | * compile.c (validate_label): fix invalid label message. registered labels are Symbols, not IDs. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* documentation for sort methodsstomar2017-03-042-9/+10
| | | | | | | | * array.c: [DOC] fix grammar in Array#sort, #sort!, #sort_by!, move references below the code example, add a missing reference. * enum.c: [DOC] fix grammar in Enumerable#sort, #sort_by. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* enum.c: documentation for Enumerable#sort_bystomar2017-03-041-10/+14
| | | | | | | | * enum.c: [DOC] improve structure of docs for Enumerable#sort_by, adopt explanation of the comparison block from Array#sort_by, drop mention of 1.8, fix typos. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* readline.c: fix typenobu2017-03-041-4/+5
| | | | | | | * ext/readline/readline.c (getc_body): fix variable type, and extract _get_osfhandle. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57769 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2017-03-04svn2017-03-031-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c: documentation for putsstomar2017-03-031-4/+5
| | | | | | | | * io.c: [DOC] clarify that the 'record separator' between arguments passed to 'puts' is always a newline. Based on a patch by Mark Amery. [ruby-core:65801] [Misc #10403] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* zlib for mingwnobu2017-03-031-3/+24
| | | | | | | * ext/zlib/extconf.rb: fix building zlib for mingw, and for cross-compiling. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c: documentation for Proc#{call,yield,[]}stomar2017-03-031-22/+19
| | | | | | | | | | | | | | * proc.c: [DOC] fix and improve docs for Proc#{call,yield,[]}: * change order of Document-method directives as workaround for an RDoc rendering problem where the documentation for Proc#call displays a "Document-method: []" code block. [ruby-core:79887] [Bug #13273] * add missing call-seq and example for Proc#yield * remove pointless cross reference to Proc#yield * update description for handling of extra or missing arguments, improve examples and add cross reference to #lambda? git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57765 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* MINIRUBY for cross-complingnobu2017-03-032-2/+5
| | | | | | | * template/configure-ext.mk.tmpl (EXTMK_ARGS): add MINIRUBY for cross-compling, which is used in extmk.rb. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix for mingw64nobu2017-03-031-0/+4
| | | | | | | * util.c: define MINGW_HAS_SECURE_API for qsort_s on recent mingw64. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* broken mingwnobu2017-03-032-9/+36
| | | | | | | | | * configure.in: check whether frexp and modf are broken. * include/ruby/win32.h (frexp, modf): ignore bad declarations when compiling as C++. [ruby-core:79859] [Bug #13267] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [DOC] update doc.akr2017-03-021-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2017-03-03svn2017-03-021-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e