Commit graph

29857 commits

Author SHA1 Message Date
usa
acd82f6e24 * win32/win32.c (has_redirection): should use shell (cmd.exe) when
the commandline containts '&'.
  reported by Roger Pack at [ruby-core:47912] [Bug #7143], and
  patched by Heesob Park at [ruby-core:47931].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-25 08:50:55 +00:00
ko1
9dc3a7d7a5 * include/ruby/ruby.h, class.c: remove (revert)
`rb_add_method_cfunc_frameless()' API.
  This API is not mature to become an offical API.
  For example, we can not use this API with
  `rb_define_private_method()'.
* method.h, vm_method.c (rb_add_method_cfunc_frameless): removed.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37320 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-25 06:03:53 +00:00
usa
8ca58751c1 * tool/mkconfig.rb: remove string literal concatenation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-25 04:36:15 +00:00
svn
70e7d07329 * 2012-10-25
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-25 04:22:25 +00:00
usa
4a309b765e * parse.y: show a warning for concatenating string literals because
it will be deprecated in the future.
  patched by mame (Yusuke Endoh) at [ruby-core:44207].
  [ruby-core:44156] [Feature #6265]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-25 04:22:21 +00:00
nobu
e59e5e90c0 objspace.c: enum ruby_value_type
* ext/objspace/objspace.c (type2sym, count_objects_size): use enum
  instead of size_t which may be larger than actual values.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-24 09:49:18 +00:00
nobu
aaf346059d vm_insnhelper.c: inline
* vm_insnhelper.c: declare as inline, to match with the definitions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37315 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-24 09:48:32 +00:00
ko1
9b68747be0 * benchmark/driver.rb: add -x' or --exclude' option
to specify exclude benchmark name pattern.
  You can specify "-x foo" if you want to exclude the benchmarks
  if the name of benchmark contains `foo'.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-24 08:46:01 +00:00
nari
a4ba41a29d rename it to a more fitting name
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-24 04:29:53 +00:00
nari
bda726223f fix the function name which is not grammatically correct.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-24 04:14:22 +00:00
nari
f0a435c187 * gc.c (free_object_aquire): rename to match the behavior of this
function.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-24 03:55:46 +00:00
ko1
04c177e277 * ext/objspace/objspace.c (reachable_object_from_i): change data
structure of the result of reachable objects. Keys of table
  contains object_id of each reachable objects. Value of table
  is an object itself or an instance of InternalObjectWrapper.
  To avoid duplication, we use st_table and object_id keys.
* ext/objspace/objspace.c (type2sym): bug fix.
  Should use `i' instead of `type'.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37310 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-24 03:00:39 +00:00
ko1
aab12ec054 * gc.c (garbage_collect, gc_marks): move the location of
clear and restore rb_objspace_t::mark_func_data
  from garbage_collect() to gc_marks().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-24 01:39:45 +00:00
ko1
6cbd18d7ef * ext/objspace/objspace.c (Init_objspace): add a new method
`ObjectSpace::InternalObjectWrapper#internal_object_id' which returns
  an object id of a wrapped internal object.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-24 01:21:13 +00:00
ko1
6c6dece7f1 * ext/objspace/objspace.c (ObjectSpace.reachable_objects_from):
internal object support.
  If given object `obj' has references to internal objects
  (such as T_NODE objects), then this method returns instances of
  `ObjectSpace::InternalObjectWrapper' instead of that internal objects.
  This instance contains a refereance to an internal object and you can
  check the type of internal object using
  `ObjectSpace::InternalObjectWrapper#type' method.
  Rdoc of `InternalObjectWrapper' is not prepared yet.
* gc.c (rb_objspace_reachable_objects_from), gc.h: change
  an interface of 'rb_objspace_reachable_objects_from()'
* gc.c, gc.h: add two APIs
  - rb_objspace_markable_object_p(obj): check markable or not.
  - rb_objspace_internal_object_p(obj): check internal or not.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-24 00:04:56 +00:00
ko1
e1d772c801 * vm_insnhelper.c (vm_call_method): remove `default' and
add a case for `VM_METHOD_TYPE_UNDEF'.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 20:53:35 +00:00
ko1
378041cfbf * eval_error.c (error_print), vm_eval.c (eval_string_with_cref),
vm_trace.c (rb_suppress_tracing): use TH_PUSH_TAG() instead of
  PUSH_TAG().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 20:42:45 +00:00
ko1
a0873931ce * vm_eval.c (vm_call0_body): remove RUBY_VM_CHECK_INTS()
after method invocation using rb_call0().
* vm_eval.c (vm_call0_body): remove default section on top of
  switch statement and add cases for `VM_METHOD_TYPE_CFUNC_FRAMELESS'
  and `VM_METHOD_TYPE_UNDEF'.
* vm_eval.c (vm_call0_body): remove useless brackets.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 20:34:25 +00:00
tenderlove
fe38109ffe Add test for instance_exec receiving a curried proc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 17:46:33 +00:00
nobu
a8e25c92f3 test_rubyoptions.rb: --help option
* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_usage): now
  --help shows more lines.  [ruby-core:48072] [Bug #7184]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 16:37:47 +00:00
svn
8642c4af6a * 2012-10-24
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37301 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 15:54:25 +00:00
nagachika
d8d95fcc03 * ChangeLog: fix typos of r37293.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 15:54:20 +00:00
ko1
479d8ce5b5 * thread.c (thread_raise_m): check interrupts after Thread#raise
if a target thread is the current thread because the behavior
  of Thread.current.raise is expected to perform same as
  Kernel.raise (by rubyspec).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 13:37:45 +00:00
nobu
357a5f5ab5 ruby.c: --help option
* ruby.c (usage, process_options): show more info in --help.
  [EXPREIMENTAL] [ruby-core:48072] [Bug #7184]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 08:08:42 +00:00
nobu
ec007f72cf ruby-electric.el: fix #198
* misc/ruby-electric.el using variable `last-command-event' instead of
  obsolete `last-command-char', so that work with Emacs trunk.
  a patch by Victor Deryagin <vderyagin AT gmail.com>.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 05:20:45 +00:00
nobu
0249395582 configure.in: no visibility option for older GCC
* configure.in (visibility_option): visibility attribute is not
  available before GCC 4, so do not use -fvisibility option in that
  case.  [ruby-core:48147] [Bug #7205]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 05:06:50 +00:00
ko1
a4f79a6ece Revert the last commit because some tests (in btest) fail
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 04:52:20 +00:00
ko1
d41ec2a79a * thread.c (rb_threadptr_raise): check interrupts after
Thread#raise because the behavior of Thread.current.raise is
  expected to perform same as Kernel.raise (by rubyspec).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 04:33:04 +00:00
ko1
9eba45a72a * vm_core.h, vm_insnhelper.c, vm_eval.c (OPT_CALL_CFUNC_WITHOUT_FRAME):
add a new otpimization and its macro `OPT_CALL_CFUNC_WITHOUT_FRAME'.
  This optimization makes all cfunc method calls `frameless', which
  is fster than ordinal cfunc method call.
  If `frame' is needed (for example, it calls another method with
  `rb_funcall()'), then build a frame. In other words, this
  optimization delays frame building.
  However, to delay the frame building, we need additional overheads:
  (1) Store the last call information.
  (2) Check the delayed frame buidling before the frame is needed.
  (3) Overhead to build a delayed frame.
  rb_thread_t::passed_ci is storage of delayed cfunc call information.
  (1) is lightweight because it is only 1 assignment to `passed_ci'.
  To achieve (2), we modify GET_THREAD() to check `passed_ci' every
  time. It causes 10% overhead on my envrionment.
  This optimization only works for cfunc methods which do not need
  their `frame'.
  After evaluation on my environment, this optimization does not
  effective every time. Because of this evaluation results, this
  optimization is disabled at default.
* vm_insnhelper.c, vm.c: add VM_PROFILE* macros to measure behaviour
  of VM internals. I will extend this feature.
* vm_method.c, method.h: change parameters of the `invoker' function.
  Receive `func' pointer as the first parameter.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 04:22:31 +00:00
tenderlove
3c73f44c7f * ext/psych/parser.c: just get the constant defined in Ruby.
* ext/psych/lib/psych/syntax_error.rb: Psych::SyntaxError now inherits
  from StandardError rather than SyntaxError.  Thanks Eric Hodel!

* test/psych/test_exception.rb: tests for change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-22 21:25:02 +00:00
tenderlove
6c6d4568e8 * ext/psych/lib/psych/scalar_scanner.rb: Cache symbols while
tokenizing.  Thanks Kevin Menard!

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-22 21:24:50 +00:00
tenderlove
ca0cf16734 * ext/psych/lib/psych/scalar_scanner.rb: Updated the RegExp to catch
Strings earlier in the tokenization process.  Thanks Kevin Menard!

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-22 21:24:36 +00:00
tenderlove
b3fb872d9d * ext/psych/lib/psych/visitors/to_ruby.rb: Handle nil tags specially
to avoid slow method_missing calls.  Thanks Kevin Menard!

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-22 21:14:08 +00:00
tenderlove
ec3056ae22 * ext/psych/lib/psych/scalar_scanner.rb: Ignore bad timestamps. If
something looks like a timestamp but has an invalid component, treat
  it as a string instead of throwing an ArgumentError.
  Thanks Rhett Sutphin!

* test/psych/test_scalar_scanner.rb: appropriate tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-22 21:09:56 +00:00
tenderlove
c05952c6a1 * ext/psych/lib/psych/scalar_scanner.rb: Fix scalar_scanner to
understand strings starting with an underscore and containing only
  digits.  Thanks Kelley Reynolds.

* test/psych/test_scalar_scanner.rb: test for fix

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-22 21:06:25 +00:00
svn
1c5ae4b31d * 2012-10-23
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-22 21:02:20 +00:00
tenderlove
b00362eb3e * ext/psych/lib/psych.rb: Changed comment in psych.rb to update new
home page for libyaml.  Thanks to Carolyn Ann.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-22 21:02:16 +00:00
svn
155291a852 * 2012-10-22
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-22 00:47:56 +00:00
naruse
900b62a2e9 Supress warnings: unused variables
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37283 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-22 00:47:50 +00:00
ktsj
f1cbd700e8 * test/ruby/test_settracefunc.rb: remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-21 10:16:27 +00:00
ktsj
811d072dcb * vm_trace.c (rb_threadptr_exec_event_hooks, rb_suppress_tracing):
constified.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37281 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-21 10:14:29 +00:00
ktsj
f21d7d9831 * vm_core.h (rb_vm_t::trace_running): add a new field
`trace_running' to store vm global tracing status.

* vm_trace.c: fix SEGV bug. event_hook was free'd
  even when the hook is still used in another thread.
  [ruby-dev:46141] [Bug #7032]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-21 10:14:26 +00:00
ktsj
93184600c8 * vm_core.h (rb_vm_t::trace_flag): remove `trace_flag'
which is no longer used.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37279 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-21 10:14:24 +00:00
svn
9e3633dfad * 2012-10-21
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-21 09:41:31 +00:00
tadf
2cbb4481bd * ext/date/date_parse.c (date__parse): uses more tight parser if
defined TIGHT_PARSER.  now inactivated; because it introduces
	  incompatibilities and it is a bit slow.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-21 09:41:25 +00:00
eregon
0ef8222e63 * gc.c: fix typos in documentation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37276 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-20 11:36:46 +00:00
nari
c3a46d6aca * include/ruby/ruby.h: add C APIs.
VALUE rb_newobj_of(VALUE klass, VALUE flags)
  #define NEWOBJ_OF(obj,type,klass,flags)
  These allow to change a allocation strategy depending on klass
  or flags.

* gc.c: ditto

* array.c: use new C API.
* bignum.c: ditto
* class.c: ditto
* complex.c: ditto
* ext/socket/ancdata.c: ditto
* ext/socket/option.c: ditto
* hash.c: ditto
* io.c: ditto
* marshal.c: ditto
* numeric.c: ditto
* object.c: ditto
* random.c: ditto
* range.c: ditto
* rational.c: ditto
* re.c: ditto
* string.c: ditto
* struct.c: ditto
  [Feature #7177][Feature #7047]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37275 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-20 06:57:51 +00:00
zzak
f1e488e524 * ext/socket/socket.c: Documentation for Socket
Based on a patch by David Albert
  [Bug #7105] [ruby-core:47828]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-20 03:51:33 +00:00
zzak
dd05478f24 * lib/open-uri.rb: Documentation for OpenURI
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-20 02:01:23 +00:00
svn
167c4781a0 * 2012-10-20
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-19 21:20:37 +00:00