Commit graph

3924 commits

Author SHA1 Message Date
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
matz
aa77090aef * array.c (rb_ary_choice): should return nil when the array is
empty.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12276 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-13 16:54:58 +00:00
eban
2216212554 * 2007-05-12
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12275 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-12 09:29:54 +00:00
nobu
a1295b0f79 * iseq.c (iseq_data_to_ary): internal IDs must not be exposed.
[ruby-core:11073]

* parse.y (internal_id_gen): now returns scope local ID instead of
  global one.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-11 06:26:06 +00:00
nobu
f563dc875c * thread.c (rb_thread_priority): rdoc fix; the initial value is
inherited from the creating thread.  [ruby-core:10607]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-10 01:12:10 +00:00
nobu
a78970e211 * 2007-05-09
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-09 01:47:55 +00:00
usa
91e5b6f1fa * 2007-05-08
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-08 11:41:13 +00:00
kou
1548542f21 * lib/rss/image.rb, test/rss/test_image.rb: fixed Image module
namespace URI. reported by Dmitry Borodaenko. Thanks.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-07 02:02:50 +00:00
eban
73e20674f6 * 2007-05-06
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-06 09:13:52 +00:00
nobu
84daaed844 * lib/date/format.rb (Format::Bag#method_missing): get rid of
modifying orginal argument.  [ruby-core:11090]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-05 07:25:35 +00:00
nobu
5bfe949dd5 * thread.c: copied rdocs from fastthread.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-03 13:04:42 +00:00
nobu
0c1f1fb531 * bignum.c (rb_big_pow): improvement by calculating from MSB and using
factorization.  <http://yowaken.dip.jp/tdiary/20070426.html#p01>


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-01 20:39:48 +00:00
matz
2b6252e64e * array.c (rb_ary_choice): a new method to choose an element
randomly from an array.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12233 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-01 08:45:28 +00:00
ko1
75d28f8870 * yarvcore.h, compile.c (set_arguments): support post arguments.
* test/ruby/test_method.rb: add tests for above.
* test/ruby/test_proc.rb: ditto.
* proc.c: fix an arity bug ([ruby-core:11029]).
* vm.c, vm.h, insns.def, vm_dump.h: fix bmethod process.
* vm.c: support block argument on block parameter.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-01 04:35:58 +00:00
ko1
9d89855052 * compile.c: support multiple splat (e.g, [a, *b, *c, e, *f]).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-26 16:54:58 +00:00
nobu
da4ad54e47 * misc/ruby-style.el: new file. C/C++ style for ruby source code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-26 04:54:01 +00:00
nobu
4134a542ba * thread.c (alloc_event_fook, rb_thread_remove_event_hook): should
return value.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-25 01:32:24 +00:00
nobu
787c3ead18 * dir.c (do_stat, do_lstat, do_opendir): should not warn ENOTDIR.
[ruby-talk:248288]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-24 00:33:09 +00:00
nobu
692010a235 * lib/mkmf.rb (libpathflag): not to append RPATHFLAG to current
directory.

* lib/mkmf.rb (init_mkmf): add current directory to default
  library path with highest priority.  [ruby-core:10960]

* lib/mkmf.rb (LINK_SO): LIBPATH to be placed before DLDFLAGS.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12208 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-23 13:08:29 +00:00
nobu
3fc37d71c4 * eval.c (ruby_cleanup): re-send signal. [ruby-dev:30516]
* eval_error.h (error_handle): no message when exiting by signal.

* intern.h (rb_thread_signal_raise, ruby_default_signal): prototypes.

* signal.c (esignal_init): takes a signal number and an optional
  signal name.

* signal.c (interrupt_init): pass SIGINT always.

* signal.c (ruby_default_signal): invoke system default signal
  handler.

* signal.c (rb_f_kill): use NUM2PIDT instead of NUM2INT.

* signal.c (rb_signal_exec, trap): handle SIGTERM.  [ruby-dev:30505]

* thread.c (rb_thread_signal_raise): now takes signal number instead
  of signal name.

* thread.c (rb_thread_signal_exit): since rb_make_exception() calls
  #exception method, rb_class_new_instance() is not needed here.

* yarvcore.h (struct rb_vm_struct), eval_jump.h (terminate_process):
  exit_code is no longer stored in VM.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-19 17:37:03 +00:00
ko1
2dd91facca * lib/optparse.rb: fix to override conv proc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-19 08:48:03 +00:00
nobu
5f8b25745b * configure.in (LDFLAGS): prepend -L. instead appending it to
XLDFLAGS.  [ruby-core:10933]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-17 17:17:15 +00:00
matz
9cd678b72f * time.c (time_arg): should allow to specify 24:00.
[ruby-core:10915]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-16 07:28:16 +00:00
ko1
baeb828c03 * compile.c (iseq_compile_each): check node->nd_state == 1, not !0.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-12 07:06:17 +00:00
usa
314734add8 * win32/win32.[ch] (rb_w32_enter_critical, rb_w32_leave_critical): no
need to reject reentrance. removed.

	* rubysig.h (RUBY_CRITICAL): follow above changes.

	* rubysig.h (TRAP_BEG, TRAP_END): no need to save errno.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-11 07:37:02 +00:00
usa
f024801e1e * thread_pthread.ci (native_thread_create): initialize sleep_cond.
fixed: [ruby-dev:30675]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-10 06:53:39 +00:00
usa
1486959550 * thread.c (do_select): use ubf_select() as UBF on windows.
* win32/win32.c (do_select): shouldn't call catch_interrupt() here.
	  fixed: [ruby-dev:30674], reported by wanabe.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-09 09:29:45 +00:00
nobu
e12090b9b2 * compile.c (defined_expr): test arguments of NODE_CALL and so
on as well as NODE_ATTRASGN.  [ruby-core:10886]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-08 04:27:41 +00:00
usa
406389a9f3 * 2007-04-06
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12154 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-06 01:29:48 +00:00
nobu
f1796fdb2c * error.c (rb_notimplement), io.c (pipe_open): removed definite
articles and UNIX manual section from messages.  [ruby-dev:30690]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-04 15:42:16 +00:00
nobu
1f9d0992ab * io.c (pipe_open): raise NotImplementedError for command "-" on
platforms where fork(2) is not available.  [ruby-dev:30681]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-04 01:17:34 +00:00
usa
7fa11815f8 * 2007-04-03
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-03 00:14:28 +00:00
nobu
790999028d * insns.def (throw), thread.c, yarvcore.h (throwed_errinfo): fixed
typo.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12132 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-02 12:54:42 +00:00
eban
d46b261599 * 2007-03-30
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-29 17:32:56 +00:00
usa
240f1279aa * win32/win32.c (init_env, insert, cmdglob, rb_w32_cmdvector,
rb_w32_opendir, rb_w32_readdir, rb_w32_strerror, rb_w32_stati64,
	  rb_w32_get_environ): use strlcpy() and strlcat().

	* win32/win32.c (rb_w32_opendir): use realloc() instead of xrealloc().

	* win32/win32.c (rb_w32_closedir): check NULL before free pointers.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-23 02:30:53 +00:00
usa
fa36cffb3e * 2007-03-22
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12120 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-22 01:28:41 +00:00