summaryrefslogtreecommitdiff
path: root/ChangeLog
AgeCommit message (Collapse)Author
2012-12-18* ext/openssl/lib/ssl.rb: Enable insertion of empty fragments as aemboss
countermeasure for the BEAST attack by default. The default options of OpenSSL::SSL:SSLContext are now: OpenSSL::SSL::OP_ALL & ~OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS [Bug #5353] [ruby-core:39673] * test/openssl/test_ssl.rb: Adapt tests to new SSLContext default. * NEWS: Announce the new default. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17fix ChangeLog commentko1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17* method.h: remove `VM_METHOD_TYPE_CFUNC_FRAMELESS' method type.ko1
This method type is for optimized CFUNC such as Fixnum#+ and so on. This feature is half-baked and no way to use them. [Background] Now, VM has opt_plus instructions to optimize `+' methods for some Classes (such as Fixnum, Float (flonum)). We call this type of instructions as `specialized instructions'. This simple technique improve simple program dramatically. However, we can make specialized instructions for only several types (classes) and selectors (method names) because a large instruction will be slow. In other words, this technique has no extensibility. To overcome this problem, VM_METHOD_TYPE_CFUNC_FRAMELESS was introduced (r37198). This type is a variant of CFUNC, but called their functiions directly without building a method frame. Any CFUNC method can be defined as frameless methods if a method is not needed to make method frame. Frameless methods are faster as specialized instructions (a bit slower, but no need to care). No problem described at http://charlie.bz/blog/why-do-singleton-methods-make-ruby-slow because this technique doesn't see class, but see method body itself. Alias is also no problem. [Problem] However, we can't set frameless method type for polymorphic methods such as Array#[]. Necessity for method frame depends on which parameter type. For example, Fixnum#+ needs method frame if coerce is needed. Current VM_METHOD_TYPE_CFUNC_FRAMELESS is not flexible and need more tuning to introduce it. Expected behavior of frameless method type may be: result = optimized_cfunc(params); /* call optimized cfunc */ if (result == Qundef) { result = normal_cfunc(); } This is why I say this feature is half-baked. We need to learn primitive method in Smalltalk more. (I heard this name at RubyConf Taiwan this month. Thanks!) [Conclusion] Nobody may use this feature and there is no compatibility issue. This feature goes to next minor (2.1?). * proc.c (rb_method_entry_arity): ditto. * vm_eval.c, vm_insnhelper.c, vm_method.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17* vm_trace.c (fill_id_and_klass): TracePoint#defined_class returnsko1
singleton class. `set_trace_func' passed attached class (which is attached/modified by singleton class) by 6th block parameter if it is singleton class. Previous behavior follows this spec. However, this method named `defined_class' should return singleton class directly because singleton methods are defined in singleton class. There are no compatible issue because TracePoint is introduced after 2.0. But compatiblity with `set_trace_func' is brokne. This means that you can not replace all `set_trace_func' code with TracePoint without consideration of this behavior. [Bug #7554] * test/ruby/test_settracefunc.rb: change a test to catch up an above chagne. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17* ext/psych/lib/psych/visitors/to_ruby.rb: speed up node mapping sotenderlove
common cases are evaluated first. Thanks Kevin Menard! git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17* lib/optparse.rb: Remove 'developer documentation' section from rdoczzak
Patch by Marcus Stollsteimer [ruby-core:50526][Bug #7504] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17typozzak
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17* lib/matrix.rb (#dup): typo in example [ruby-core:50946][Bug #7582]zzak
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17* class.c (rewrite_cref_stack, clone_method): rewrite a method's crefcharliesome
stack when cloning into a new class to allow lexical const lookup to work as expected [ruby-core:47834] [Bug #7107] * test/ruby/test_class.rb (class TestClass): related test git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17* io.c (io_flush_buffer_sync2): avoid to return 0. becausekosaki
rb_thread_call_without_gvl2 uses 0 internally. * io.c (io_flush_buffer_async2): adapt the above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17* doc/syntax/methods.rdoc: Added a description of singleton methods.drbrain
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17* doc/.document: Added doc/syntaxdrbrain
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17* doc/syntax.rdoc: Added syntax guide table of contentsdrbrain
* doc/syntax/exceptions.rdoc: Syntax guide for exceptions * doc/syntax/literals.rdoc: Syntax guide for literals * doc/syntax/methods.rdoc: Syntax guide for methods git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-16* lib/rubygems.rb: Updated VERSIONdrbrain
* test/rubygems/test_gem_installer.rb: Fixed ambiguous first argument warning. * test/rubygems/test_gem_rdoc.rb: RDoc generation depends on installed version of RDoc. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15* signal.c (rb_sigaltstack_size): cast sysconf() return valuekosaki
explicitly. Fix compile error on Mac OS X. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15* cont.c (rb_fiber_start): don't enqueue Qnil to async_errinfo_queue.nagachika
rb_vm_make_jump_tag_but_local_jump() could return Qnil (ex. when finished by Thread.exit). [ruby-dev:45218] [Bug #5993] * test/ruby/test_fiber.rb (test_exit_in_fiber): add test for it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15* ext/fiddle/pointer.c (rb_fiddle_ptr2cptr): fix error message forgotten to ↵ngoto
be changed from DL to Fiddle. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15fix a typokazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15* signal.c (default_handler): remove rb_register_sigaltstack()kosaki
call. sigaltstack was already registered when creating threads. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15* signal.c (rb_sigaltstack_size): new. calculate stack size forkosaki
sigsegv handler. enlarge value when x86 or x86_64 on Linux. Linux has very small MINSIGSTKSZ size (2048 bytes) and our sigsegv routine need 5KiB at least. [Bug #7141] * internal.h: add declaration of rb_sigaltstack_size(). * vm_core.h: remove ALT_STACK_SIZE definition. * signal.c (rb_register_sigaltstack): replace ALT_STACK_SIZE with rb_sigaltstack_size(); * gc.c (Init_heap): ditto. * vm.c (th_init): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15 * rational.c (f_round_common): should check overflow.tadf
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15 * ratioanl.c (float_rationalize): reduced.tadf
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15fix a typokazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15fix typokosaki
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15* io.c (finish_writeconv): uses rb_write_internal2 ifkosaki
fptr->write_lock have. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15* thread.c (rb_mutex_owned_p): remove static.kosaki
* io.c (io_flush_buffer): don't hold mutex if already have. Now recursive lock may occur when following scenario. fptr_finalize -> finish_writeconv_sync -> finish_writeconv -> io_fflush. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15* io.c (io_flush_buffer): uses io_flush_buffer_async2 instead ofkosaki
io_flush_buffer_async. * io.c (io_flush_buffer_async2): new helper function for io_flush_buffer. It uses rb_thread_call_without_gvl2() instead of rb_thread_io_blocking_region. * io.c (io_flush_buffer_sync2): new helper function for io_flush_buffer_async2. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15* io.c (internal_write_func2): new helper function for rb_write_internal2().kosaki
* io.c (rb_write_internal2): new function. it uses rb_thread_call_without_gvl2() instaed of rb_thread_io_blocking_region(). * io.c (rb_binwrite_string): uses rb_write_internal2 instead of rb_write_internal. [Bug #7134] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15* io.c (rb_io_wait_writable): add to call rb_thread_wait_fd()kosaki
likes rb_io_wait_readable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15* io.c (rb_io_wait_writable): don't call rb_thread_fd_writable()kosaki
when EINTR. EINTR mean signal interrupt was happen. We don't need any wait. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15* thread.c (rb_thread_wait_fd_rw): remove silly rb_thread_alone()kosaki
check. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15* ChangeLog: fix typo.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-15thread.c: revert r38382 but deprecate rb_thread_polling()nobu
* thread.c (rb_thread_polling): revert but deprecate. * include/ruby/intern.h (rb_thread_polling): deprecate. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14 * test/rubygems/test_gem_ext_cmake_builder.rb(test_self_build):tarui
get rid of false positive. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14* test/ruby/test_thread.rb (test_uninitialized, test_backtrace,kosaki
test_thread_timer_and_interrupt, test_thread_join_in_trap, test_thread_join_current, test_thread_join_main_thread, test_main_thread_status_at_exit, test_thread_status_in_trap, test_thread_status_raise_after_kill, test_mutex_owned, test_mutex_owned2): move these tests from TestThreadGroup class to TestThread becuase they are not thread group tests. * test/ruby/test_thread.rb (test_thread_status_raise_after_kill): add t.join. * test/ruby/test_threadgroup.rb: new file. moved ThreadGroup test form test_thread.rb. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14* test/ruby/test_thread.rb (TestThread::Thread::new.): removekosaki
th.abort_on_exception change. Test template shouldn't change global flag. It prevent to test a normal case. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14* configure.in (HAVE_GCC_ATOMIC_BUILTINS): Set -march=i486 to enabledrbrain
__sync_val_compare_and_swap. Patch by KOSAKI Motohiro. [ruby-trunk - Bug #7485] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14* include/ruby/intern.h: remove rb_thread_polling() declaration.kosaki
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14* ext/.document: add fiddle/pointer.c, fiddle/handle.c, and fiddle/win32/lib ↵ngoto
as documentation. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14* file.c (rb_file_flock): use rb_thread_wait_for() instead ofkosaki
rb_thread_polling(). When getting EAGAIN, we need to wait a while even if no multi threading. * thread.c (sleep_for_polling, rb_thread_polling) removed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14* signal.c (rb_f_kill): remove rb_thread_polling() because thiskosaki
has no good effect and makes meaningless 100ms delay. 1) when sending signal to another process, waiting has just silly. 2) when sending signal to current process, 100ms is often not enough time to wait. It depend on kernel behavior. And, rb_thread_polling() doesn't make sense anyway. When rb_thread_alone() is true, it doesn't wait at all and Process.kill() users don't expect threading changes Process.kill() behavior. [Bug #7560] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14parse.y: fix line numbernobu
* parse.y (parser_params): parser_tokline to track the line number at which token started. [ruby-dev:46737] [Bug #7559] * parse.y (fcall): operation with starting line number. * parse.y (command, primary, method_call): point method name line. * parse.y (gettable_gen): return token line for __LINE__. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14parse.y: fix line numbernobu
* parse.y (parser_params): parser_tokline to track the line number at which token started. [ruby-dev:46737] [Bug #7559] * parse.y (fcall): operation with starting line number. * parse.y (command, primary, method_call): point method name line. * parse.y (gettable_gen): return token line for __LINE__. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14* vm_insnhelper.c (vm_call_super_method): remove volatile introducedshugo
in r38365. * vm_insnhelper.c (vm_call_method): use __forceinline to prevent VC to make vm_call_general and vm_call_super_method as the same method. Thanks, Heesob Park. [Bug #7556] [ruby-core:50867] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14* ChangeLog: fix typo.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14envutil.rb: using caller_locationsnobu
* test/ruby/envutil.rb (Test::Unit::Assertions#assert_separately): take file and line by using caller_locations if not given. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14envutil.rb: count assertionsnobu
* test/ruby/envutil.rb (Test::Unit::Assertions#assert_separately): count assertions in separated tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14* lib/rdoc/rubygems_hook.rb: Fixed generation of documentation.drbrain
Disabled rdoc generation by default to match RubyGems defaults. Reduced diff with RubyGems::RDoc. * test/rdoc/test_rdoc_rubygems_hook.rb: Tests for the above. * test/rubygems/test_gem_rdoc.rb: ditto. * lib/rdoc/store.rb: Removed useless variable assignment git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14* lib/rubygems/commands/rdoc_command.rb: When overwritingdrbrain
documentation, remove existing documentation first. * lib/rubygems/server.rb: Fixed documentation links. * test/rubygems/test_gem_server.rb: Test for the above. * lib/rubygems/rdoc.rb: Reduced diff with RDoc::RubyGemsHook * test/rubygems/test_gem_rdoc.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-14* vm_trace.c (exec_hooks): add volatile to avoid segv.naruse
On test-all with -j, it may crash in TH_POP_TAG. Detailed mechanism is not known but this fixes it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e