Commit graph

6433 commits

Author SHA1 Message Date
marcandre
ca7f52a32a * enumerator.c: Allow Enumerator size argument to be any callable.
Patch by Avdi Grimm. [bug #8641] [ruby-core:56032] [fix GH-362]

* test/ruby/test_enumerator.rb: Test for above

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-27 02:50:08 +00:00
tenderlove
988ca60565 * io.c (io_read_nonblock): support non-blocking reads without raising
exceptions. As in: `io.read_nonblock(size, exception: false)`
  [ruby-core:38666] [Feature #5138]
* ext/openssl/ossl_ssl.c (ossl_ssl_read_internal): ditto
* ext/stringio/stringio.c (strio_sysread): ditto
* io.c (rb_io_write_nonblock): support non-blocking writes without
  raising an exception.
* ext/openssl/ossl_ssl.c (ossl_ssl_write_internal): ditto
* test/openssl/test_pair.rb (class OpenSSL): tests
* test/ruby/test_io.rb (class TestIO): ditto
* test/socket/test_nonblock.rb (class TestSocketNonblock): ditto
* test/stringio/test_stringio.rb (class TestStringIO): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-26 22:41:44 +00:00
drbrain
e487a7f53c * lib/rubygems: Import RubyGems 2.1.0 Release Candidate
* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-26 20:24:51 +00:00
nobu
a6a85a0cb7 parse.y: warn CR
* parse.y (parser_nextc): warn carriage return in middle of line.
  [ruby-core:56240] [Feature #8699]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-26 07:25:08 +00:00
nobu
1a3bcf103c timeout.rb: skip rescue
* lib/timeout.rb (Timeout#timeout): should not be caught by rescue
  clause.  [Bug #8730]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-26 06:27:48 +00:00
akr
811eaddf4c * process.c (rb_clock_gettime): The emulated clock names changed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-24 01:38:34 +00:00
akr
282bbea0d9 add tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-23 13:46:25 +00:00
akr
a641003f66 * process.c (rb_clock_gettime): Strip "s" from unit names.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-22 13:04:06 +00:00
ko1
30b1947df2 * insns.def: fix regexp's once option behavior.
fix [ruby-trunk - Bug #6701]
* insns.def: remove `onceinlinecache' and introduce `once' instruction.
  `once' doesn't use `setinlinecache' insn any more.
* vm_core.h: `union iseq_inline_storage_entry' to store once data.
* compile.c: catch up above changes.
* iseq.c: ditto.
* vm.c, vm_insnhelper.c: ditto. fix `m_core_set_postexe()' which
  is depend on `onceinlinecache' insn.
* test/ruby/test_regexp.rb: add tests.
* iseq.c: ISEQ_MINOR_VERSION to 1 (should increment major?)



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-20 17:41:13 +00:00
ngoto
4d0fd22e7d * test/gdbm/test_gdbm.rb: skip TestGDBM#test_s_open_lock on Solaris.
On Solaris (and platforms which do not have flock and have lockf),
  with GDBM 1.10, gdbm_open(3) blocks when opening already locked
  gdbm file. [Bug #8790] [ruby-dev:47631]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-20 04:46:37 +00:00
ko1
158f3547e9 * test/ruby/test_fiber.rb: collect garbage fibers immediately.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-19 08:44:50 +00:00
ko1
e4f51f80d0 * test/profile_test_all.rb: add `failed?' information.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-19 08:43:13 +00:00
ktsj
fe360c463c * variable.c, vm_method.c: remove dead code.
* test/ruby/test_fiber.rb, test/ruby/test_thread.rb:
  change accordingly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-18 11:27:42 +00:00
eregon
f79aeb60e7 * test/ruby/test_time.rb: use the in_timezone() helper
and define it at the top with other helpers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-17 14:25:34 +00:00
eregon
43b80e0988 * test/ruby/test_time.rb (#in_timezone): fix typo of r42596
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-17 14:20:12 +00:00
nobu
5685abe6c3 time.c: ignore invalid data
* time.c (time_mload): ignore invalid offset and zone.
  [ruby-core:56648] [Bug #8795]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-17 13:20:50 +00:00
ko1
ff377d9e81 * test/profile_test_all.rb: fix typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-16 09:12:36 +00:00
ko1
55251d0c83 * test/profile_test_all.rb: remove space characters from test names.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-16 09:10:06 +00:00
ko1
769715bda5 * test/profile_test_all.rb: refactoring memory profiling tool for
test-all.
  Add profiling targets /proc/meminfo and /proc/self/status.
* test/runner.rb: accept other than 'true'.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-16 08:46:21 +00:00
usa
f2e870c9a7 * file.c (rb_file_size, rb_file_flock): improve parformance of Winodws.
* file.c (rb_file_truncate): removed unnecessary #ifdef.

* test/test_file.rb (TestFile#test_truncate_size): added an assertion
  for File#size.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-16 02:26:28 +00:00
usa
ce3ca270a5 * test/ruby/test_file.rb (TestFile#test_truncate_size): test for
above changes.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-15 12:38:02 +00:00
usa
d6af2a2b21 * io.c, internal.h (rb_io_flush_raw): new function to select calling
fsync() (on Windows).

* io.c (rb_io_flush_raw): use above function.

* file.c (rb_file_truncate): use above function.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-15 11:53:41 +00:00
usa
9972c18c12 * test/fileutils/test_fileutils.rb (TestFileUtils#test_rmdir):
FileUtils.rmdir ignores Errno::ENOTEMPTY, so, in such cases, this
  assertion is nonsence.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-15 07:32:07 +00:00
usa
a66d568524 * test/test_pstore.rb
(PStoreTest#test_pstore_files_are_accessed_as_binary_files): need more time.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-14 11:16:11 +00:00
naruse
e3488fcee1 get detailed ps data to debug
add -L/-H/-M to get thread info

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-14 10:16:33 +00:00
usa
e74a9c0668 * test/test_pstore.rb
(PStoreTest#test_pstore_files_are_accessed_as_binary_files): changed because
  vc10-x64 CI fails with timeout.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-14 05:59:22 +00:00
usa
a28d1eff65 * proc.c (rb_mod_define_method): now they return the symbols of the
defined methods, not the methods/procs themselves.
  [ruby-dev:42151] [Feature #3753]

* NEWS: documents about above change and def-expr (see r42337).

* test/ruby/test_module.rb: tests about above change.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-14 05:35:21 +00:00
nobu
d551b78d4a test_dir_m17n.rb: fixed encoding file system on OS X
* test/ruby/test_dir_m17n.rb (test_filename_as_bytes_extutf8),
  (test_filename_bytes_euc_jp, test_filename_euc_jp),
  (test_filename_ext_euc_jp_and_int_utf_8): Mac OS X also has fixed
  encoding file system.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-14 00:10:58 +00:00
nobu
26feae3958 random.c: coerce before check negative
* random.c (rb_random_ulong_limited): coerce before check negative.
  [Fixes GH-379]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-13 13:13:02 +00:00
nobu
944c620dfa object.c: undef Module#prepend_features on Class
* object.c (Init_Object): undef Module#prepend_features on Class, as
  well as Module#append_features.  [Fixes GH-376]
* test_class.rb: Added test for above. And ensure type checking
  on similar methods as module_function.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-13 12:52:25 +00:00
nobu
c48b4209c2 parse.y: CR in middle
* parse.y (parser_whole_match_p): treat CR in middle of a line as a
  mere whitespace.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-12 06:59:57 +00:00
ko1
9af743fe0e * class.c (rb_prepend_module): make T_ICLASS object shady because
this T_ICLASS object seems to share method table with other class
  objects. It was causes WB miss.
  TODO: need to know the data structure.
* test/ruby/test_module.rb: add a test for WB miss.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-12 06:19:15 +00:00
nobu
863989993a file.c: OSX path encoding
* file.c (rb_str_encode_ospath): OS path encoding on Mac OS X is also
  fixed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-11 14:27:04 +00:00
nobu
7cb53ed363 test_require.rb: __FILE__ encoding on Windows
* test/ruby/test_require.rb (assert_require_nonascii_path): OS path
  encoding on Windows is fixed, so encoding of __FILE__ should be it.
  [ruby-core:56498] [Bug #8764]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-11 13:57:29 +00:00
kou
bd2b8d2603 * test/rexml/parser/test_sax2.rb: Expand abbreviated class name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-11 10:12:28 +00:00
kou
45222164dc * lib/rexml/sax2listener.rb (REXML::SAX2Listener#notationdecl): Fix
wrong number of arguments in the template listener.
  [Bug #8731] [ruby-dev:47582]
  Reported by Ippei Obayashi.
* test/rexml/parser/test_sax2.rb: Add tests for parsing notation
  declarations with SAX2 API.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-11 10:08:05 +00:00
kou
7e0022bc8e * lib/rexml/parsers/sax2parser.rb (REXML::Parsers::SAX2Parser#parse):
Fix wrong "%" position in parameter entity declaration event argument.
* test/rexml/parser/test_sax2.rb: Add tests for the above case.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-11 09:41:29 +00:00
kou
f61f11a936 * lib/rexml/parsers/sax2parser.rb (REXML::Parsers::SAX2Parser#parse):
Support NDATA in external entity declaration.
* test/rexml/parser/test_sax2.rb: Add tests for the above case.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-11 09:09:25 +00:00
kou
ce89dedde3 * NEWS (REXML::Parsers::SAX2Parser): Add about this change.
* lib/rexml/parsers/sax2parser.rb (REXML::Parsers::SAX2Parser#parse):
  Fix wrong number of arguments. Document says "an array of the
  entity declaration" but it passes two or more arguments.
  This is a bug but it break backward compatibility.
  Reported by Ippei Obayashi. [Bug #8731] [ruby-dev:47582]
* lib/rexml/sax2listener.rb (REXML::SAX2Listener#entitydecl): ditto.
  The listener template accepted two arguments.
* test/rexml/parser/test_sax2.rb: Add tests for external ID case.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-11 09:01:41 +00:00
kou
99ed561b4b * test/rexml/parser/test_sax2.rb: Add SAX2 API test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42512 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-11 08:43:17 +00:00
nobu
c6282e9bf9 parse.y: non-local/const attrset
* parse.y (rb_enc_symname_type): allow ID_ATTRSET for ID_INSTANCE,
  ID_GLOBAL, ID_CLASS, ID_JUNK too.  [Bug #8756]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-11 06:11:17 +00:00
akr
93bb48995c * process.c (rb_clock_gettime): New method.
This is accepted in the meeting:
  https://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20130809
  This method is accepted as a CRuby feature.
  I.e. Other Ruby implementations don't need to implement it.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-11 02:59:30 +00:00
naruse
9962aad7b0 * file.c (rb_str_normalize_ospath):
HFS Plus (Mac OS Extended) uses a variant of Normal Form D in which
  U+2000 through U+2FFF, U+F900 through U+FAFF, and U+2F800 through
  U+2FAFF are not decomposed (this avoids problems with round trip
  conversions from old Mac text encodings).
  http://developer.apple.com/library/mac/qa/qa1173/_index.html
  Therefore fix r42457 to exclude the range.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42498 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-10 20:44:10 +00:00
nobu
0dd8ec36c0 parse.y: non-local/const attrset
* parse.y (rb_id_attrset): allow other than ID_ATTRSET.
* parse.y (intern_str): ditto.  try stem ID for ID_INSTANCE,
  ID_GLOBAL, ID_CLASS, ID_JUNK too.  [Bug #8756]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-10 04:53:31 +00:00
kou
8a4567b207 * test/rexml/parse/test_document_type_declaration.rb: Add tests for
parsing document type declaration.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-10 03:40:58 +00:00
kou
b729f2da30 * test/rexml/parse/test_notation_declaration.rb (#test_system_public):
Add a test for PUBLIC notation and SYSTEM notation order case.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-10 02:59:15 +00:00
kou
6d18dd8e4d * lib/rexml/parsers/baseparser.rb (REXML::Parsers::BaseParser::PUBLIC):
Fix loose "head" match regular expression.
  [Bug #8701] [ruby-dev:47551]
  Patch by Ippei Obayashi. Thanks!!!
* test/rexml/parse/test_notation_declaration.rb (#test_system_public):
  Add a test for the above case.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-10 02:34:06 +00:00
nobu
e941e50506 ruby.c: use String path version parser functions
* ruby.c (load_file_internal): use rb_parser_compile_string_path and
  rb_parser_compile_file_path, String path name versions.  [Bug #8753]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-09 13:20:58 +00:00
ko1
568c5a8193 * proc.c: add Binding#local_variable_get/set/defined?
to access local variables which a binding contains.
  Most part of implementation by nobu.
* test/ruby/test_proc.rb: add a tests for above.
* vm.c, vm_core.h (rb_binding_add_dynavars): add a new function
  to add a new environment to create space for new local variables.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-09 09:51:00 +00:00
nobu
c04f402f0f file.c: normalize Form C
* file.c (rb_str_normalize_ospath): normalize to Normalization Form C
  using CFString.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-09 03:06:53 +00:00