Commit graph

29857 commits

Author SHA1 Message Date
ko1
e3e4e9dfe7 add ticket number
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38479 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 22:33:43 +00:00
ko1
87e1616048 * vm.c: support variable VM/Machine stack sizes.
Specified by the following environment variaables:
  - RUBY_THREAD_VM_STACK_SIZE: vm stack size used at thread creation.
  default: 128KB (32bit CPU) or 256KB (64bit CPU).
  - RUBY_THREAD_MACHINE_STACK_SIZE: machine stack size used at thread
  creation. default: 512KB or 1024KB.
  - RUBY_FIBER_VM_STACK_SIZE: vm stack size used at fiber creation.
  default: 64KB or 128KB.
  - RUBY_FIBER_MACHINE_STACK_SIZE: machine stack size used at fiber
  creation. default: 256KB or 256KB.
  This values are specified at launched timing. You can not change
  these values at running time.
  Environ variables are only *hints* because:
  - They are aligned to 4KB.
  - They have minimum values (depend on OSs).
  - Machine stack settings are ignored by some OSs.
  Default values especially fiber stack sizes are increased.
  This change affect Fiber's behavior:
  (1) You can run more complex program on a Fiber.
  (2) You can not make many (thousands) Fibers because of
  lack of address space (on 32bit CPU).
  If (2) bothers you,
  (a) Use 64bit CPU with big memory, or
  (b) Specify RUBY_FIBER_(VM|MACHINE)_STACK_SIZE correctly.
  You need to choose correct stack size carefully. These values
  are completely rely on systems (OS/compiler and so on).
* vm_core.h (rb_vm_t::default_params): add to record above settings.
* vm.c (RubyVM::DEFAULT_PARAMS): add new constant to see
  above setting.
* thread_pthread.c: support RUBY_THREAD_MACHINE_STACK_SIZE.
* cont.c: support RUBY_FIBER_(VM|MACHINE)_STACK_SIZE.
* test/ruby/test_fiber.rb: add tests for above.
* test/ruby/test_thread.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 22:29:18 +00:00
ko1
5d92f6ec05 * test/ruby/test_fiber.rb: remove a strange single quote character.
With this character, this script exits by SyntaxError.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 21:28:44 +00:00
svn
7cb7d8ad1d * 2012-12-20
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 16:04:16 +00:00
zzak
bfa7a49d31 * ext/.document: Add missing ext modules to .document
Patch by Ryunosuke SATO [Fixes Github #224]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 16:04:11 +00:00
usa
e446378ad0 * ruby.c (load_file_internal): use original C string as the filename
for parser.
  reported by whiteleaf at [ruby-list:49085] [ruby-dev:46738]
  [Bug #7562]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 14:54:50 +00:00
ngoto
e90ccd3beb * marshal.c (marshal_dump, marshal_load): fix SEGV during make rdoc
and test failure in TestMarshal#test_gc and test_context_switch
  on SPARC Solaris 10 compiled with Oracle Solaris Studio 12.3.
  [Bug #7591] [ruby-dev:46772]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 14:47:26 +00:00
kosaki
b842263696 style fix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38467 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 11:19:37 +00:00
nobu
c3026b723c object.c: nul in const name
* object.c (rb_mod_const_get): nul byte is invalid as constant name.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 10:34:13 +00:00
marcandre
542a12d673 * doc/syntax/methods.rdoc: rdoc fix, patch by Dave Brown
[github:222]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 09:05:44 +00:00
tarui
e9e4ea981e * vm_trace.c (rb_threadptr_exec_event_hooks): get rid of race
condition. [Bug #7589] [ruby-dev:46763]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 08:54:57 +00:00
drbrain
8255e83912 * doc/syntax/literals.rdoc: Added 0d decimal format. Thanks Nobu!
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 07:30:58 +00:00
drbrain
d8cda04488 * doc/syntax/methods.rdoc: Fixed typo. Thanks to Josh Susser.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 07:19:59 +00:00
drbrain
eddc0685f2 * lib/rubygems/commands/query_command.rb: Refactored to improve
maintainability.
* test/rubygems/test_gem_commands_query_command.rb:  Note default gems
  in gem list details.

* lib/rubygems/uninstaller.rb:  Detect all gems for uninstallation.
  This allows duplicate installs of default gems to be removed.
* lib/rubygems/specification.rb:  Allow use of ::each_spec.
* lib/rubygems/test_case.rb:  Added install_default_gems.
* test/rubygems/test_gem_commands_uninstall_command.rb:  Moved test
  down to the uninstaller tests.
* test/rubygems/test_gem_uninstaller.rb:  Test for uninstallation of
  default gems and duplicate default gems.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 07:19:10 +00:00
naruse
1b2be1f8ca Use next in proc instead of break or return
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 06:31:02 +00:00
drbrain
2c0d2db5cb * doc/syntax/methods.rdoc: Add () around keyword arguments example for
consistency.  Thanks to Josh Susser.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 06:24:02 +00:00
naruse
67ae926c5e Don't check events from different files like r38456
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 05:29:04 +00:00
kazu
30635a9429 fix a typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 02:46:41 +00:00
naruse
a83df3dc82 Push given event only if it is right one
On parallel test-all, trace event may fire on another threads

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 02:25:42 +00:00
naruse
056bdfd2e5 Revert r38371 and r38384. they didn't solve the issue
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 02:25:40 +00:00
naruse
526d7af1a7 Suppress warnings
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-19 02:25:37 +00:00
nagachika
b32f9edda7 * ChangeLog: fix a typo for r38452.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 17:06:09 +00:00
nagachika
26221584a9 * vm.c (rb_vm_jump_tag_but_local_jump): remove unnessesary 2nd
argument.

* load.c (rb_load_internal): ditto.

* eval_intern.h (rb_vm_jump_tag_but_local_jump): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 17:04:05 +00:00
svn
ba6a2e7f74 * 2012-12-19
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 15:29:09 +00:00
kazu
157bfdcf91 fix typos and styles
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 15:29:01 +00:00
nagachika
c2834e3ce4 * ChangeLog: add ML and ticket ref for r38441.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38449 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 14:02:18 +00:00
kosaki
06dcf7840f * io.c (rb_io_wait_writable): don't use rb_thread_wait_fd()
because it is for waiting until io readable.

* io.c (rb_io_wait_writable): always use rb_thread_fd_writable()
  instaed of bare rb_wait_for_single_fd(). we shouldn't ignore
  return value.
* io.c (rb_io_wait_readable): ditto. always use rb_thread_wait_fd().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 10:07:15 +00:00
kosaki
005db82d36 * thread.c (rb_thread_wait_fd_rw): fix infinite loop bug.
rb_wait_for_single_fd() never return positive number.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 10:07:05 +00:00
drbrain
dff59f6c5d * lib/rdoc/encoding.rb: Do not remove #! line from document when
setting encoding.  This allows ruby executables to be parsed as ruby
  files.
* test/rdoc/test_rdoc_encoding.rb:  Test for above.

* lib/rdoc/parser.rb:  Set the parser file name of ruby executables
  correctly.
* test/rdoc/test_rdoc_parser.rb:  Test for above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 08:24:57 +00:00
drbrain
aa233d3f33 * doc/syntax/literals.rdoc: Used simplified heredoc example that
doesn't include method definition.  Added heredoc with backticks.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 07:46:33 +00:00
drbrain
69dfd5e034 * lib/rdoc/store.rb: Work around RDoc stores from older versions of
RDoc.
* test/rdoc/test_rdoc_store.rb:  Test for above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 07:39:15 +00:00
drbrain
2e881bd59e * lib/rdoc/ruby_lex.rb: Return a TkHEREDOC instead of a TkSTRING when
the heredoc identifier is followed by a line-end.  This allows proper
  display of some HEREDOCs in source view.
* lib/rdoc/ruby_token.rb:  Added TkHEREDOC
* test/rdoc/test_rdoc_ruby_lex.rb:  Test for above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 07:31:36 +00:00
nobu
84e3e8441c * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 04:31:13 +00:00
nagachika
606b66db7d * vm.c (rb_vm_make_jump_tag_but_local_jump): take care of the case
TAG_JUMP() with TAG_FATAL (ex. rb_fatal()).

* test/ruby/test_fiber.rb (test_fatal_in_fiber): add a test for above.

* ext/-test-/fatal/extconf.rb, ext/-test-/fatal/rb_fatal.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 04:30:44 +00:00
zzak
ec3226d826 * vm_trace.c (tracepoint_attr_defined_class): Clean up rdoc for
TracePoint#defined_class


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 04:18:06 +00:00
zzak
dbc8565fa3 typos in changelog
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 04:16:00 +00:00
drbrain
b06dfe594e * lib/rubygems/specification.rb: Fixed ruby output of requirements
with multiple version specifiers.
* test/rubygems/test_gem_ext_cmake_builder.rb:  Only look for specific
  lines in cmake output.  Should fix [ruby-trunk - Bug #7579]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 03:16:27 +00:00
drbrain
87f099d069 * doc/syntax/literals.rdoc: Added 0o octal integers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 02:48:35 +00:00
emboss
831af844ef * test/openssl/test_ssl.rb: Use :TLSv1_2_client explicitly in
test_tls_v1_2 to prevent upstream bug.
  [Bug #7197] [ruby-dev:46240]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 02:32:28 +00:00
naruse
c2606d23c5 Show $LOAD_PATH and RUBYLIB to debug easier
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38435 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 02:06:39 +00:00
emboss
e814e2ff3a * test/openssl/test_ssl.rb: Improve my grammar.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-18 02:04:52 +00:00
emboss
84f1dae9d6 * ext/openssl/lib/ssl.rb: Enable insertion of empty fragments as a
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-18 02:02:43 +00:00
ko1
f5a32acb97 fix ChangeLog comment
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17 22:08:00 +00:00
ko1
256c5f2577 * method.h: remove `VM_METHOD_TYPE_CFUNC_FRAMELESS' method type.
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 22:04:12 +00:00
ko1
6247099f4c * vm_trace.c (fill_id_and_klass): TracePoint#defined_class returns
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 20:28:51 +00:00
tenderlove
4654d75ea3 * ext/psych/lib/psych/visitors/to_ruby.rb: speed up node mapping so
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 18:04:50 +00:00
zzak
c60e45f100 * lib/optparse.rb: Remove 'developer documentation' section from rdoc
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-17 17:44:34 +00:00
zzak
08d599670a typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17 17:37:28 +00:00
svn
b02141ad78 * 2012-12-18
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17 17:37:02 +00:00
zzak
f2a997d858 * lib/matrix.rb (#dup): typo in example [ruby-core:50946][Bug #7582]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-17 17:36:56 +00:00