aboutsummaryrefslogtreecommitdiffstats
path: root/ext
Commit message (Collapse)AuthorAgeFilesLines
* ext/-test-/bug-14834/bug-14384.c: fallback for MAYBE_UNUSEDYusuke Endoh2019-08-011-0/+4
| | | | | __unused__ is unavailable on Sun C. https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris11s-sunc/ruby-master/log/20190801T112505Z.fail.html.gz
* fix VC 2013 compile error卜部昌平2019-08-011-2/+2
| | | | | It seems the compiler does not support VLAs. See also: https://ci.appveyor.com/project/ruby/ruby/builds/26392589/job/px6nuiuw4e78weg1
* fix tracepoint + backtrace SEGV卜部昌平2019-08-013-0/+51
| | | | | | | | | | | | PC modification in gc_event_hook_body was careless. There are (so to say) abnormal iseqs stored in the cfp. We have to check sanity before we touch the PC. This has not been fixed because there was no way to (ab)use the setup from pure-Ruby. However by using our official C APIs it is possible to touch such frame(s), resulting in SEGV. Fixes [Bug #14834].
* * expand tabs.git2019-07-311-1/+1
|
* Use 1 byte hint for ar_table [Feature #15602]Koichi Sasada2019-07-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On ar_table, Do not keep a full-length hash value (FLHV, 8 bytes) but keep a 1 byte hint from a FLHV (lowest byte of FLHV). An ar_table only contains at least 8 entries, so hints consumes 8 bytes at most. We can store hints in RHash::ar_hint. On 32bit CPU, we use 4 entries ar_table. The advantages: * We don't need to keep FLHV so ar_table only consumes 16 bytes (VALUEs of key and value) * 8 entries = 128 bytes. * We don't need to scan ar_table, but only need to check hints in many cases. Especially we don't need to access ar_table if there is no match entries (in many cases). It will increase memory cache locality. The disadvantages: * This technique can increase `#eql?` time because hints can conflicts (in theory, it conflicts once in 256 times). It can introduce incompatibility if there is a object x where x.eql? returns true even if hash values are different. I believe we don't need to care such irregular case. * We need to re-calculate FLHV if we need to switch from ar_table to st_table (e.g. exceeds 8 entries). It also can introduce incompatibility, on mutating key objects. I believe we don't need to care such irregular case too. Add new debug counters to measure the performance: * artable_hint_hit - hint is matched and eql?#=>true * artable_hint_miss - hint is not matched but eql?#=>false * artable_hint_notfound - lookup counts
* [ruby/io-console] Do not use add_development_dependencyNobuyoshi Nakada2019-07-251-4/+1
| | | | https://github.com/ruby/io-console/commit/bc77f46391
* [ruby/psych] Get rid of C90 featureNobuyoshi Nakada2019-07-251-1/+2
| | | | | | | | | | | | | | | For ruby 2.6 and earlier. https://travis-ci.org/ruby/psych/jobs/562435717#L245-L248 ``` ../../../../ext/psych/psych_parser.c: In function ‘make_exception’: ../../../../ext/psych/psych_parser.c:87:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] VALUE ePsychSyntaxError = rb_const_get(mPsych, rb_intern("SyntaxError")); ^ ``` https://github.com/ruby/psych/commit/aa457443b8
* [ruby/psych] Deduplicate hash keys if they're stringsJean Boussier2019-07-251-1/+23
| | | | https://github.com/ruby/psych/commit/0414982ffd
* [ruby/psych] Drop to support fat gem support.Hiroshi SHIBATA2019-07-251-5/+1
| | | | | | ref. https://github.com/ruby/bigdecimal/pull/149 https://github.com/ruby/psych/commit/25ae263252
* [ruby/psych] Do not use add_development_dependency.Hiroshi SHIBATA2019-07-251-5/+0
| | | | https://github.com/ruby/psych/commit/939754237f
* [ruby/date] Describe what is meant by valid in the Date.valid_date? rdocJeremy Evans2019-07-221-0/+3
| | | | https://github.com/ruby/date/commit/8eca79d1f0
* Constified afamily functionsNobuyoshi Nakada2019-07-161-3/+3
|
* Allow mday in Date.iso8601 to be omittedNobuyoshi Nakada2019-07-161-3/+3
| | | | [Bug #12285]
* catch up e8ddbc0239.Koichi Sasada2019-07-151-2/+2
|
* ext/stringio/stringio.c (strio_read): "binray" is always zero hereYusuke Endoh2019-07-151-1/+1
| | | | Remove unused conditional expression to suppress Coverity Scan warnings.
* Add a /* fall through */ commentYusuke Endoh2019-07-141-0/+1
|
* socket: use frozen string buffer when releasing GVLTanaka Akira2019-07-141-2/+5
| | | | Thanks for the patch by normalperson (Eric Wong) [Bug #14204].
* Include ruby/assert.h in ruby/ruby.h so that assertions can be thereNobuyoshi Nakada2019-07-1482-0/+185
|
* Split RUBY_ASSERT and so on under include/rubyNobuyoshi Nakada2019-07-142-0/+2
|
* Delegates 3 arguments for Pathname.glob.Tanaka Akira2019-07-141-2/+2
| | | | Thanks for the patch by pocke (Masataka Kuwabara) [Feature #14405].
* Added depend filesNobuyoshi Nakada2019-07-1433-0/+487
|
* Removed useless `freeze`s from gemspec filesNobuyoshi Nakada2019-07-133-39/+39
|
* Drop fossil rubygems supportNobuyoshi Nakada2019-07-132-37/+7
|
* Removed stub lines from gemspec filesNobuyoshi Nakada2019-07-132-4/+0
|
* Removed binary lineNobuyoshi Nakada2019-07-131-0/+0
|
* Default to true when no exception flag [Bug #15987]Nobuyoshi Nakada2019-07-111-1/+1
|
* Fixed argument in the fallback function [Bug #15987]Nobuyoshi Nakada2019-07-111-1/+1
|
* Removed wrong argument in the fallback function [Bug #15987]Nobuyoshi Nakada2019-07-111-1/+1
|
* Check exception flag as a bool [Bug #15987]Nobuyoshi Nakada2019-07-112-0/+13
|
* Added Etc::VERSIONNobuyoshi Nakada2019-07-102-1/+15
|
* Removed unused filesNobuyoshi Nakada2019-07-101-9/+3
|
* C90 for old versionsNobuyoshi Nakada2019-07-101-14/+11
|
* Use the found version numberNobuyoshi Nakada2019-07-101-1/+1
|
* Removed useless `freeze`sNobuyoshi Nakada2019-07-101-13/+13
|
* Added StringIO::VERSIONNobuyoshi Nakada2019-07-102-1/+14
|
* Update dependenciesNobuyoshi Nakada2019-07-091-0/+1
|
* Suppress uninitialized instance variable warningsNobuyoshi Nakada2019-07-091-1/+1
|
* Let struct dump_config in objspace fit in a single cache lineLourens Naudé2019-07-081-3/+3
| | | | | | | Let dump_config boolean members roots and full_heap be bit flags instead Closes: https://github.com/ruby/ruby/pull/2274
* * expand tabs.git2019-07-031-1/+1
|
* Use rb_ident_hash_new instead of rb_hash_new_compare_by_idNobuyoshi Nakada2019-07-031-1/+1
| | | | The latter is same as the former, removed the duplicate function.
* Fixed inadvertent ID creation in rb_iv_getNobuyoshi Nakada2019-07-011-0/+8
|
* Show the parser states in pretty_print tooNobuyoshi Nakada2019-06-271-0/+2
|
* Do not allocate a string to check if a scalar is an integerJean Boussier2019-06-251-9/+7
|
* Remove string_cache in ScalarScannerJean Boussier2019-06-251-10/+1
|
* Reduce string allocations in scalar_scannerJean Boussier2019-06-251-17/+15
|
* Removed CHANGELOG from rdoc files.SHIBATA Hiroshi2019-06-251-1/+1
|
* Retired to write CHANGELOG.rdoc. Because It has no update from 2015.SHIBATA Hiroshi2019-06-251-1/+1
|
* Dump Hash ivars before elementsAaron Patterson2019-06-251-9/+9
| | | | | When the Hash is revived, the ivars will be set before elements. This is for the case when the hash setter depends on ivars set on the hash.
* Round trip exception backtracesAaron Patterson2019-06-252-0/+5
| | | | This commit allows exception backtraces to round trip
* Refactor exception dumpingAaron Patterson2019-06-251-28/+17
|