aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* * ext/openssl/lib/ssl.rb: Enable insertion of empty fragments as aemboss2012-12-184-4/+30
| | | | | | | | | | | | | | | 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
* fix ChangeLog commentko12012-12-171-1/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * method.h: remove `VM_METHOD_TYPE_CFUNC_FRAMELESS' method type.ko12012-12-176-38/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* * vm_trace.c (fill_id_and_klass): TracePoint#defined_class returnsko12012-12-173-5/+65
| | | | | | | | | | | | | | | | | | | | 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
* * ext/psych/lib/psych/visitors/to_ruby.rb: speed up node mapping sotenderlove2012-12-172-35/+42
| | | | | | 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
* * lib/optparse.rb: Remove 'developer documentation' section from rdoczzak2012-12-172-0/+8
| | | | | | | 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
* typozzak2012-12-171-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2012-12-18svn2012-12-171-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/matrix.rb (#dup): typo in example [ruby-core:50946][Bug #7582]zzak2012-12-172-1/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Use EnvUtil.rubybin instead of Gem.rubynaruse2012-12-171-1/+2
| | | | | | [ruby-core:50943] [Bug #7581] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * class.c (rewrite_cref_stack, clone_method): rewrite a method's crefcharliesome2012-12-173-0/+39
| | | | | | | | 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
* * io.c (io_flush_buffer_sync2): avoid to return 0. becausekosaki2012-12-172-8/+22
| | | | | | | 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
* * doc/syntax/methods.rdoc: Added a description of singleton methods.drbrain2012-12-172-0/+25
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * doc/.document: Added doc/syntaxdrbrain2012-12-172-0/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * doc/syntax.rdoc: Added syntax guide table of contentsdrbrain2012-12-175-0/+512
| | | | | | | | | * 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
* * lib/rdoc.rb: Updated VERSION.drbrain2012-12-1613-208/+422
| | | | | | | | | | | | | | | | | | | | | | | | | * lib/rdoc/markup/attribute_manager.rb: Removed useless empty check. * lib/rdoc/markup/to_markdown.rb: Support links from other formats. * lib/rdoc/markup/formatter.rb: ditto. * lib/rdoc/markup/to_html.rb: ditto. * test/rdoc/test_rdoc_markup_formatter.rb: Test for above. * test/rdoc/test_rdoc_markup_to_html.rb: ditto. * test/rdoc/test_rdoc_markup_to_markdown.rb: ditto. * lib/rdoc/rd/block_parser.rb: Improved footnote display. Worked around bug in footnote conversion to Markdown. * test/rdoc/test_rdoc_rd_block_parser.rb: Test for above. * lib/rdoc/rd/inline_parser.rb: Fixed bug with emphasis inside verbatim. * test/rdoc/test_rdoc_rd_inline_parser.rb: Test for above. * test/rdoc/test_rdoc_parser_rd.rb: Use mu_pp, use shortcut methods. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2012-12-17svn2012-12-161-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/rubygems.rb: Updated VERSIONdrbrain2012-12-164-3/+22
| | | | | | | | | | | * 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
* * signal.c (rb_sigaltstack_size): cast sysconf() return valuekosaki2012-12-152-1/+6
| | | | | | 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
* * cont.c (rb_fiber_start): don't enqueue Qnil to async_errinfo_queue.nagachika2012-12-153-1/+17
| | | | | | | | | 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
* * ext/fiddle/pointer.c (rb_fiddle_ptr2cptr): fix error message forgotten to ↵ngoto2012-12-152-1/+6
| | | | | | 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-16svn2012-12-151-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typokazu2012-12-151-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * signal.c (default_handler): remove rb_register_sigaltstack()kosaki2012-12-152-3/+5
| | | | | | 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
* * signal.c (rb_sigaltstack_size): new. calculate stack size forkosaki2012-12-156-9/+39
| | | | | | | | | | | | | | | 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
* * rational.c (f_round_common): should check overflow.tadf2012-12-152-0/+10
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ratioanl.c (float_rationalize): reduced.tadf2012-12-152-10/+22
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_gem_remote_fetcher.rb: restore environment variablesnobu2012-12-151-17/+5
| | | | | | | | * test/rubygems/test_gem_remote_fetcher.rb (setup, teardown): always restore environment variables fo http proxy, to get rid of sporadic warnings from URI::Generic#find_proxy. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typokazu2012-12-151-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * proc.c (rb_binding_new_with_cfp): allocate the object after envirionment ↵nobu2012-12-151-1/+2
| | | | | | check. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (yycompile0): adjust indent.nobu2012-12-152-10/+10
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix typokosaki2012-12-151-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (finish_writeconv): uses rb_write_internal2 ifkosaki2012-12-152-1/+9
| | | | | | fptr->write_lock have. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread.c (rb_mutex_owned_p): remove static.kosaki2012-12-154-2/+14
| | | | | | | | | * 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
* * io.c (io_flush_buffer): uses io_flush_buffer_async2 instead ofkosaki2012-12-152-1/+34
| | | | | | | | | | | 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
* * io.c (internal_write_func2): new helper function for rb_write_internal2().kosaki2012-12-152-1/+28
| | | | | | | | | * 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
* * io.c (rb_io_wait_writable): add to call rb_thread_wait_fd()kosaki2012-12-152-0/+6
| | | | | | likes rb_io_wait_readable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_wait_writable): don't call rb_thread_fd_writable()kosaki2012-12-152-1/+6
| | | | | | | 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
* * thread.c (rb_thread_wait_fd_rw): remove silly rb_thread_alone()kosaki2012-12-152-1/+5
| | | | | | check. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in (NULLCMD): check in loop.nobu2012-12-151-11/+9
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in (GNUmakefile): remove -jN option from submake.nobu2012-12-151-1/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ChangeLog: fix typo.nobu2012-12-151-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: revert r38382 but deprecate rb_thread_polling()nobu2012-12-153-5/+26
| | | | | | | * 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
* * test/rubygems/test_gem_ext_cmake_builder.rb(test_self_build):tarui2012-12-142-1/+6
| | | | | | | get rid of false positive. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * properties.nobu2012-12-140-0/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_thread.rb (test_uninitialized, test_backtrace,kosaki2012-12-143-60/+83
| | | | | | | | | | | | | | | | | 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
* * test/ruby/test_thread.rb (TestThread::Thread::new.): removekosaki2012-12-142-1/+6
| | | | | | | 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
* * configure.in (HAVE_GCC_ATOMIC_BUILTINS): Set -march=i486 to enabledrbrain2012-12-142-1/+7
| | | | | | | | __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
* * include/ruby/intern.h: remove rb_thread_polling() declaration.kosaki2012-12-141-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_trace.c: suppress warningnobu2012-12-141-1/+2
| | | | | | | * vm_trace.c (exec_hooks): suppress unused-variable warning by RB_UNUSED_VAR(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e