1909 Commits

Author SHA1 Message Date
matz
3e6f0e6a20 * numeric.c (int_round): should not return false, but self.
[ruby-dev:31212]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-13 15:38:48 +00:00
nobu
b53224b493 * lib/mkmf.rb (link_command, cc_command, cpp_command): do not expand
::CONFIG which is an alias of MAKEFILE_CONFIG.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-13 01:10:48 +00:00
usa
2e4f2aaaf0 * include/ruby/ruby.h (FIX2ULONG): drop sign bit for LLP64 platform.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-11 20:35:10 +00:00
nobu
c18e8ad7e9 * bcc32/{Makefile.sub,setup.mak}: remove surplus slash from srcdir.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-10 05:50:10 +00:00
usa
a87664923f * 2007-07-09
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-08 19:16:33 +00:00
ko1
0afe6cb08f * insnhelper.ci (vm_yield_setup_args), vm.c, insns.def:
fix to pass nil as block parameter to yielded block.
  [ruby-dev:31147]
* bootstraptest/test_block.rb: add a test for above.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-07 06:34:40 +00:00
ko1
b9171a73c4 * insns.def: fix to invoke nil.to_splat on NODE_ARGSCAT.
[ruby-dev:31138].
* bootstraptest/test_literal.rb: add tests for above.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-05 17:11:45 +00:00
nobu
ba563e4a41 * include/ruby/st.h, st.c (st_init_table, st_init_table_with_size):
constified.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-05 01:06:49 +00:00
ko1
d82f3e7d5c * compile.c (compile_massign): fix massign compilation
(example: a, *v, (*x) = ...).  [ruby-dev:31107]
* bootstraptest/test_massign.rb: add tests for above.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-03 18:50:28 +00:00
ko1
0e5360b2e4 * cont.c (cont_save_machine_stack): clear saved_thread.machine_stack*.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12681 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-03 04:53:05 +00:00
ko1
27013e71e4 * yarvcore.h, compile.c, insnhelper.ci, iseq.c, vm.c:
rename structure names and field names.
* insnhelper.h, insns.def: add GET_CONST_INLINE_CACHE().
* iseq.c: add rb_iseq_build_for_ruby2cext().
* yarvcore.h, vm.h: move declaration of rb_insn_func_t
  to yarvcore.h.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-01 18:16:02 +00:00
ko1
eb9aaa4c4f * vm.h: rename insn_func_type to rb_insn_func_type.
* vm_evalbody.ci: ditt.
* insns.def: add opt_call_native_compiled instruction
  instead of opt_call_native_compiled.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-30 18:02:24 +00:00
nobu
fd3f9eee0e * parse.y (parser_yylex): return non-valid token for an invalid
instance/class variable name.  a patch from from Yusuke ENDOH
  <mame AT tsg.ne.jp>.  [ruby-dev:31095]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-29 15:17:02 +00:00
nobu
cf46a2fce6 * parse.y (dsym): return non-null NODE even if yyerror(). based on a
patch from from Yusuke ENDOH <mame AT tsg.ne.jp>.  [ruby-dev:31085]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-29 02:23:13 +00:00
ko1
4a7d47e41a * compile.c (iseq_compile_each): fix popped backref and others.
([ruby-dev:31068]).
* compile.c (iseq_compile_each): remove needless statements.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-27 16:21:57 +00:00
matz
99c58e9ebc * string.c (rb_str_clear): need to check STR_EMBED_P() before
free()ing memory.  a patch from Yusuke ENDOH <mame AT tsg.ne.jp>.
  [ruby-dev:31062]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-26 15:19:39 +00:00
ko1
ed4e57690c * insnhelper.ci, vm.c: complete block parameter support.
post arguments, optional arguments, block argument.
* compile.c, parse.y: fix {|a|} parameter.
* insnshelper.ci, insns.def: revert caller_setup_args() option
  (need_block_check) parameter.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-25 16:05:17 +00:00
ko1
97ba019c94 * vm.c: some refactoring.
* rename th_* to vm_*.
  * remove unused variables functions.
  * add prototypes.
* blockinlining.c, compile.c, cont.c, eval.c, eval_intern.h,
  eval_jump.h, eval_load.c, inits.c, insns.def, iseq.c, parse.y,
  proc.c, process.c, signal.c, thread.c, vm.c, vm_dump.c,
  vm_evalbody.ci, yarvcore.c, yarvcore.h: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12603 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-24 15:42:41 +00:00
matz
3f2fe37200 * enum.c (enum_minmax): new method to get the minimum and maximum
values from the enumerable at once.

* enum.c (enum_minmax_by): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-23 15:05:05 +00:00
matz
115410ecde * string.c (rb_str_upto): add optional argument to specify
exclusiveness.

* range.c (range_step): use String#upto with optional argument.

* range.c (range_each): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-22 16:23:16 +00:00
nobu
3fc180ebeb * parse.y (rb_intern2): name may not be NUL-terminated.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-21 08:12:14 +00:00
nobu
9a7a11564c * parse.y (rb_intern2): use rb_intern2 to intern without trailing
equal sign.

* parse.y (rb_intern2, ripper_id2sym): fixed indent.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-19 19:43:59 +00:00
nobu
f91ec98d43 * eval_load.c (load_ext, rb_require_safe): pass VALUE instead of
pointer.  [ruby-Bugs-11659]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-19 01:53:31 +00:00
nobu
3dc070e90e * variable.c (rb_path2class): get rid of dangling pointer caused by
optimized out value.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-17 15:56:36 +00:00
ko1
f84c8cb190 * sample/test.rb: fix to show line information whether test succeeds.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-15 03:18:12 +00:00
eban
e948c70e06 * 2007-06-14
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-14 06:38:07 +00:00
nobu
0e62875433 * configure.in (darwin): prohibit loading extension libraries to
miniruby.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-12 21:04:07 +00:00
usa
3cf184ce6f * 2007-06-12
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-12 04:09:12 +00:00
nobu
2b592580bf * include/ruby: moved public headers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-10 03:06:15 +00:00
matz
4d43632852 * parse.y (call_args): allow splat argument after unpacked
assocs like 1.8 does.

* parse.y (call_args): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-08 05:58:06 +00:00
ko1
ed88975237 * eval_intern.h, eval.c (ruby_init): remove POP_TAG_INIT().
* cont.c (rb_fiber_start): remove zero-clearing tag.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-06 16:04:02 +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
nobu
99d65b14b4 * compile.c, dir.c, eval.c, eval_jump.h, eval_method.h, numeric.c,
pack.c, parse.y, re.c, thread.c, vm.c, vm_dump.c, call_cfunc.ci,
  thread_pthread.ci, thread_win32.ci: fixed indentation.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-05 04:25:10 +00:00
usa
f3dfa40734 * 2007-06-04
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-04 12:48:11 +00:00
matz
2c4aff3fe0 * numeric.c (int_round): small optimization to handle bignums.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-01 16:27:05 +00:00
matz
3d7439d568 * enum.c (each_with_index_i): should work well with continuation.
a patch from sheepman <sheepman AT sheepman.sakura.ne.jp>.
  [ruby-dev:30846]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-31 16:59:12 +00:00
nobu
44475bb208 * lib/benchmark.rb (Benchmark::Job::item): avoid modifying the
argument unintentionally.  [ruby-talk:253676]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-31 08:26:31 +00:00
nobu
0d2109239d * parse.y (open_args, arg_ambiguous, parser_warning): should not use
rb_warning in the parser.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-29 15:22:49 +00:00
nobu
d15b7d0509 * win32/win32.c (rb_w32_opendir, rb_w32_readdir): eliminate magic
numbers.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-29 01:53:14 +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
usa
e8a5295841 * regint.h (include): on some platform, defines.h redefines
SIZE_OF_LONG_LONG so souldn't re-include config.h after included
	  defines.h.

	* regint.h (vsnprintf): ruby on windows already have vsnprintf macro.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-25 02:13:18 +00:00
ko1
7c4ff2d332 * cont.c: support callcc which everyone love.
incomplete. please give me bug reports.
* common.mk, inits.c, thread.c: ditto.
* yarvcore.c: export thread_mark().
* yarvcore.h: disable value cache option.
* eval_intern.h: set th_get_ruby_level_cfp to inline.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-23 22:52:19 +00:00
nobu
80a0e2f753 * ext/extmk.rb, ext/purelib.rb, lib/mkmf.rb, runruby.rb: clear default
load path to get rid of load pre-installed extensions/libraries.
  [ruby-core:11017]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-22 20:48:34 +00:00
matz
64bffee8d6 * ruby.c (set_arg0): support RSTRING_LEN on HP-UX. a patch from
WATANABE Tetsuya <Tetsuya.WATANABE AT nifty.com>.  [ruby-dev:30806]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-22 07:38:50 +00:00
ko1
affa7430b7 * compile.c, vm_macro.def: support tail call optimization
(on default, this feature is not enabled).
* iseq.c, compile.c, vm_opts.h: add "tailcall_optimization"
  option.
* sample/test.rb (test_ok): fix to adjust tailcall stack layout.
* insns.def, vm.c, compile.c, yarvcore.c, yarvcore.h:
  add opt_gt, opt_le instructions.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-21 04:46:51 +00:00
nobu
62b3932c9c * file.c (Init_File): method definition mismatch.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-18 16:04:22 +00:00
nobu
635c599d6b * ruby.c (DllMain, ruby_init_loadpath): use DLL instance handle given
to DllMain instead of VirtualQuery so that loadpath becomes relative
  from the DLL on WinCE too.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-18 02:11:42 +00:00
ko1
84fbcb9694 * debug.c (ruby_debug_node): fix to show node line.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-17 04:00:36 +00:00
usa
216dcd80ff * win32/win32.c (init_stdhandle): stderr should be without buffering,
but mswin32 use buffering when stderr is not connected to tty.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-15 06:01:33 +00:00