summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-03-18gmake.mk: showflagsnobu
* defs/gmake.mk (showflags): more targets to show flags. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-18* benchmark/bm_vm1_gc_wb_ary.rb: run GC to finish "marking" phase.ko1
* benchmark/bm_vm1_gc_wb_obj.rb: ditto. * benchmark/bm_vm1_gc_wb_ary_promoted.rb: add parameter full_mark: false to invoke only minor GC. * benchmark/bm_vm1_gc_wb_obj_promoted.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-18* string.c: add a comment about RSTRING_FSTR.ko1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-18* remove trailing spaces.svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-18hash.c: same hash values with Float#hashnobu
* hash.c (rb_any_hash): use same hash values with Float#hash so that -0.0 and +0.0 will be identical. [ruby-core:68541] [Bug #10979] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-17* string.c: introduce STR_FAKESTR to show string is FAKESTR or not.ko1
* string.c (STR_SET_SHARED): ignore FAKESTR because only Ruby objects can use write barrier. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-17fix a typo [ci skip]kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-17* 2015-03-18svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-17ChangeLog: fix a typo at r49987.nagachika
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-17* include/ruby/ruby.h: use rb_gc_writebrrier() simply.ko1
For incremental GC, we need to get a pointer to the objspace. We can share this pointer for the following WB process. And considering icache hit ratio, prcess in the GC. * gc.c (rb_gc_writebarrier): added. * gc.c (gc_writebarrier_generational, gc_writebarrier_incremental): make them NOINLINE because inlining them into rb_gc_writebarrier() makes a prologue code of rb_gc_writebarrier() longer (storing callee save registers). This patch improve the performance of WB on micro-benchmarks. name ruby 2.1 trunk modified vm1_gc_wb_ary* 0.511 0.632 0.532 vm1_gc_wb_ary_promoted* 0.578 0.701 0.674 vm1_gc_wb_obj* 0.419 0.575 0.492 vm1_gc_wb_obj_promoted* 0.537 0.664 0.618 (sec) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-17* properties.svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-17* benchmark/bm_vm1_gc_wb_ary(_promoted).rb: separate fastpath andko1
slowpath for WB. Before this change bm_vm1_gc_wb_ary.rb tried to check the performance for WB slowpath (making a reference from oldobj to newobj). However, from Ruby 2.2, 3 GCs are needed to promote new objects because only 3 age objects are promted objects. To compare fastpath and slowpath, introduce new "promoted" version benchmark. bm_vm1_gc_wb_ary.rb is for fastpath and bm_vm1_gc_wb_ary_promoted.rb is for slowpath. * benchmark/bm_vm1_gc_wb_obj(_promtoed).rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-17* 2015-03-17svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-17dir.c: fix DT_UNKNOWN recursionnobu
* dir.c (glob_helper): distinguish not-yet-stated and DT_UNKNOWN by readdir, and traverse recursively for the former. Linux readdir returns DT_UNKNOWN on some filesystems, e.g., smbfs, iso9660. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-16dir.c: DT_UNKNOWNnobu
* dir.c (glob_helper): deal with DT_UNKNOWN. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-16* properties.svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-16* lib/webrick/server.rb: Fix regression bug in WEBrick'shsbt
:DoNotReverseLookup config option implementation. [fix GH-731] Patch by @vais * test/webrick/test_do_not_reverse_lookup.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-16* math.c (math_log1, math_log2, math_log10): refactoringgogotanaka
and tests for this. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-16ruby.h: suppress false warningsnobu
* include/ruby/ruby.h (rb_data_object_alloc_warning): enable only if __builtin_choose_expr works with __builtin_constant_p so that warnings will be suppressed if klass is 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-16ruby.h: suppress false warningsnobu
* include/ruby/ruby.h (rb_data_object_alloc_warning): enable only if __builtin_choose_expr works with __builtin_constant_p so that warnings will be suppressed if klass is 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-15* test/ruby/test_lambda.rb: Fix typo yeild -> yieldgogotanaka
[fix GH-851][ci skip] Patch by @hanachin git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-15* 2015-03-16svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-15* test/ruby/test_proc.rb: Fix typo signle -> singlegogotanaka
[fix GH-852][ci skip] Patch by @hanachin git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-15* math.c (math_cbrt): [DOC] Fix domain and codomain.gogotanaka
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-14math.c: more robustnobu
* math.c (math_gamma): make more robust against addition/removal. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-14* 2015-03-15svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-14* math.c (math_gamma): rename NGAMMA_TABLE to NFACT_TABLE.gogotanaka
specify the size of the fact_table. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-14* math.c (math_gamma): explicit cast to double.gogotanaka
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-14* math.c (math_gamma): optimization for passed small integer.gogotanaka
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-14* enum.c: [DOC] Fixes Enumerable#member? documentationgogotanaka
[fix GH-756][ci skip] Patch by @shamanime git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-14dir.h: direct::d_typenobu
* dir.c (glob_helper): use d_type to reduce lstat system calls. * win32/dir.h (struct direct): add d_type instead of d_isdir and d_isrep. SYMLINKD is unreliable, since the target can be replaced after a link was created. * win32/win32.c (readdir_internal): set d_type. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13* 2015-03-14svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13parse.y: empty parennobu
* parse.y (primary): empty parentheses at cmdarg can be null. [ruby-core:68477] [Bug #10957] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13gmake.mk: fix typonobu
* defs/gmake.mk: fix typo, remove an extra comma. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13stringio.c: don't raise after closenobu
* ext/stringio/stringio.c (strio_close): don't raise on dobule close for consistent to IO#close. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13io.c: don't raise after closenobu
* io.c (rb_io_close_read, rb_io_close_write): don't raise after close same as IO#close. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13io.c: rb_io_get_fptrnobu
* io.c (rb_io_get_fptr): return non-null fptr. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13test_objspace.rb: better assertionsnobu
* test/objspace/test_objspace.rb: use assertions for better failure messages. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13* test/readline/test_readline.rb: Restore environment variables:akr
COLUMNS LINES git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13libff: fix enable-shared conditionnobu
* ext/fiddle/extconf.rb: needs --enable-shared when linked to libruby or fiddle.so. since --with-static-linked-ext does no longer link extensions to ruby program with --enable-shared, the only combination needs --enable-static is --disable-shared and --with-static-linked-ext. [ruby-dev:48901] [Bug #10960] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13Makefile.in: no probes.stamp unless DTRACE_REBUILDnobu
* Makefile.in (probes.o): do not need to rebuild object files unless `dtrace -G` modifies input object files. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49956 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-12accept_nonblock: favor rb_hash_lookup2 to avoid Hash#defaultnormal
* ext/socket/init.c (rsock_s_accept_nonblock): use rb_hash_lookup2 * ext/openssl/ossl_ssl.c (get_no_exception): new function (ossl_ssl_accept_nonblock): use get_no_exception (ossl_ssl_read_internal): ditto (ossl_ssl_write_nonblock): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-12ext/openssl/ossl_ssl.c: predefine wait_*able symbolsnormal
This leads to a size reduction in openssl.so and reduces the chance of bugs due to typos. text data bss dec hex before: 333022 13164 3312 349498 5553a after: 332790 13164 3232 349186 55402 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-12gmake.mk: wait showflagsnobu
* defs/gmake.mk (showflags): finish before object files start. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-12* 2015-03-13svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-12fix typos [ci skip]kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49951 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-12fix env leaksnobu
* lib/rubygems/test_case.rb (setup, teardown): fix environment variable change leaks. * test/cgi/update_env.rb: ditto. * test/rake/test_rake_application_options.rb (setup, teardown): ditto. * test/rake/test_rake_file_utils.rb (setup, teardown): ditto. * test/rubygems/test_gem_request.rb (setup): add https_proxy. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-12* test/lib/leakchecker.rb: Check environment variables.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-12accept_nonblock supports "exception: false"normal
This is analogous to functionality found in IO#read_nonblock and IO#wait_nonblock. Raising exceptions for common failures on non-blocking servers is expensive and makes $DEBUG too noisy. Benchmark results: user system total real default 2.790000 0.870000 3.660000 ( 3.671597) exception: false 1.120000 0.800000 1.920000 ( 1.922032) exception: false (cached arg) 0.820000 0.770000 1.590000 ( 1.589267) --------------------- benchmark script ------------------------ require 'socket' require 'benchmark' require 'tmpdir' nr = 1000000 Dir.mktmpdir('nb_bench') do |path| sock_path = "#{path}/test.sock" s = UNIXServer.new(sock_path) Benchmark.bmbm do |x| x.report("default") do nr.times do begin s.accept_nonblock rescue IO::WaitReadable end end end x.report("exception: false") do nr.times do begin s.accept_nonblock(exception: false) rescue IO::WaitReadable abort "should not raise" end end end x.report("exception: false (cached arg)") do arg = { exception: false } nr.times do begin s.accept_nonblock(arg) rescue IO::WaitReadable abort "should not raise" end end end end end * ext/socket/init.c (rsock_s_accept_nonblock): support exception: false [ruby-core:66385] [Feature #10532] * ext/socket/init.c (rsock_init_socket_init): define new symbols * ext/socket/rubysocket.h: adjust prototype * ext/socket/socket.c (sock_accept_nonblock): support exception: false * ext/openssl/ossl_ssl.c (ossl_ssl_accept_nonblock): ditto * ext/socket/socket.c (Init_socket): adjust accept_nonblock definition * ext/openssl/ossl_ssl.c (Init_ossl_ssl): ditto * ext/socket/tcpserver.c (rsock_init_tcpserver): ditto * ext/socket/unixserver.c (rsock_init_unixserver): ditto * ext/socket/tcpserver.c (tcp_accept_nonblock): adjust rsock_s_accept_nonblock call * ext/socket/unixserver.c (unix_accept_nonblock): ditto * ext/openssl/ossl_ssl.c (ossl_start_ssl): support no_exception * ext/openssl/ossl_ssl.c (ossl_ssl_connect): adjust ossl_start_ssl call * ext/openssl/ossl_ssl.c (ossl_ssl_connect_nonblock): ditto * ext/openssl/ossl_ssl.c (ossl_ssl_accept): ditto * test/socket/test_nonblock.rb (test_accept_nonblock): test for "exception :false" * test/socket/test_tcp.rb (test_accept_nonblock): new test * test/socket/test_unix.rb (test_accept_nonblock): ditto * test/openssl/test_pair.rb (test_accept_nonblock_no_exception): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-12* internal.h, node.h: move a definition of `struct rb_global_entry'ko1
and related functions from node.h to internal.h. * variable.c: remove unused include pragma. * common.mk: remove unused dependency. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e