36995 Commits

Author SHA1 Message Date
usa
5de2bb431a * test/rubygems/test_gem_specification.rb: '/' is not always the root.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47623 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-18 06:03:24 +00:00
naruse
0ad72caa65 add .tar.xz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47622 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-18 01:30:09 +00:00
nobu
4cd2a4d74a vm_method.c: configurable global method cache size
* vm_method.c (Init_Method): make global method cache size
  configurable by environment variable
  "RUBY_GLOBAL_METHOD_CACHE_SIZE"  [Fix GH-719]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-18 00:36:37 +00:00
normal
11548f9253 test/-ext-/string/test_modify_expand.rb: increase limit for {je,tc}malloc
In this test, jemalloc and tcmalloc are both more hesitant to
release memory to the kernel than the stock glibc allocator.

Tested on jemalloc 3.6.0 (self-built) and libtcmalloc-minimal 2.0-2
(Debian package) on x86_64-linux

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 22:05:22 +00:00
normal
338cea741d ext/zlib/zlib.c (struct gzfile): pack (288 => 272 bytes) on 64-bit
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 22:01:31 +00:00
svn
0744ae5748 * 2014-09-18
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 21:21:26 +00:00
normal
7914a8726e socket (rsock_connect): fix and refactor for blocking
* ext/socket/init.c (rsock_connect): refactor for blocking
  (wait_connectable): clear error before wait
  [Bug #9356]

We no longer use non-blocking sockets to emulate blocking behavior,
so eliminate error-prone and confusing platform-dependent code.
According to POSIX, connect() only needs to be called once in the
face of EINTR, so do not loop on it.

Before waiting on connect, drop any pending errors, since
rb_wait_for_single_fd may not clear the existing error
properly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 21:20:58 +00:00
naruse
106075eac8 Re-apply r43023 which is accidentally reverted by r47598
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 14:53:08 +00:00
naruse
e37aab94da * lib/uri/rfc3986_parser.rb: specify a regexp for :OPAQUE; generic.rb
assumes it is present, and will refuse all values otherwise.
  by Matthew Draper <matthew@trebex.net>
  https://github.com/ruby/ruby/pull/718 fix GH-718

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 14:15:03 +00:00
normal
f5e06db39c ext/zlib/zlib.c (zlib_mem_alloc): check overflow
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 07:26:12 +00:00
hsbt
842e0b05ea * test/fiddle/test_import.rb (Fiddle::TestImport#test_sizeof):
added test for long long [fix GH-716]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 02:33:41 +00:00
hsbt
b14afd8fde * tool/rbinstall.rb: fixed invalid options with latest rubygems.
https://github.com/rubygems/rubygems/issues/1013

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 02:09:27 +00:00
svn
3e9a71d784 * 2014-09-17
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 00:54:20 +00:00
nobu
f2f81900ce vm_method.c: single expression
* vm_method.c (GLOBAL_METHOD_CACHE): make a single expression.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 00:54:10 +00:00
nobu
29329d55ec bm_app_aobench.rb: update links [ci skip]
* benchmark/bm_app_aobench.rb: update outdated links to the
  original program.  [ruby-dev:48550] [Feature #10247]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47603 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-16 10:18:53 +00:00
nobu
c49c63e02d regenc.h: shrink PosixBracketEntryType
* regenc.h (PosixBracketEntryType): shrink by embedding `name` and
  reordering.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47602 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-16 02:44:19 +00:00
nobu
5f63d9e741 regparse.c: remove unused variable
* regparse.c (add_ctype_to_cc): suppress a warning by removing
  unused variable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47601 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-16 02:44:10 +00:00
nobu
57a1688743 sprintf.c: integer overflow
* sprintf.c (rb_str_format): fix a possible integer overflow and
  suppress implicit conversion warnings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47600 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-16 02:44:04 +00:00
svn
279086dd61 * 2014-09-16
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-15 16:18:54 +00:00
naruse
d2a5354255 * reg*.c: Merge Onigmo 5.15.0 38a870960aa7370051a3544
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-15 16:18:41 +00:00
normal
d198d64e04 trivial packing for on-stack structs
* io.c (struct io_advise_struct): 32 => 24 bytes on 64-bit
* io.c (struct io_internal_writev_struct): 24 => 16 bytes on 64-bit
* process.c (struct waitpid_arg): ditto

Slightly reduce stack pressure.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-15 07:31:38 +00:00
normal
667d502adb benchmark/bm_app_aobench.rb: spelling fix [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-15 07:17:37 +00:00
nobu
8ae989f6b6 pathname.rb: fix a Pathname#relative_path_from crash on
* ext/pathname/lib/pathname.rb (SAME_PATHS):
  Pathname#relative_path_from uses String#casecmp to compare strings
  on case-insensitive filesystem platforms (e.g., Windows). This can
  return nil for strings with different encodings, and the code
  previously assumed that it always returned a Fixnum.  [Fix GH-713]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-15 01:29:21 +00:00
nobu
065b6d2b7c fiddle/import.rb: fix typo
* ext/fiddle/lib/fiddle/import.rb (Fiddle::Importer#sizeof): fix typo,
  SIZEOF_LONG_LON.  [Fix GH-714]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-15 00:43:14 +00:00
svn
80f431990c * 2014-09-15
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47589 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-14 23:13:47 +00:00
nobu
230b845fa2 sprintf.c: improve rational 'f' format
* sprintf.c (rb_str_format): rational 'f' format works for more
  values.  [fix GH-717]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47588 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-14 23:13:36 +00:00
normal
7b09deef51 vm.inc.tmpl + instruction.rb: typo fixes
* template/vm.inc.tmpl: "insns.c" => "insns.def"
* tool/instruction.rb: typo fix

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-14 07:58:25 +00:00
svn
ee04ba6025 * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-14 03:30:36 +00:00
hsbt
b41b613e68 * test/test_tracer.rb: fixed testcase for rubygems update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-14 03:30:08 +00:00
hsbt
4de117a615 * lib/rubygems: Update to RubyGems 2.4.1 master(713ab65)
Complete history at:
  https://github.com/rubygems/rubygems/blob/master/History.txt#L3-L216
* test/rubygems:  ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-14 03:30:02 +00:00
tenderlove
e548c09d42 * ext/psych/lib/psych.rb: update version
* ext/psych/psych.gemspec: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-14 02:04:03 +00:00
nobu
e5a3c25a69 compile.c, gc.c: suppress warnings
* compile.c (iseq_compile_each): suppress implicit conversion
  warning by old apple gcc 4.2.

* gc.c (RVALUE_FLAGS_AGE, heap_page_allocate): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-14 01:56:53 +00:00
normal
e7f6d9e25a ccan/container_of: add container_of_or_null
* ccan/container_of/container_of.h (container_of_or_null): added
  [ccan 7ec5b8e06b2fd5fa98b1fcde1158c286d2d429d8] (David Gibson)

It's quite common to have a pointer which could be either a pointer to a
structure member, or NULL.  This needs special casing with container_of(),
or it will convert NULL into something strange.

This patch adds container_of_or_null(), which will return NULL if passed
(an appropriately typed) NULL, or the containining structure as
container_of() otherwise.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 23:49:28 +00:00
svn
a5fc33c0e2 * 2014-09-14
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 23:49:26 +00:00
normal
c975dc96b7 ccan/list: new list_{del,node}_init functions
* ccan/list/list.h (list_del_init, list_node_init): new functions
  for multiple list_del() calls
  [ccan ec8654d94d3c5c47aa5f82698f7e8048c79765b1] (Rusty Russell)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 23:49:15 +00:00
nobu
f3c9ffe094 hash.c: [DOC] fix for Hash#store docs
* hash.c (rb_hash_aset): fix misleading example which may suggest
  that Hash.store will return self instead of value - Hash#store
  is returning value and update itself, as well as Hash#[]=.
  [Fix GH-715]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 13:19:27 +00:00
nobu
ab22202a50 class.c: simplify
* class.c (singleton_class_of): use local variable and remove
  duplicated member access.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 13:07:04 +00:00
nobu
4df147d6e8 class.c: freeze meta class only
* class.c (singleton_class_of): should not propagete freezing to
  meta meta class.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 13:03:46 +00:00
normal
05b374b824 class.c: use ALLOC(rb_subclass_entry_t)
It is easier to search for allocations by type.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 06:17:58 +00:00
normal
d2e3c03409 simplify some trivial rb_data_type_t callbacks
* process.c (free_exec_arg): remove
  (memsize_exec_arg): ptr is never NULL
  (exec_arg_data_type): use RUBY_TYPED_DEFAULT_FREE

* variable.c (autoload_i_free): remove
  (autoload_data_i_type): use RUBY_TYPED_DEFAULT_FREE
  (autoload_memsize): ptr is never NULL

* vm_backtrace.c (location_free): remove
  (location_mark): ptr is never NULL
  (location_data_type): use RUBY_TYPED_DEFAULT_FREE
  (backtrace_mark): ditto
  (backtrace_free): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 05:14:51 +00:00
normal
161deb2196 doc/NEWS-2.0.0: fix typo for default RUBY_FIBER_MACHINE_STACK_SIZE
Checked against definition in vm_core.h
[ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 04:44:08 +00:00
suke
5b800bef9e * ext/win32ole/win32ole_event.c(ev_advise, ole_event_free,
fev_s_allocate, fev_unadvise): avoid segmentation fault when COM
  server freed before calling Unadvise from WIN32OLE_EVENT object.
* ext/win32ole/win32ole.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 02:28:47 +00:00
nobu
da7475b00d parse.y: intern_cstr
* parse.y (intern_cstr): remove `_without_pindown` suffix and use
  rb_intern3() as well as RIPPER, for the time being.
  [ruby-core:65009] [Bug #10206]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47569 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 01:28:57 +00:00
nobu
0fa9553604 eval.c: fix message as same as previous versions
* eval.c (rb_frozen_class_p): fix message for singleton class of
  class/module as same as previous versions.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 01:22:01 +00:00
normal
92c1d1a950 man/ruby.1: use https for *.ruby-lang.org links
Avoid redirects which may be MitM-ed and slow.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 00:48:36 +00:00
nobu
bf1c869b16 test_yield.rb: use temporary instance
* test/ruby/test_yield.rb (test_with_enum): use temporary
  instance, do not define a method on the global class object.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 00:47:02 +00:00
normal
2e33fdfbca vm.c (thread_alloc): remove needless volatile
If we needed a volatile there, every other alloc function would need it.
There is nothing special I can see about thread_alloc which would
justify it.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-12 21:34:25 +00:00
normal
1972a3136c proc/env DATA_PTR is never NULL
* proc.c (proc_free): remove, use RUBY_TYPED_DEFAULT_FREE
  (proc_mark, proc_memsize): remove needless branching

* vm.c (env_free): remove, use RUBY_TYPED_DEFAULT_FREE
  (env_mark, env_memsize): remove needless branching

This shows a tiny ~0.5% improvement in benchmark/bm_vm2_newlambda.rb
but also removes a lot of code.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-12 21:34:12 +00:00
svn
bb2cec10c0 * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-12 20:58:04 +00:00
normal
ec475ab32d proc.c (rb_proc_alloc): inline and move to vm.c
* proc.c (rb_proc_alloc): inline and move to vm.c
  (rb_proc_wrap): new wrapper function used by rb_proc_alloc
  (proc_dup): simplify alloc + copy + wrap operation
  [ruby-core:64994]

* vm.c (rb_proc_alloc): new inline function
  (rb_vm_make_proc): call rb_proc_alloc

* vm_core.h: remove rb_proc_alloc, add rb_proc_wrap

* benchmark/bm_vm2_newlambda.rb: short test to show difference

First we allocate and populate an rb_proc_t struct inline to avoid
unnecessary zeroing of the large struct.  Inlining speeds up callers as
this takes many parameters to ensure correctness.  We then call the new
rb_proc_wrap function to create the object.

rb_proc_wrap - wraps a rb_proc_t pointer as a Ruby object, but
we only use it inside rb_proc_alloc.  We must call this before
the compiler may clobber VALUE parameters passed to rb_proc_alloc.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-12 20:57:45 +00:00