aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* gems/bundled_gems: Upgrade the did_you_mean gem to 1.0.0.rc1yuki2015-12-081-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c (ibf_load_setup): cast to int.ko12015-12-081-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c (ibf_setup_load): rename to ibf_load_setup().ko12015-12-081-0/+6
| | | | | | | | | * compile.c (iseq_load_setup): check binary format. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix typos [ci skip]kazu2015-12-081-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/io/console/test_io_console.rb (run_pty): Avoid waiting twicengoto2015-12-081-0/+6
| | | | | | | | for a process. Fix Errno::ECHILD in TestIO_Console#test_close and TestIO_Console#test_sync. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c (iseq_ibf_dump): fix for clang type checker.ko12015-12-081-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * iseq.c (iseq_s_load): fix mysterious bug.ko12015-12-081-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * introduce new ISeq binary format serializer/de-serializerko12015-12-081-0/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and a pre-compilation/runtime loader sample. [Feature #11788] * iseq.c: add new methods: * RubyVM::InstructionSequence#to_binary_format(extra_data = nil) * RubyVM::InstructionSequence.from_binary_format(binary) * RubyVM::InstructionSequence.from_binary_format_extra_data(binary) * compile.c: implement body of this new feature. * load.c (rb_load_internal0), iseq.c (rb_iseq_load_iseq): call RubyVM::InstructionSequence.load_iseq(fname) with loading script name if this method is defined. We can return any ISeq object as a result value. Otherwise loading will be continue as usual. This interface is not matured and is not extensible. So that we don't guarantee the future compatibility of this method. Basically, you should'nt use this method. * iseq.h: move ISEQ_MAJOR/MINOR_VERSION (and some definitions) from iseq.c. * encoding.c (rb_data_is_encoding), internal.h: added. * vm_core.h: add several supports for lazy load. * add USE_LAZY_LOAD macro to specify enable or disable of this feature. * add several fields to rb_iseq_t. * introduce new macro rb_iseq_check(). * insns.def: some check for lazy loading feature. * vm_insnhelper.c: ditto. * proc.c: ditto. * vm.c: ditto. * test/lib/iseq_loader_checker.rb: enabled iff suitable environment variables are provided. * test/runner.rb: enable lib/iseq_loader_checker.rb. * sample/iseq_loader.rb: add sample compiler and loader. $ ruby sample/iseq_loader.rb [dir] will compile all ruby scripts in [dir]. With default setting, this compile creates *.rb.yarb files in same directory of target .rb scripts. $ ruby -r sample/iseq_loader.rb [app] will run with enable to load compiled binary data. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* mention about Enumerator::Lazy#grep_v in NEWSkazu2015-12-081-1/+6
| | | | | | | * NEWS: mention about Enumerator::Lazy#grep_v. [ruby-core:71845] [Feature #11773] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert r52907 "* configure.in: add missing x."kazu2015-12-081-4/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: removed unused variableduerst2015-12-081-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* enumerator.c: lazy_grep_vnobu2015-12-081-0/+6
| | | | | | | | * enumerator.c (lazy_grep_v): add Enumerator::Lazy#grep_v as well as Enumerable, to enumerate lazily. [ruby-core:71845] [Feature #11773] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* error.c: name_err_local_variablesnobu2015-12-081-0/+6
| | | | | | | | * error.c (name_err_local_variables): new method NameError#local_variables for internal use only. [Feature #11777] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* marshal.c: skip internal namesnobu2015-12-081-0/+5
| | | | | | | * marshal.c (w_objivar): skip internal instance variables in T_OBJECT too. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/io/console/test_io_console.rb (test_getpass): s.getpassngoto2015-12-081-0/+6
| | | | | | | | should be tested. Narrow ensure block. This reverts r52911. [Bug #11780] [ruby-dev:49412] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* compile optimized case dispatch for nil/true/falsenormal2015-12-081-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | nil/true/false are special literals just like floats, integers, literal strings, and symbols. Optimize when statements with them by using a jump table, too. target 0: a (ruby 2.3.0dev (2015-12-08 trunk 52928) [x86_64-linux]) at "/home/ew/rrrr/b/ruby" target 1: b (ruby 2.3.0dev (2015-12-08 master 52928) [x86_64-linux]) at "/home/ew/ruby/b/ruby" benchmark results: minimum results in each 5 measurements. Execution time (sec) name a b loop_whileloop2 0.102 0.103 vm2_case_lit* 1.657 0.549 Speedup ratio: compare with the result of `a' (greater is better) name b loop_whileloop2 0.988 vm2_case_lit* 3.017 * benchmark/bm_vm2_case_lit.rb: new benchmark * compile.c (case_when_optimizable_literal): add nil/true/false * insns.def (opt_case_dispatch): ditto * vm.c (vm_redefinition_check_flag): ditto * vm.c (vm_init_redefined_flag): ditto * vm_core.h: ditto * object.c (InitVM_Object): define === explicitly for nil/true/false * test/ruby/test_case.rb (test_deoptimize_nil): new test * test/ruby/test_optimization.rb (test_opt_case_dispatch): update (test_eqq): new test [ruby-core:71923] [Feature #11769] Original patch by Aaron Patterson <tenderlove@ruby-lang.org> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* optparse.rb: Fix typo [ci skip]nobu2015-12-081-0/+5
| | | | | | | * lib/optparse.rb: fix double word typo in the document. [Misc #10608] [Fix GH-1126] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: missing argument checknobu2015-12-081-0/+5
| | | | | | | * ext/date/date_core.c (d_lite_lshift): should check the argument before negation. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52929 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* insns.def (opt_case_dispatch): check Float#=== redefinitionnormal2015-12-071-0/+6
| | | | | | | | | | | | | | The missing check for Float#=== redefinition was noticed while working on enhancing optimized case dispatch for nil/true/false in [ruby-core:71818] https://bugs.ruby-lang.org/issues/11769 So no, I don't normally redefine core classes like this :P * insns.def (opt_case_dispatch): check Float#=== redefinition * test/ruby/test_optimization.rb (test_opt_case_dispatch): new [ruby-core:71920] [Bug #11784] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/lib/iseq_loader_checker.rb: add iseq dumper/loader checker.ko12015-12-071-0/+14
| | | | | | | | | | | | | | | | | | If you enable this checker (remove `#' in test/runner.rb), you can see comparison results between an original iseq disassembed result and dumped and loaded iseq disassembed result. There are several bugs around there, because of inexact stack depth calculation. Now, I leave these bugs because they are not critical and difficult to solve completely. * test/runner.rb: require test/lib/iseq_loader_checker.rb but disabled at default (commented out). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* doc/extension.rdoc: warn about kwargs performance in C [ci skip]normal2015-12-071-0/+5
| | | | | | | | | | This existing API seems doomed performance-wise, and writing things in Ruby is nicer anyways. So discourage folks from using it. [Feature #11339] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * iseq.c (iseq_load): disable peephole optimization optionko12015-12-071-0/+6
| | | | | | | | | | because apply it multiple times change the sequence. (iseq != peephole_optimize(load(iseq.to_a))) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c (rb_iseq_build_from_ary): do not allocate tableko12015-12-071-0/+5
| | | | | | | | | if table_size is 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* socket: expand docs+tests for recv_io/send_ionormal2015-12-071-0/+6
| | | | | | | | | | | | * ext/socket/unixsocket.c (unix_send_io): document args (unix_recv_io): ditto * test/socket/test_unix.rb (test_fd_passing_class_mode): added I was working on these when I encountered the problem in with BasicSocket.for_fd not handling mode args: https://bugs.ruby-lang.org/issues/11778 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * iseq.c (iseq_translate): at the end of constructing an iseq,ko12015-12-071-0/+18
| | | | | | | | | | | | | | | | | | | | | | call RubyVM::InstructionSequence.translate(iseq) if this method is defined. If the return value is also an object of RubyVM::InstructionSequence, then use it instead of created one. For example, this method is useful to test iseq dumper/loader such as RubyVM::InstructionSequence#to_a and rb_iseq_load(). Because this method is for such internal experimental usage, the interface is not matured. For example, this interface has no extensibility. Two or more translaters can not run simultaneously. So that we don't guarantee future compatibility of this method. Basically, do not use this method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/psych/*: update psych to 2.0.16tenderlove2015-12-071-0/+5
| | | | | | * test/psych/*: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c: introduce String#+@ and String#-@ to controlko12015-12-071-0/+6
| | | | | | | | | | String mutability. [Feature #11782] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: indented hereocnobu2015-12-071-0/+4
| | | | | | * parse.y: add heredoc <<~ syntax. [Feature #9098] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typo [ci skip]kazu2015-12-071-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* add missing options to call-seq of IO#read_nonblockkazu2015-12-071-0/+5
| | | | | | | * prelude.rb (IO#read_nonblock): [DOC] add missing options to call-seq. [ruby-core:71627] [Bug #11730] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* .gitignore: added cygwin*.def for Cygwinduerst2015-12-071-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* introduce rb_autoload_str to replace rb_autoloadnormal2015-12-061-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rb_autoload_str may be safer by preventing premature GC. It can also be more efficient by passing a pre-frozen string that can be deduped using rb_fstring. Common autoload callers (e.g. rubygems, rdoc) already use string literals as the file argument. There seems to be no reason to expose rb_autoload_str to the public C API since autoload is not performance-critical. Applications may declare autoloads in Ruby code or via rb_funcall; so merely deprecate rb_autoload without exposing rb_autoload_str to new users. Running: valgrind -v ruby -rrdoc -rubygems -e exit shows a minor memory reduction (32-bit userspace) before: in use at exit: 1,600,621 bytes in 28,819 blocks total heap usage: 55,786 allocs, 26,967 frees, 6,693,790 bytes allocated after: in use at exit: 1,599,778 bytes in 28,789 blocks total heap usage: 55,739 allocs, 26,950 frees, 6,692,973 bytes allocated * include/ruby/intern.h (rb_autoload): deprecate * internal.h (rb_autoload_str): declare * load.c (rb_mod_autoload): use rb_autoload_str * variable.c (rb_autoload): become compatibility wrapper (rb_autoload_str): hoisted out from old rb_autoload [ruby-core:71369] [Feature #11664] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in: add missing x.kazu2015-12-061-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typo [ci skip]kazu2015-12-061-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/webrick/test_cgi.rb (TestWEBrickCGI#test_cgi): gave up the testusa2015-12-061-0/+6
| | | | | | | | of binary path info test on Windows because the test had passed occasionally as the comment said. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* console.c: console_getpassnobu2015-12-061-0/+5
| | | | | | | * ext/io/console/console.c (console_getpass): add IO#getpass method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/json/json.gemspec: bump version to json 1.8.3. CRuby already containedhsbt2015-12-051-0/+10
| | | | | | | | | upstream changes. https://github.com/ruby/ruby/commit/4d059bf9f5f10f3d3088de49fc87e5555db7770d https://github.com/flori/json/commit/d4c99de78905d96c3f301f48b2c789943bb3f098 * ext/json/lib/json/version.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix cross buildnobu2015-12-051-0/+7
| | | | | | | | * tool/fake.rb: Fix cross build when srcdir is an absolute path. * Makefile.in: PREP dependency is needed when cross build too, not "-r$(arch)-fake" to be used before created. [Fix GH-1125] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* hash.c: env encoding fallback on Windowsnobu2015-12-051-0/+10
| | | | | | | | | | * hash.c (env_str_new, env_path_str_new): make default string UTF-8 for the case conversion is not possible. [Bug #8822] * hash.c (get_env_cstr): convert non-ASCII string to UTF-8 string. * hash.c (ruby_setenv): use wide char version to put environment variable to deal with non-ASCII value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby_atomic.h: fix old value type of ATOMIC_CASnobu2015-12-051-1/+5
| | | | | | | | * ruby_atomic.h (ATOMIC_CAS): old value to be swapped should be same as the destination. immediate value may need type promotion. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby_atomic.h: fix the argument ordernobu2015-12-051-0/+6
| | | | | | | | * ruby_atomic.h (ATOMIC_SIZE_CAS): fix the argument order of InterlockedCompareExchange64. new value and then old value is the last. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* random.c: fix filling sizenobu2015-12-051-0/+5
| | | | | | | * random.c (fill_random_seed): fix the size to be filled, not the size of element, but the whole size of array. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm.c: make ruby_vm_*_ptr staticnormal2015-12-041-0/+5
| | | | | | | | | No point in wasting space until we get MVM (if ever). * vm.c (ruby_vm_verbose_ptr): make static (ruby_vm_debug_ptr): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h (RB_OBJ_TAINT): follow-up of r52881.ngoto2015-12-041-0/+7
| | | | | | | | | Turn into void expression not to use unexpected result. Fix "operands have incompatible types" error with Oracle Solaris Studio 12.x on Solaris. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* enc/iso_8859_13.c: Added three missing lower/upper-caseduerst2015-12-041-0/+6
| | | | | | character pairs (from Kimihito Matsui) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* enc/iso_8859_4.c: Added missing lower/upper-case characterduerst2015-12-041-0/+5
| | | | | | pair (U+014A and U+014B, LATIN CAPITAL/SMALL LETTER ENG) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52883 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: should not taint fstringnobu2015-12-041-0/+6
| | | | | | | | * string.c (rb_obj_as_string): fstring should not be infected. re-apply r52872 and fix a typo. TODO: other frozen strings also may not be. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/rubygems: Update to RubyGems 2.5.0+ HEAD(fdab4c4).hsbt2015-12-041-0/+6
| | | | | | | this version includes #1396, #1397, #1398, #1399 * test/rubygems: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert r52872 "string.c: should not taint fstring"naruse2015-12-041-5/+0
| | | | | | This reverts commit b887c7c20ab81b50ed7cb8c7db3218c443985d6b. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52878 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: name must be ascii-compatiblenobu2015-12-041-0/+5
| | | | | | | * thread.c (rb_thread_setname): name must be ascii-compatible, as pthread APIs do not accept legacy wide char strings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52876 b2dd03c8-39d4-4d8f-98ff-823fe69b080e