977 Commits

Author SHA1 Message Date
akr
4fe6fa8849 add test for [ruby-dev:31650] and [ruby-dev:31659].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-08 15:59:05 +00:00
akr
89e1e1e784 add test for [ruby-dev:31759].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-07 23:06:33 +00:00
matz
d790c7c802 * test/ruby/test_fiber.rb (TestFiber::test_throw): uncaught throw
now raise ArgumentError exception.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-07 18:00:44 +00:00
suke
9ecd43fa98 * ext/win32ole/win32ole.c: add WIN32OLE_EVENT#unadvise.
* test/win32ole/test_win32ole_event.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13341 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-04 11:48:53 +00:00
akr
96c859834e add a test for [ruby-dev:31709].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-02 06:39:58 +00:00
akr
2c8e7a50c1 * include/ruby/ruby.h (struct RBignum): embed digits in RBignum for
small bignums.

* bignum.c: RBignum embeded digits implemented.

* include/ruby/intern.h: declare rb_big_resize.

* gc.c: don't free embedded digits.

* numeric.c: replace direct bignum field accessor by abstract field
  accessor such as RBIGNUM(val)->sign to RBIGNUM_SIGN(val).

* sprintf.c: ditto.

* compar.c: ditto.

* marshal.c: ditto.

* random.c: ditto.

* .gdbinit: support embedded small bignums.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-01 12:02:36 +00:00
usa
1588a79069 * test/socket/test_tcp.rb (test_recvfrom): same as mswin32 on mswin64.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13328 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-01 07:27:26 +00:00
suke
41585e424b * ext/win32ole/win32ole.c (ole_type_progid): progid getted by
ProgIDFromCLSID should be freed by CoTaskMemFree. Thanks, arton.

* test/win32ole/test_win32ole.rb (test_raise_message): set negative
  compareMode value to raise WIN32OLERuntimeError.

* test/win32ole/test_win32ole_type.rb (test_implemented_ole_types):
  support some environment which returns IShellDispatch5 instead 
  of IShellDispatch.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-28 10:23:31 +00:00
nobu
01c24a2f78 * test/ruby/test_string.rb (test_splice!): tests for [ruby-dev:31665].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-28 06:19:11 +00:00
ko1
6244e502cc * thread.c: fix Mutex to be interruptable lock.
* thread_win32.ci, thread_win32.h, thread_pthread.ci, thread_pthread.h:
  prepare native_cond_*() which are based on pthread_cond_*() spec.
* prelude.rb: fix Mutex#synchronize method.
* vm_core.h, include/ruby/intern.h: change unblock function interface
  (to pass some user data).
* file.c, process.c: ditto.
* benchmark/bm_vm2_mutex.rb: add a benchmark for mutex.
* benchmark/bm_vm3_thread_mutex.rb: add a benchmark for mutex
  with contension.
* benchmark/run.rb: fix to remove ENV['RUBYLIB'] for matzruby.
* test/ruby/test_thread.rb: add a test.
* common.mk: fix benchmark options.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-27 16:48:14 +00:00
suke
a1a618ead1 * ext/win32ole/win32ole.c (ole_type_progid): fix the bug.
[ruby-dev:31576]

* test/win32ole/test_win32ole_type.rb (test_initialize):
  remove duplicate assertions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-27 11:38:29 +00:00
matz
1a0b7d0fb6 * io.c (rb_io_each_byte): caused infinite loop. [ruby-dev:31652]
* io.c (rb_io_getc): should return nil at EOF, not EOFError.

* lib/delegate.rb (SimpleDelegator::__setobj__): use raise
  argument to specify backtrace.

* test/ruby/test_fnmatch.rb (TestFnmatch::bracket_test):
  String#include? no longer works for Fixnum.  use #chr.
  [ruby-dev:31652]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-26 17:22:26 +00:00
ko1
d55c0f5382 * cont.c: fix to remove Fiber.new until fiber.so is not loaded.
* test/ruby/test_continuation.rb: fix to use resume.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-26 03:31:20 +00:00
ko1
cf16f0de0f * test/ruby/test_fiber.rb: fix to require 'continuation'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-25 20:54:50 +00:00
akr
0ada813abf test assignment order.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-25 03:03:29 +00:00
ko1
977d66ec99 * cont.c: separate Continuation and Fiber from core.
* ext/continuation/*, ext/fiber/*: ditto.
* include/ruby/ruby.h: remove rb_cFiber.
* include/ruby/intern.h: add the rb_fiber_new() declaration.
* enumerator.c (next_init): fix to use rb_fiber_new().
* test/ruby/test_enumerator.rb: remove next? tests.
* test/ruby/test_continuation.rb: add a require 'continuation'.
* test/ruby/test_fiber.rb: add a require 'fiber'.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-25 02:03:44 +00:00
akr
4c86818f47 * test/ruby/sentence.rb (Sentence): include Enumerable.
(Sentence#each): defined.

* test/ruby/test_assignment.rb: use Sentence#expand.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-24 19:01:46 +00:00
matz
901343a761 * enumerator.c (enumerator_next): stop pre-fetching.
* enumerator.c (Init_Enumerator): remove next? method.

* eval.c (rb_f_loop): now handles StopIteration exception.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-24 10:48:43 +00:00
matz
4e183b11ac * test/ruby/test_dir.rb (TestDir::setup): ?c now makes a string.
* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::initialize):
  initialize @workdir to stop warning.

* lib/drb/drb.rb (DRb::DRbServer::InvokeMethod::perform_without_block): 
  replace funcall by send!.  other files in the distribution as well.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-24 09:57:53 +00:00
suke
32716144fd * ext/win32ole/win32ole.c (reg_get_value): use RegQueryValueEx instead
of RegQueryValueEx.

* ext/win32ole/win32ole.c (typelib_file_from_clsid): fix the bug
  that the function always returns Qnil.

* test/win32ole/test_win32ole_type.rb (test_initialize): add some test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-23 11:14:03 +00:00
matz
40b5c7b26c * util.c (ruby_strtod): replaced by the implementation by David
M. Gay inspired by William D. Clinger's paper "How to Read Floating
  Point Numbers Accurately" [Proc. ACM SIGPLAN '90, pp. 92-101].
  a patch from Satoshi Nakagawa <snakagawa AT infoteria.co.jp>.
  [ruby-dev:31582]

* test/ruby/test_float.rb (TestFloat::test_float): add test for
  precision.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13131 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-21 20:57:48 +00:00
ko1
c5e4cd0638 * cont.c: add Fiber#resume and Fiber.yield.
and Fiber::Core class to realize Coroutine.
* include/ruby/intern.h: declare rb_fiber_yield(), rb_fiber_resume(),
* enumerator.c: use above api.
* test/ruby/test_fiber.rb: fix and add tests for above changes.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13130 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-21 18:51:39 +00:00
ko1
3fffbe1e82 * test/ruby/test_enumerator.rb: fix last commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13122 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-20 19:09:03 +00:00
ko1
2d3724e058 * test_enumerator.rb (enum_test): fix to return sorted
array (for Hash test).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-20 19:00:27 +00:00
ko1
ad56f8c611 * enumerator.c (next_i): fix to return with Fiber#yield at
the end of each block.  [ruby-dev:31470]
* enumerator.c (enumerator_next_p): call init_next if not
  initialized.  [ruby-dev:31514]
* test/ruby/test_enumerator.rb: add tests for Enumerator.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13120 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-20 18:58:32 +00:00
akr
cf82149d21 Sentence.expand_syntax refined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-19 15:43:04 +00:00
akr
a854a4358f * test/ruby/sentence.rb: new method Sentence().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13110 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-19 03:37:14 +00:00
akr
9e5d0d861f sentence.rb documented.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13108 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-18 17:04:06 +00:00
akr
7017b63b81 * test/ruby/test_yield.rb (TestYieldGen): relax array size check
in nested parameters.
  [ruby-dev:31485]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-18 10:04:24 +00:00
akr
88e1fec393 lambda yield emulator refactored.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-18 06:31:04 +00:00
akr
f62fff5f41 * test/ruby/test_yield.rb (TestYieldGen): add test for yielding to
lambda using lambda parameter passing emulator.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-18 03:44:28 +00:00
nobu
54a3576eaa * sample/test.rb, test/ruby/test_system.rb(valid_syntax?): keep
comment lines first.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-18 03:24:32 +00:00
nobu
69dd06ae68 * eval.c (frame_func_id): return proper method ID.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-17 16:12:03 +00:00
ko1
ad272173cd * test/ruby/test_basicinstructions.rb: fix old tests.
class variables should be inherited.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-17 13:11:39 +00:00
akr
c710449a85 fix "&" handling in block parameter.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-16 12:07:29 +00:00
akr
9a26bd3f57 * test/ruby/sentence.rb: Sentence class implemented
based on sentgen.rb

* test/ruby/sentgen.rb: removed.

* test/ruby/test_assignment.rb: use sentence.rb.

* test/ruby/test_yield.rb: block parameter passing emulator
  implemented.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-16 10:21:16 +00:00
akr
aca2aa2457 TestRubyYieldGen#test_yield needs too long time.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-15 05:17:06 +00:00
nobu
4edc1d8c9c * hash.c (rb_hash_delete_key): delete the entry without calling block.
* hash.c (rb_hash_shift): should consider iter_lev too.

* hash.c (delete_if_i): use rb_hash_delete_key() so that the block
  isn't called twice.  [ruby-core:11556]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-15 04:50:12 +00:00
kou
3349fd5826 * lib/rss/rss.rb: 0.1.8 -> 0.1.9.
* test/rss/test_version.rb: followed the above change.

* lib/rss/parser.rb: fixed a bug that handles unintended elements.
  Thanks to Takuo Yonezawa. [ruby-list:43841]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-13 15:06:58 +00:00
akr
fb20d67ff5 update syntax (f_marg_list).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-09 06:15:44 +00:00
matz
c186fdb90b * enumerator.c (enumerator_next_p): should check correctly even when
e.next has not been called before.

* enumerator.c (enumerator_next): raise StopIteration (name taken
  from Python) instead of IndexError.

* enum.c (enum_zip): catch StopIteration exception.

* enumerator.c (enumerator_with_index): return Enumerator if no
  block is given.

* test/ruby/test_iterator.rb (TestIterator::test_enumerator): add
  test for enumerators.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-08 07:07:03 +00:00
akr
cc317d9208 variable renaming refined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-08 04:45:15 +00:00
suke
785d6c7778 remove puts for debug
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12900 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-07 11:01:06 +00:00
suke
f4a3bcbff0 fix test of PROPERTYPUT_REF in some environment
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-06 11:37:22 +00:00
akr
7bc137942d add test using sentgen.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-06 08:39:01 +00:00
tadf
cbc22bf9bd added an assertion.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-05 04:06:08 +00:00
kou
71976790ec * lib/rss, sample/rss, test/rss:
- 0.1.7 -> 0.1.8.
  - supported <itunes:XXX>.
  - reverted backward incompatibility API changes introduced 0.1.7.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-05 03:03:05 +00:00
nobu
46e848a65a * sprintf.c (rb_f_sprintf): should not check positional number as
width.  [ruby-core:11838]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-02 04:46:41 +00:00
nobu
12b1e59f2e * generic.rb (URI::Generic::merge_path): behave as RFC 3986.
[ruby-talk:252052]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-01 03:40:08 +00:00
akr
8721f3983d add assertions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12858 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-30 03:45:05 +00:00