Commit graph

10328 commits

Author SHA1 Message Date
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
nobu
798b8d2791 * bignum.c (rb_big_aref): check for Bignum index range.
[ruby-dev:31271]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-30 02:16:42 +00:00
akr
863e7e95f2 refine tests for shift.
more tests for string to integer conversion.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-19 17:04:53 +00:00
nobu
09ce106ab3 * bignum.c (rb_big_lshift, rb_big_rshift): separated functions
to get rid of infinite recursion.  fixed calculation in edge
  cases.  [ruby-dev:31244]

* numeric.c (rb_fix_lshift, rb_fix_rshift): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-19 05:38:48 +00:00
nobu
192c936e23 * sprintf.c (rb_f_sprintf): more checks for format argument.
[ruby-core:11569], [ruby-core:11570], [ruby-core:11571],
  [ruby-core:11573]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-15 20:45:55 +00:00
akr
746a7ec4f6 refine failure messages.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-15 12:15:42 +00:00
nobu
b64881077e * bignum.c (rb_cstr_to_inum): check leading non-digits.
[ruby-core:11691]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-15 10:05:37 +00:00
akr
3c883bdd17 refined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-15 01:20:56 +00:00
matz
7f0bb427e0 * numeric.c (fix_pow): integer power calculation: 0**n => 0,
1**n => 1, -1**n => 1 (n: even) / -1 (n: odd).

* test/ruby/test_fixnum.rb (TestFixnum::test_pow): update test
  suite.  pow(-3, 2^64) gives NaN when pow(3, 2^64) gives Inf.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-14 14:31:21 +00:00
akr
75d484a453 more assertions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-14 04:13:12 +00:00
akr
3a4e0f1f5a refined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12773 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-13 16:34:19 +00:00
akr
4122a13560 check values around 16bit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-13 15:20:49 +00:00
akr
744701f404 more tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-13 14:50:06 +00:00
akr
3cf28c2caa add assertions using equations taken from Hacker's Delight.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12769 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-13 13:31:41 +00:00
akr
71467c78c2 new file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-13 12:51:27 +00:00
akr
d2113feba8 more tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-13 10:21:50 +00:00
akr
c6818f4104 check (-0x4000000000000000)/(-1) too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12765 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-13 09:35:29 +00:00
akr
c393603f94 add test for [ruby-dev:31210].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-13 09:33:17 +00:00
akr
a309f10475 sentence generator updated.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-13 08:40:09 +00:00
akr
091fb1c2e4 add test for [ruby-dev:31197].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-13 03:47:18 +00:00
nobu
113a709cce * range.c (range_max, range_min): return nil for empty set as well as
1.8 and Enumerable.  [ruby-dev:31198]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-13 02:33:11 +00:00
akr
8f79c623f3 add tests for [ruby-dev:31189] and [ruby-dev:31190].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-12 13:23:29 +00:00
ko1
9aa9c07c07 * test/ruby/test_iterator.rb: fix test to 1.9 spec.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-06 06:55:19 +00:00
akr
56fe47de3a * test/ruby/sentgen.rb: new file.
* test/ruby/test_assignment.rb: tests implemeneted using assignment
  generator and emulator.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-06 03:16:46 +00:00
ko1
6a858e554c * test/ruby/test_basicinstructions.rb: remove an assertion using
unsupported hash literal (such as {1, 2}).
* test/ruby/test_hash.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-05 10:18:53 +00:00
usa
a0d50fa3c4 * numeric.c (int_pow): fix previous nubu's commit.
* test/ruby/test_fixnum.rb: new test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-05 07:38:41 +00:00
akr
50e22262fd revert variable renaming. [ruby-dev:31001]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-04 06:56:16 +00:00
ko1
62deb7dbbd * insn_send.ci: removed.
* common.mk: ditto.
* vm.c (vm_call_bmethod), isnsn.def: added.  fix to use this
  function instead of using goto.
* vm.c (vm_call_bmethod): renamed from th_invoke_bmethod().
* vm.c (vm_method_missing): renamed from eval_methdo_missing().
* vm_evalbody.ci: remove tmp_* variables.
* insnhelper.h: add some macros.
* insns.def: forbid zsuper from method defined by define_method().
* test/ruby/test_super.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12601 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-24 13:05:51 +00:00
technorama
9fa80b19a6 * ext/openssl/{extconf.rb,ossl_ssl_session.c}:
Fix ruby-Bugs-11513.

* ext/openssl/ossl_pkey_ec.c
  New methods EC::Point.[eql,make_affine!,invert!,on_curve?,infinity?]
  By default output the same key form as the openssl command.

* ext/openssl/ossl_rand.c
  New method Random.status?

* test/openssl/test_ec.rb
  New tests.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-18 08:56:21 +00:00
ko1
afb1901848 * hash.c: exchange semantics of Hash#each and Hash#each_pair.
pointed out by [ruby-dev:30997].
* test/ruby/test_iterator.rb: ditto.
* test/ruby/test_yield.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-15 04:25:07 +00:00
ko1
7307d38c4f * test/ruby/test_iterator.rb: remove debug code (GC.stress=true).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12545 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-15 03:37:49 +00:00
ko1
7567fbf080 * vm.c (th_yield_setup_args): |v| should work as |v,|.
ex) def m;yield 1, 2; end; m{|v| p v} #=> 1
* parse.y: apply above change for "for" statement.
* test/ruby/test_assignment.rb: ditto
* test/ruby/test_basicinstructions.rb: ditto.
* test/ruby/test_iterator.rb: ditto.
* test/ruby/test_yield.rb: ditto.
* compile.c (iseq_compile_each): fix debug.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-15 03:27:33 +00:00
ko1
31ac946975 * cont.c (rb_cont_call): forbid cross fiber continuation call.
* test/ruby/test_fiber.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-15 03:20:13 +00:00
usa
8e8a3a07b1 * test/ruby/test_beginendblock.rb: typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-10 07:10:56 +00:00
nobu
7d8743d5c5 * test/ruby/test_beginendblock.rb (test_should_propagate_signaled):
get rid of invoking shell.  [ruby-dev:30942]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-10 04:46:17 +00:00
ko1
8620de6b04 * cont.c (cont_restore_1): fix to check root fiber [ruby-dev:30911].
* test/ruby/test_fiber.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-07 03:48:13 +00:00
naruse
b60d64b001 * lib/json/common.rb: Ponder offering parse\! method.
* lib/json/editor.rb: be a bit more robust while loading data.
* ext/json/ext/{generator,parser}/extconf.rb:
  add a have_header directive for st.h
* test/json: fix some tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-06 22:38:42 +00:00
ko1
6d2dee14f3 * test_fiber.rb: add a test (Continuation and Fiber).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-06 18:30:14 +00:00
ko1
d80e7373cf * cont.c (cont_new): add debug message.
* cont.c (cont_restore_1): copy stack information from fiber.
* cont.c (rb_fiber_s_new): fix to mark created fiber.
* test/ruby/test_fiber.rb: add some tests around Thread and Fiber.
* yarvcore.c (thread_free): fix to skip freeing stack if root fiber
  is available.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-06 18:19:42 +00:00
ko1
9c0b2b8b65 * test/ruby/test_continuation.rb: add a test for last commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-06 01:56:49 +00:00
nobu
a96aacb08c * ext/json, lib/json, test/json: set properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-06 01:54:44 +00:00
ko1
64ffdb4440 * cont.c (rb_fiber_start): clear th->tag and check error to fix
[ruby-dev:30888] and [ruby-dev:30889].
* eval_intern.h: fix rb_fiber_start() prototype.
* test/ruby/test_fiber.rb: add tests for above.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-05 17:55:07 +00:00
ko1
78029f00d5 * parse.y (new_yield), compile.c (iseq_compile_each): fix
passing parameter.
* eval.c, eval_jump.h: simplify rb_yield*.
* proc.c (proc_mark): fix to mark proc->block.proc.
* proc.c (Init_Proc): add Proc#lambda?
* test/ruby/test_lambda.rb: add some tests.
* vm.c (invoke_block): fix to check lambda block or not.
* vm.c (th_yield_setup_args): fix to check arguments size
  when lambda block.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-05 17:26:00 +00:00
naruse
af1c416728 * lib/json.rb, lib/json, ext/json, test/json:
import JSON library.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-04 12:31:26 +00:00
ko1
6b3ef2249c * cont.c (Fiber#pass): rename to Fiber#yield. Block parameter
of fiber body receive first yield values.
  e.g.: Fiber.new{|x| p x}.yield(:ok) #=> :ok
* cont.c: rename rb_context_t#retval to rb_context_t#value.
* test/ruby/test_fiber.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-02 07:48:29 +00:00
ko1
284565992f * cont.c (cont_capture): store all local variables in heap
([ruby-dev:30832]).
* vm.c (th_stack_to_heap): added.
* test/ruby/test_continuation.rb: add a test for above.
* eval_intern.h (th_get_ruby_level_cfp): fix to clean code.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-30 05:56:13 +00:00
ko1
d64609463f * cont.c: fix bug around Continuation and Fiber.
* test/ruby/test_continuation.rb: add tests for Continuation.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-29 01:59:53 +00:00
ko1
57062d91b9 * cont.c: support Fiber. Check test/ruby/test_fiber.rb for detail.
Fiber is known as "Micro Thread", "Coroutine", and other terms.
  At this time, only Fiber#pass is supported to change context.
  I want to know more suitable method name/API for Fiber (... do you
  know more suitable class name instead of Fiber?) as "suspend/resume",
  "call", "yield", "start/kick/stop/restart", ....
* eval.c, eval_intern.h, thread.c, yarvcore.c, yarvcore.h: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-27 19:12:43 +00:00
nobu
a1cb9efd34 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e 2007-05-25 15:04:05 +00:00
nobu
2b9cbceb5e * test/ruby/test_beginendblock.rb (test_endblockwarn): now parser
warnings emit source names and line numbers.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12283 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-15 07:38:59 +00:00